无法进入/etc中的docker文件夹

5
我正在学习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命令。
但是当我这样做时,命令行没有任何反应。我可以使用ls命令查看文件夹的内容,如下所示:

[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

但是我无法像下面这样进入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 cd docker
[user@bucephalus1 etc]$

有人知道这里发生了什么吗?

2个回答

13

这是正常现象,由于您问题中提到的/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"

太棒了@ErikMD。感谢您的帮助。 - Bucephalus
@Bucephalus 不客气,感谢您接受我的答案 :) 顺便说一下,我刚刚编辑了我的答案,添加了一个详细解释的链接,也许对您有帮助。 - ErikMD

5
除了之前的答案所述,关于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

是的,@sneep 你可能是对的。这个发行版 centOS 并没有给我“命令未找到”的反馈。它只是重新设置了命令行提示符。也感谢你的帮助。 - Bucephalus

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接