最近遇到了一个问题:我想查看一个只有 root 用户才有权限访问的目录下有哪些文件,于是我尝试用sudo cd /path/to/dir
命令切换当前目录,结果报错。后来才知道cd
并不是一个真实存在的可执行文件,而是一个 Shell 内置的特殊命令。所以,要通过cd
切换目录,就只能把当前 Shell 的用户切换成 root 才行。
那么,将当前 Shell 的用户切换成 root,应该怎么做呢?我在网上看到了许多方法,包括sudo su
、sudo -s
等等。这些命令都能奏效,那么到底应该用哪个呢?我看到 StackOverflow 上有一篇回答总结得很好:
推荐使用的命令是sudo -s
和sudo -i
。它们的区别在于,前者会保留原用户的环境变量,而后者会重置环境变量,将环境变量初始化为 root 刚登入的状态。除此之外的命令都不推荐使用。