在linux系统中,权限概念的重要性相信不需要我来讲,所谓的权限无非是r,w,x,文件的各种权限都很好理解,较难理解的是目录的权限,下面我主要对目录的权限说一下自己的看法:
1. 目录的读权限
看过linux内核方面书的朋友应该都知道目录于内核而言也是文件,目录是特殊的文件,它的内容包括:这个目录下的文件名列表以及各个文件对应的文件系统中的索引节点信息。既然目录也是文件,那么目录的读权限就好理解了,如果你对一个目录没有读权限,那么也就是说你不能读取它的内容,请注意:它的内容是这个目录下的文件名列表以及各个文件对应的文件系统中的索引节点信息。因此你不能在这个目录下执行诸如ls这样的命令,因为ls是要读取这个文件列表等信息的。
2. 目录的写权限
文件的写权限代表你能否往一个文件里面写东西,目录也是文件,自然也是一样的,如果你对一个目录没有写权限,那么任何要改变这个目录下文件名列表的操作都会被拒绝。
例子:假如我对目录dir没有写权限,dir目录下存在文件file,那么
1: ls #允许 ls只是读嘛
2:
3: rm file #拒绝,因为删除会改变目录文件名列表
4:
5: mv file file.bk # 拒绝,这也改变了文件名列表信息
6:
7: cp file file.bk #拒绝
8:
9: cp file ../file.bk #允许,将file复制到上层目录,并不改变当前目录的文件结构,注意这个命令和上一行的区别,仔细体会下
10:
补充:即使对目录没有写权限,但是仍然可以对目录下已存在的文件进行编辑,只要对该文件具有写权限即可。
3. 目录的执行权限
目录的执行权限就比较好理解了,如果对一个目录没有执行权限,那么你不能进入该目录执行任何命令,如果你已经在该目录下,那么你能执行的只有cd XX, 并且cd ./除外。