什么是目录的执行权限和目录内部的读取权限之间的区别?如果两者都设置了,那么我们只能读取文件。
这个描述可能有些令人困惑,我添加了一些示例来澄清它。
假设我有以下树形结构:
dir0
├── dir1
│ ├── dir2
│ │ └── test2.txt
│ └── test1.txt
└── testFile.txt
dir0
目录中执行chmod 100 dir1/
命令。dir1
目录只有执行
权限。
cd
命令进入dir1
目录。但是,ls
命令会给出以下错误信息:ls: cannot open directory '.': Permission denied
dir0
目录中执行chmod 400 dir1/
命令。读取
权限。
cd dir1
命令,bash: cd: dir1/: Permission denied
ls dir1
命令仍然可以工作,尽管它会显示结果和错误消息。ls: cannot access 'dir1/test1.txt': Permission denied
ls: cannot access 'dir1/dir2': Permission denied
dir2 test1.txt