str*_*gee 15 bash sudo cd-command
假设有一个我无权访问的目录。显然是sudo cd foo行不通的,因为cd在每个 shell 中都内置了一个 shell。
到目前为止,我一直在使用sudo bash(是的,我知道有更好的方法)来获取 root 提示。然后,我就可以cd进入该目录四处看看了。
有一个更好的方法吗?
slm*_*slm 16
不,没有办法进入cd只允许 root 而不是 root 的目录。确实不应该有太多具有此限制的目录。在大多数情况下它的访问是有限的,如给定文件/etc/shadow下的文件或特定的日志文件/var/log。
您可以使用sudo ls <dir>来查看它们而不是bash。此外,当使用sudo成为 root 时,您通常希望设置用户(su命令)而不是bash,因此请改用此命令:
$ sudo su -
Run Code Online (Sandbox Code Playgroud)
您也可以使用 sudo 的-i开关来完成同样的事情:
$ sudo -i
Run Code Online (Sandbox Code Playgroud)
摘自手册页关于 sudo -i
-i(模拟初始登录)选项将目标用户的 passwd(5) 条目中指定的 shell 作为登录 shell 运行。这意味着 shell 将读取特定于登录名的资源文件,例如 .profile 或 .login。如果指定了命令,则将其传递给 shell 执行。否则,将执行交互式 shell。
对于您无法访问的文件,您可以使用以下任一sudo命令:
$ sudo tail /var/log/messages
$ sudo less /etc/shadow
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
56175 次 |
| 最近记录: |