超级用户是否仍需要具有目录的执行权限才能进入该目录?

超级用户是否仍需要具有目录的执行权限才能进入该目录?

我使用超级用户身份,希望能够用它做所有事情,但为了访问一个目录,我仍然必须执行sudo su命令切换到 root,因为我被拒绝访问。那么为什么超级用户是超级用户,但仍然无法访问目录?如果我切换到 root,为什么 sudo su 不要求 root 用户输入密码,并且无论有没有超级用户密码(不允许执行目录),它都可以工作?

答案1

超级用户 是同义词. 你的用户可能是须知,不是超级用户。

在 Ubuntu 中,您可以使用 命令以 root 身份执行单个命令。或者,您可以使用或sudo打开 root 的 shell 。(我不会在这里讨论区别。此外,如果您知道 root 的密码,也可以使用 plain sudo su。)sudo -ssudo -isu

sudo cd没有意义,因为它会改变目录然后放到你的shell 可能无法打开目录。因此 Ubuntu 完全禁止这样做:

$ sudo cd /root
sudo: cd: command not found

但是,我们可以发出:

$ sudo ls -l /root
total 0

那么我们如何才能cd进入目录呢?我们必须使用 root shell:

$ sudo su
root@my-ubuntu:/home/mirek# cd /root
root@my-ubuntu:~# ls -l
total 0

您问为什么在这种情况下您不必输入密码。这是因为您sudo最近使用过。要强制它再次需要密码,您可以发出sudo -k。否则,它会在几分钟后再次开始要求输入密码。

答案2

您不能cd使用以下命令运行该命令sudo,否则会出现错误。您必须运行:

sudo su

或者

sudo -s

以 root 身份使用之前进入 root shell cd

相关内容