为什么我必须 sudo 才能在我的 /home 目录之外做任何事情?

pno*_*ata 2 linux permissions user

我刚刚安装了我的第一个 Linux 桌面(64 位 Ubuntu 12.04)并且正在使用它:

myUser@myMachine:~$ cd /opt/
myUser@myMachine:/opt$ mkdir lemmiwinks
mkdir: cannot create directory `lemmiwinks': Permission denied
myUser@myMachine:/opt$
Run Code Online (Sandbox Code Playgroud)

如果我第一次尝试以sudoroot 身份运行,这会起作用:

myUser@myMachine:/opt$ sudo mkdir lemmiwinks
[sudo] password for myUser: 
myUser@myMachine:/opt$ ls
lemmiwinks
myUser@myMachine:/opt$ 
Run Code Online (Sandbox Code Playgroud)

这里发生了什么?为什么我必须sudo访问/opt(或任何其他非/home/myUser目录?

如何创建并授予可以访问的新用户的权限/opt?我也可以这样做myUser吗?提前致谢!

sdj*_*uan 6

/opt 目录很可能由 root 拥有,root 是系统上的超级用户。在我的 ubuntu linux 系统上,这将与您的非常相似,当我以非 root 用户身份为 /opt 做一个长列表时,就像这样:

~ $ ls -l /|grep opt
drwxr-xr-x   8 root root  4096 Jan  6  2012 opt
Run Code Online (Sandbox Code Playgroud)

linux 权限通常具有三类权限:对于所有者,对于该目录/文件也具有特殊权限的一组其他人,最后是其他所有人。

上面“drwxr-xr-x”列表的第一部分显示权限,然后“root root”显示所有者(root)和组(root),然后是大小和日期,然后是名称(opt)

由此,drwxr-xr-x 首先显示资源的类型,在这种情况下,“d”表示目录,然后按顺序为每个所有者、组和其他人读取|写入|执行 (rwx) 权限。

因此,在这种情况下,所有者 (root) 对 /opt 具有读取、写入和执行权限,但组 (root) 的成员和其他人一样只有读取和执行权限。

组和其他人(r-xr-x 部分)没有写权限阻止您以“myUser”身份运行,无法在 /opt 中创建新目录

/opt 通常是安装第三方软件的地方,因此不清楚为什么您希望新用户能够写入 /opt,因为他们随后可以修改 /opt 中的其他软件。

默认情况下,所有用户都可以在 /opt 上为每个人提供 rx 权限,如图所示,访问 /opt 并从中读取但不能写入。

但是,如果您真的希望“新用户”能够在 /opt 中写入,您至少有几个选择:

  • 您可以将 /opt 上的所有人权限更改为 rwx(不建议);或者
  • 您可以将 /opt 的组所有权更改为其他内容,例如“optgroup”并使组权限为 rwx(将其他所有人留在 rx),然后将您的新用户添加到您创建的组“optgroup”中;

在向新用户授予他们不应更改的地方的权限时要非常谨慎

在 http://www.tuxfiles.org/linuxhelp/filepermissions.html阅读有关 linux 文件权限的更多信息


Aus*_*nch 5

sudo 本质上与在 Windows 7 或 Vista 的 UAC 中单击“确定”相同。您正在授予自己按需管理权限。

要授予其他用户访问文件夹的权限(编辑、创建等),只需授予他们您希望他们拥有的访问权限级别或管理员权限即可。也必须 sudo 。

您可以通过始终以提升的用户身份运行来禁用 sudo,但不建议这样做。Linux、OS X 和 Windows 6+ 的部分安全性是你永远不应该以管理员身份运行,当你收到提升提示时,你应该知道你请求了操作,然后相应地批准或拒绝。如果没有这个,那么您可能会在未经您明确许可或不知情的情况下安装或运行奇怪的软件。这可能是恶意软件、病毒、或只是 Word 插件的形式,也可能是您不想运行或安装的浏览器。此外,一旦发现某种方法可以在未经明确许可的情况下在系统上运行,某些恶意软件就可以使用此低级别查找信息来升级自身或其他软件。例如,社会工程学黑客攻击可以从这个访问级别开始。

此外,Windows 是相同的,默认情况下您可以完全访问 %UserProfile%* 但没有其他用户或 C:\ 的根目录,而无需提升和允许操作。