目录的执行权限与该目录中的读取权限有什么区别? 好像两者都设置了,我们只能读取文件。
答案 0 :(得分:5)
读取权限允许我们读取目录,获取目录中所有文件名的列表。当执行权限是我们尝试访问的路径名的组件时,执行权限允许我们通过该目录。
例如 1)如果您的目录只有执行权限,则可以在路径解析中使用该目录来访问文件名,但是您无法列出/读取目录中的文件。 2)如果您的目录只具有读取权限,则可以列出/读取目录中的文件,但不允许您使用该目录进行路径解析。
答案 1 :(得分:1)
如果设置了读取权限,则可以读取(列出)目录。如果设置了x权限,则可以使用通过目录的路径。
答案 2 :(得分:1)
描述可能令人困惑。我正在添加一些例子来澄清这一点。
说我有以下树:
dir0
├── dir1
│ ├── dir2
│ │ └── test2.txt
│ └── test1.txt
└── testFile.txt
dir0
开始执行chmod 100 dir1/
现在,用户在execute
上只有 dir1
权限。
dir1
命令输入cd
。但是,ls
会给我以下错误:ls: cannot open directory '.': Permission denied
dir0
开始执行chmod 400 dir1/
现在,用户在read
上只有 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