我正在学习docker,我似乎无法进入docker文件夹。我在etc文件夹中,我正在尝试输入docker文件夹。这是蓝色文字,表明它是一个目录,我可以进入其他蓝色导演。
DIR_COLORS makedumpfile.conf.sample ssh
DIR_COLORS.256color man_db.conf ssl
DIR_COLORS.lightbgcolor mime.types statetab
dnsmasq.conf mke2fs.conf statetab.d
dnsmasq.d modprobe.d subgid
docker modules-load.d subuid
dracut.conf motd sudo.conf
dracut.conf.d mtab
我甚至尝试过sudo cd docker 但是当我这样做时,命令行什么都不做。我可以在文件夹中看到它的内容如下:
[user@bucephalus1 etc]$ sudo ls -al docker
total 16
drwx------. 2 root root 21 Mar 22 01:07 .
drwxr-xr-x. 103 root root 8192 Mar 24 10:57 ..
-rw-------. 1 root root 244 Mar 22 01:07 key.json
但我无法进入如下所示的码头:
[user@bucephalus1 etc]$ sudo ls -al docker
total 16
drwx------. 2 root root 21 Mar 22 01:07 .
drwxr-xr-x. 103 root root 8192 Mar 24 10:57 ..
-rw-------. 1 root root 244 Mar 22 01:07 key.json
[user@bucephalus1 etc]$ sudo cd docker
[user@bucephalus1 etc]$
有没有人知道这里发生了什么?
答案 0 :(得分:2)
正常并且由/etc/docker
文件夹的权限引起,如您的问题所述:
[user@bucephalus1 etc]$ sudo ls -al docker
total 16
drwx------. 2 root root 21 Mar 22 01:07 .
(...)
因为此文件夹属于root并具有权限700。
您可以改为:
$ sudo su -
root:~# cd /etc/docker
root:/etc/docker#
但请注意,修改此文件夹可能容易出错,并且我不确定是否有任何用例需要执行此操作。
此外,askubuntu.com的相关答案提供了有关sudo su -
的更多详情:
"sudo-su-vs-sudo-i-vs-sudo-bin-bash-when-does-it-matter-which-is-used"
答案 1 :(得分:2)
除了前面的答案所说的,cd
命令的一些背景:
当您cd
时,您应该收到此错误:
$ cd /etc/docker/
bash: cd: /etc/docker/: Permission denied
当您sudo cd /etc/docker/
时,您可能会收到如下错误:
$ sudo cd /etc/docker
sudo: cd: command not found
但是我想可能会有你不知道的发行版,并且实际上有一个cd
二进制文件。但是,这个二进制文件永远不会起作用,因为它会改变shell的子进程'当前目录(即cd
进程的当前目录),而不是shell的当前目录。
也许尝试执行which cd
并执行结果。即使您不使用sudo
,您很可能会发现无法使用此二进制文件更改目录。
所以使用例如sudo -s
获取root shell,然后cd
。