为什么我的 sudo 生成的文件属于 root?

为什么我的 sudo 生成的文件属于 root?

当我运行“# sudo touch newfile”时,我期望该文件归我所有,而不是由 root 所有,因为我对 sudo 的理解是它赋予我(用户)root 权限,但实际上并没有切换用户。

我是否对 sudo 的含义存在根本性的误解?

答案1

当您使用时sudo,您以超级用户(root)的身份运行程序,因此创建的文件也是以超级用户的身份创建的。

答案2

您可以通过比较这两个“whoami”(“我是谁?”)命令的输出来证明 mipadi 所说的内容:

$ sudo whoami
$ whoami

答案3

sudo(名称来自 su“do”或超级用户“do”)允许您以 root 身份运行命令。它不会为您的用户提供不同的权限。因此,当您运行时,#sudo touch newfile 执行命令的是 root 用户touch newfile,这就是为什么 newfile 归 root 用户所有。

更多信息Sudo 页面

答案4

您可以将 sudo 中的“su”视为“切换用户”。如果您不指定以哪个用户身份运行,它将默认为root超级用户,也与 su 相关联。

sudo -u yourself touch newfile如果您希望该文件归 拥有yourself

从会话的其余部分来看,您假设sudo不更改用户 ID 是正确的。可以将其视为su+ touch newfile+ exit。因此,在您的 shell 中,您“保留”自己,但sudo在具有另一个有效用户 ID 的新进程中执行命令。

相关内容