在Centos上有个账户A(非root),有sudo权限(权限比较大),想要用 cd 命令切换到 B账号的 /home/B 下的目录,结果没作用
[liuzz ~]$ sudo cd /home/xiejl/
[liuzz ~]$
sudo cd
无法使用是因为cd
是 bash 的内置命令。sudo 让A变成了root,然后 bash 再去查找 sudo 后面跟着的命令,然而找不到cd这个命令,所以也就无法执行成功了。 –来源于这个回答 How to enter a directory with the ‘cd’ command if it has 700 permission and is not owned by me?
但是把 centos7 有点打脸
$ which cd
/usr/bin/cd
然后我有找到一个说法,说是别人的 home目录没有执行权限,我去看了下
# ll /home/
总用量 12
drwx------ 14 xiejl xiejl 4096 5月 25 11:16 xiejl
# chmod +x /home/xiejl
[liuzz ~]$ cd /home/xiejl/
[liuzz xiejl]$ ls
看起来是这么回事啊,但是在进入到 sudo cd /home/xiejl/
的子目录还是不行。 还是没有全弄懂,如果你知道,请告诉我下,感谢。
解决办法,两个都好使
[liuzz ~]$ sudo -i
[root ~]# cd /home/xiejl/
或者
[liuzz@elm-cha-hk-cnc-cache-001 ~]$ sudo -s
[root@elm-cha-hk-cnc-cache-001 liuzz]# cd /home/xiejl/