为什么我在以用户身份运行 sudo 时没有像 root 那样足够的权限

为什么我在以用户身份运行 sudo 时没有像 root 那样足够的权限

以下失败:

sudo -u chris ls /root
ls: cannot open directory '/root': Permission denied

虽然以下成功:

sudo ls /root
...

我不懂为什么。我假设除了拥有 root 权限之外,-u只需将 /running 用户更改为提供的参数即可。$USER这种行为背后的原因是什么?

答案1

sudo -u chris以 user 身份运行给定命令chris,而不是以 root 身份USER设置为chris。因此,如果chris无法访问/rootsudo -u chris就不会改变这一点。

man sudo:

-u 用户,- 用户=用户

以默认目标用户以外的用户身份运行命令(通常)。

sudo并不是专门的“以 root 身份运行”工具;它是一个“以其他用户或组身份运行”的工具。

答案2

须藤将以特定用户身份运行命令,默认为 root。这并不意味着它始终是 root,因为该-u选项选择用户,而不是本例中的 root。如果你想成为 root,你可以运行一个命令sudo(如sudo chown chris:chris ~),或者你可以使用该命令su将你的用户切换到 root,然后只需运行 exit 返回你的用户

答案3

须藤:S上层U塞尔 它是一种授予用户执行系统命令的权限的方法。

如果克里斯是主持人试试这个

sudo -h chris  ls -l /root

-h, --help 显示帮助消息并退出

-h, --host=host 在主机上运行命令(如果插件支持)

drwxr-xr-x 2 root root 4096 Jan 18 23:52 Desktop
drwxr-xr-x 2 root root 4096 Jan 18 23:52 Documents
drwxr-xr-x 2 root root 4096 Jan 18 23:52 Downloads

              

或者你可以删除“root”

sudo -u chris  ls -l /

左右右右右右右右 1根根 18 年 1 月 7 日 20:32 bin -> usr/bin

http://www.linfo.org/root_directory.html

“根目录是类 Unix 操作系统上的目录,包含系统上的所有其他目录和文件,并由正斜杠 ( / )

在这种情况下使用“根”一词是因为该目录位于目录树图的最顶部“”

相关内容