您需要对任何父目录和所有父目录具有+ x权限,才能cd或访问目录中的文件。
您需要目录中的+ r权限才能列出文件。所以这是一个例子:
您可以发出以下命令来进行一些设置:
mkdir -p /a/b
touch /a/b/{file1,file2}
cd /a
echo 1 > b/file1
echo 2 > b/file2
没有任何权利:
pwd
/a$ pwd
/a
/a$ chmod -rwx b
/a$ ls -l
d--------- 4 mike admin 136 Jun 1 14:44 b/
/a$ ls -l b/
ls: : Permission denied
/a$ cat b/file1
cat: b/file1: Permission denied
仅执行
/a$ chmod +x b
/a$ ls -l
total 0
d--x--x--x 4 mike admin 136 Jun 1 14:44 b/
/a$ ls -l b
ls: b: Permission denied
/a$ cat b/file1
a
/a$ ls -l b/file1
-rw-r--r-- 1 mike admin 2 Jun 1 14:43 b/file1
现在阅读:
/a$ chmod +r b/
/a$ ls -l
/a$ ls -l
total 0
dr-xr-xr-x 4 mike admin 136 Jun 1 14:44 b/
/a$ ls -l b/
total 16
-rw-r--r-- 1 mike admin 2 Jun 1 14:43 file1
-rw-r--r-- 1 mike admin 2 Jun 1 14:43 file2
这部分可能会有些混乱,但是只有读取而没有执行,您实际上可以列出目录中的文件,但不能读取inode的元数据,因此您将获得权限被拒绝,但仍然能够看到文件列表在如下目录中。
/a$ chmod -x b/
/a$ ls -l
total 0
dr--r--r-- 4 mike admin 136 Jun 1 14:44 b/
/a$ ls -l b
ls: file1: Permission denied
ls: file2: Permission denied
chmod +grx -R /a/b/c/d/e/folder
吗?是错误的,正确的执行方式是:chmod g+rx -R /a/b/c/d/e/folder