Docker挂载卷中容器创建的目录无法cd进入的问题
问题解答
1. 目录权限差异导致的访问区别
从你给出的权限列表可以明确看到:
reader目录权限为drwxr-xr-x(对应数值权限755):
这个权限配置意味着所有用户都拥有目录的执行权限(权限位最后一位的x),而目录的执行权限就是允许用户进入该目录的核心权限。同时其他用户也拥有读权限,所以你能正常进入并查看目录内容。data目录权限为drwx------(对应数值权限700):
该权限仅允许root用户拥有读、写、执行权限,其他所有用户(包括你的ubuntu账号)没有任何权限,因此非root身份无法进入该目录。
2. 为什么sudo cd会报错
cd是Shell内置命令,并非系统中独立存在的可执行程序。sudo的作用是调用外部二进制文件,无法直接执行Shell内置命令,所以会出现"command not found"的报错。
如果需要进入root权限的目录,可以用两种方式:
- 先执行
sudo -i切换到root用户的Shell环境,再使用cd命令进入目标目录 - 或者通过
sudo bash -c "cd /data/polygon/mainnet/reader/data && <你要执行的后续命令>",启动新的bash进程来完成cd操作
3. chown -R ubuntu data解决问题的原因
这个命令将data目录及其子内容的所有者修改为ubuntu用户,此时你作为ubuntu账号拥有该目录的全部权限(读、写、执行),自然就能正常进入目录。
内容的提问来源于stack exchange,提问作者Paymahn Moghadasian
相关产品推荐
相关产品推荐

