你不知道的Linux/Unix下目录权限的含义
节选自我的博文 Linux/Unix的精巧约定两例:目录权限和文本行数。
如有谬误敬请指正。
目录的执行权限普通文件有执行权限、执行操作,很容易理解,目录执行权限是个啥?
$ chmod 700 .$ ls -ld .drwx----- 9 foo foo 4.0K 2012-11-20 00:11 ./注: ls的-d表示list文件是目录时,不去list目录下文件,而是list目录本身。
目录读、写操作普通文件(非目录)的读、写操作很容易理解。目录的读、写操作说明如下:
?写道目录读操作 = 可以list出目录下有哪些文件写操作 = 可以在该目录下新建和删除这个目录下的文件(包含新建和删除子目录)
? ? ? 注:要对目录进行写操作,前提要同时有该目录的写权限 和 该目录的执行权限。
?
所以,为了删除一个现有的文件,必须对包含该文件的目录具有写权限和执行权限;对该文件本身不需要有读、写权限。
目录这些权限的约定,让整个目录(包含下面所有的子文件)的控制变得简单,简单调整这个目录上的执行权限就可以了;信息集中,方便维护。
想想Windows的约定吧,是不是想到那个“应用到所有子目录和文件”的选项,要把所有的子目录都设置一遍。