Linux目录权限与文件权限类似,但意义不同。目录权限决定了能否查看目录内容、在目录中创建或删除文件,以及能否进入该目录
目录权限类型
- 读(Read,r):允许列出目录中的内容(即查看目录中有哪些文件和子目录)
- 写(Write,w):允许在目录中创建、删除和重命名文件和子目录
- 执行(Execute,x):允许进入目录,以及执行目录中的文件
权限表示方法
目录权限同样通过ls -l
查看:
drwxr-xr-x
这里,d
表示这是一个目录,后面的字符与文件权限类似,每三个字符为一组,分别为:
- 第一组(
rwx
):目录所有者的权限,表示有读、写和执行权限 - 第二组(
r-x
):目录所属组的权限,表示有读和执行权限,但没有写权限 - 第三组(
r-x
):其他用户的权限,也是只有读和执行权限
修改目录权限
与文件权限一样,目录权限也可以使用chmod
命令修改:
- 使用符号表示法:
chmod g+w dir
表示给目录所属组添加写权限 - 使用八进制表示法:
chmod 755 dir
表示设置所有者有读写执行权限,组和其他用户有读执行权限
特殊目录权限
- 粘滞位(Sticky Bit):设置在目录上时,只有文件所有者或root用户可以删除或重命名文件,即使其他用户有写权限。例如,
chmod +t dir
- 设置组ID(Setgid):设置在目录上时,新创建的文件或子目录会继承目录的组ID。例如,
chmod g+s dir
实例
假设有一个名为docs
的目录,你想让所有用户都能浏览和进入该目录,但只有目录所有者和所属组成员能在其中创建文件:
- 使用符号表示法:
chmod a+rx docs
(给所有用户添加读和执行权限)和chmod g+w docs
(给所属组添加写权限) - 使用八进制表示法:
chmod 775 docs
(所有者有读写执行权限,组有读执行写权限,其他用户有读执行权限)