11-目录权限
15.4.2 目录权限
目录与文件拥有相同的权限方案,只是对3种权限的含义另有所指。
- 读权限:可列出(比如,通过ls命令)目录之下的内容(即目录下的文件名)。
在实验验证对目录读权限位的操作时,应当了解有些Linux发行版对ls做了别名处理,命令所携带的一些选项(比如,-F)需要访问目录中文件的i节点信息,而这又需要拥有对目录的执行权限。为确保使用的是ls命令本身,执行时要给出命令的完整路径名(/bin/ls)。
- 写权限:可在目录内创建、删除文件。注意,要删除文件,对文件本身无需有任何权限。
- 可执行权限:可访问目录中的文件。因此,有时也将对目录的执行权限称为search(搜索)权限。
访问文件时,需要拥有对路径名所列所有目录的执行权限。例如,想读取文件/home/mtk/x,则需拥有对目录/、/home以及/home/mtk的执行权限(还要有对文件x自身的读权限)。若当前的工作目录为/home/mtk/sub1,访问相对路径名../sub2/x时,需握有/home/mtk和/home/mtk/sub2这两个目录的可执行权限(不必有对/或/home的执行权限)。
拥有对目录的读权限,用户只是能查看目录中的文件列表。要想访问目录内文件的内容或是这些文件的 i节点信息,还需握有对目录的执行权限。
反之,若拥有对目录的可执行权限,而无读权限,只要知道目录内文件的名称,仍可对其进行访问,但不能列出目录下的内容(即目录所含的其他文件名)。在控制对公共目录内容的访问时,这是一种常用技术,简单而且实用。
要想在目录中添加或删除文件,需要同时拥有对该目录的执行和写权限。