Linux目录的有读写权限,没有执行权限,却不能在该目录下创建文件和子目录时怎么回事?
ANSWER: Linux 中目录也可以看作是一个文件。而这个文件的内容是一个个 entry,每个 entry 是该目录下的其他文件(目录)。也就是如果你有一个目录 dir1 的r权限,你就可以查看这个目录都有什么内容(ls dir1)
但是如果你想看这个目录下某个文件又有什么权限或者属性(比如ls -l)的话就需要x权限。
因为-l需要访问 dir1 下文件的inode来获取(目录其实存放的就是这个目录下所有文件文件->文件inode的映射,所以直接ls不需要访问 dir1 下文件的 inode)。
那么就可以简单的认为文件夹的执行权限是指你对文件夹中的所有 entry 的inode进行lookup(访问、修改、删除)的权限。
1.在一个目录下创建文件,wx缺一不可。因为没有x无法创建inode,没有w无法修改文件夹的entry。ps:目录文件实际保存着该目录里面的文件的列表等信息
2.有rx才可以打开并查看内部文件
3.没有w就不允许删除目录。cd的话也需要x,不然你就可以先cd到目录里,然后创建文件。就间接实现了问题中的“不能创建”问题。