无法更改到 sudoers.d 目录

can't change to sudoers.d directory

简单问题:我的系统上有一个名为 "user" 的用户。该用户具有 sudo 权限。为什么我不能浏览到 sudoer.d 目录?

是不是因为cd是内置命令?

[user@localhost etc]$ ls -al | grep sudoers.d
drwxr-x---.  2 root root   4096 Apr  4 18:09 sudoers.d
[user@localhost etc]$ sudo cd sudoers.d
[user@localhost etc]$ pwd
/etc
[user@localhost etc]$ sudo ls -la sudoers.d/
total 12
drwxr-x---.  2 root root 4096 Apr  4 18:09 .
drwxr-xr-x. 79 root root 4096 May  5 05:20 ..
-r--r-----.  1 root root   33 Apr  4 18:09 vagrant
[user@localhost etc]$ sudo vim sudoers.d/vagrant
[user@localhost etc]$

非常感谢。

sudo 打开一个新的 shell。 shell 改变了它的工作目录。然后它退出。原始 shell 的工作目录从未更改,也不可能更改。

发生这种情况是因为 sudo 只是以提升的权限执行您传递给它的命令可执行文件,并转发其余参数。由于 cd 是一个 shell 内置函数,sudo 将找不到要执行的文件,从而导致错误。

如果您希望具有更高权限的交互式 shell,请使用 sudo su