Bak*_*yor 103 permissions command-line sudo cd-command
我尝试使用sudo cd name_of_dir
但收到错误消息:
sudo: cd: command not found
Run Code Online (Sandbox Code Playgroud)
有没有其他方法可以进入另一个拥有 700 权限的用户拥有的目录?
Rin*_*ind 131
sudo cd
将无法工作,因为该cd
命令已内置到 shell 中。所以你说成为root然后运行这个命令。您成为 root,然后搜索 sudo 之后的命令,但没有cd
找到命令。
使用的方法是切换到拥有该目录的用户。权限700
的意思是“所有者可以读、写和执行”。
所以如果 root 拥有目录sudo -i
,密码然后cd {dir}
是唯一正确的方法。如果其他人拥有该目录,您仍然可以使用第一种方法,但也可以更改为该用户,su {username}
然后cd
作为该用户使用。
Tak*_*kat 21
要打开一个根目录,我们可以运行一个 root shell,例如:
sudo su
# cd /root
Run Code Online (Sandbox Code Playgroud)
小智 11
正如其他人指出的那样 - 它是内置的外壳:
~ % which cd
cd: shell built-in command
Run Code Online (Sandbox Code Playgroud)
那么,你为什么不 sudo shell 本身呢?
~ % sudo $SHELL -c "cd name_of_dir"
Run Code Online (Sandbox Code Playgroud)
您还可以通过以下方式将自己提升为 root 用户:
sudo -s
Run Code Online (Sandbox Code Playgroud)
然后你可以 cd 到任何不允许普通用户进入的目录,例如:
cd /root
Run Code Online (Sandbox Code Playgroud)
或者
cd /var/lib/
Run Code Online (Sandbox Code Playgroud)
然后在你完成之后输入:
exit
Run Code Online (Sandbox Code Playgroud)
注销root用户权限。
为了将自己提升为root,您还可以&&
按如下操作符组合这两个命令,该操作符也保持它们的执行顺序,如果当前命令执行成功,则才允许执行下一个命令:
sudo -s && cd /var/lib
Run Code Online (Sandbox Code Playgroud)
或者
sudo -s && cd /root
Run Code Online (Sandbox Code Playgroud)