![如果我有 sudo,如何切换到 root 拥有的目录?](https://linux22.com/image/1152157/%E5%A6%82%E6%9E%9C%E6%88%91%E6%9C%89%20sudo%EF%BC%8C%E5%A6%82%E4%BD%95%E5%88%87%E6%8D%A2%E5%88%B0%20root%20%E6%8B%A5%E6%9C%89%E7%9A%84%E7%9B%AE%E5%BD%95%EF%BC%9F.png)
我有一个具有特权的部署用户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。