![超级用户是否仍需要具有目录的执行权限才能进入该目录?](https://linux22.com/image/1154632/%E8%B6%85%E7%BA%A7%E7%94%A8%E6%88%B7%E6%98%AF%E5%90%A6%E4%BB%8D%E9%9C%80%E8%A6%81%E5%85%B7%E6%9C%89%E7%9B%AE%E5%BD%95%E7%9A%84%E6%89%A7%E8%A1%8C%E6%9D%83%E9%99%90%E6%89%8D%E8%83%BD%E8%BF%9B%E5%85%A5%E8%AF%A5%E7%9B%AE%E5%BD%95%EF%BC%9F.png)
我使用超级用户身份,希望能够用它做所有事情,但为了访问一个目录,我仍然必须执行sudo su
命令切换到 root,因为我被拒绝访问。那么为什么超级用户是超级用户,但仍然无法访问目录?如果我切换到 root,为什么 sudo su 不要求 root 用户输入密码,并且无论有没有超级用户密码(不允许执行目录),它都可以工作?
答案1
超级用户和根 是同义词. 你的用户可能是须知,不是超级用户。
在 Ubuntu 中,您可以使用 命令以 root 身份执行单个命令。或者,您可以使用或sudo
打开 root 的 shell 。(我不会在这里讨论区别。此外,如果您知道 root 的密码,也可以使用 plain sudo su
。)sudo -s
sudo -i
su
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
。