答案1
尝试ls -l /tmp/lijunda
一下,您将看到的只是名字其中的文件的—您将无法打开这些文件,甚至无法查看该目录中文件的文件大小、权限等。
这是因为目录本身只包含文件名和索引节点号-就这样。
读取访问权限文件名由读权限控制。
访问索引节点目录所指向的权限由执行权限控制,而不是读取权限。索引节点包含所有实际细节关于文件,例如文件大小、所有者、权限、上次修改时间以及包含文件内容的二进制数据的物理位置(在物理硬盘上)。
要查看名字目录中的文件—您需要对该目录的读取权限。您不需要为此执行或写入权限。
要查看细节目录中的文件即要查看 inode 内容,您需要对该目录的执行权限。目录的读取权限对于查看文件的详细信息没有影响如果您已经知道该文件的名称。
查看文件的详细信息你还不知道的名字,你需要阅读和执行权限。
最后,查看内容一个文件的-你需要:
- 文件本身的读取权限,
- 对包含文件*的目录的执行权限,以及
- 至少其中之一: 对包含该文件的目录的读取权限或者通过其他方式了解文件的名称。
参见下面的例子。
$ whoami
vagrant
$ ls -l
total 12
drwxrwx--x 2 pete pete 4096 Dec 24 08:51 execute_only
drwxrwxr-x 2 pete pete 4096 Dec 24 08:52 read_and_execute
drwxrwxr-- 2 pete pete 4096 Dec 24 08:52 read_only
$ ls -l read_only/
ls: cannot access read_only/mysterious_file: Permission denied
total 0
-????????? ? ? ? ? ? mysterious_file
$ cat read_only/mysterious_file
cat: read_only/mysterious_file: Permission denied
$ ls -l execute_only/
ls: cannot open directory execute_only/: Permission denied
$ ls -l execute_only/unicorn_file
-rw-rw-r-- 1 pete pete 55 Dec 24 08:51 execute_only/unicorn_file
$ cat execute_only/unicorn_file
This file only exists for you if you know it's here ;)
$ ls -l read_and_execute/
total 4
-rw-rw-r-- 1 pete pete 83 Dec 24 08:52 jack_sparrow
$ cat read_and_execute/jack_sparrow
"After the reading, you will be executed."
"That's *Captain* Jack Sparrow to you!"
$
*您还需要执行权限全部顺便说一句,父目录一直到根目录。