如果我有 sudo,如何切换到 root 拥有的目录?

如果我有 sudo,如何切换到 root 拥有的目录?

我有一个具有特权的部署用户sudo

我无法sudo cd进入目录,但我可以像这样列出它:

sudo ls /root

我怎样才能cd进入该文件夹,或者这不可能吗?

答案1

这是不可能的,因为sudo以 root 身份运行单个命令;您的 shell 仍然归您的用户所有。

sudo -i要做的事情是,通过运行或以 root 身份打开一个新的 shell sudo -s。来自man sudo

 -i, --login
               Run the shell specified by the target user's password data-
               base entry as a login shell.

[...]

 -s, --shell
              Run the shell specified by the SHELL environment variable if
              it is set or the shell specified by the invoking user's pass-
              word database entry.  If a command is specified, it is passed
              to the shell for execution via the shell's -c option.  If no
              command is specified, an interactive shell is executed.

这两种方式都会给你一个具有 root 权限的新 shell,你可以在其中自由更改目录并以 root 身份运行新命令。

答案2

cd是 shell 内置命令。不能直接将其与 一起使用sudo

使用

sudo -i

获取 root shell,然后cd进入您想要的文件夹。

如果你不再需要 root 权限,请使用

exit

Ctrl-D退出 root shell。

相关内容