7.6 理解权限的基础

chmod命令可以修改与文件或目录相关联的权限,在学习这个命令之前,回顾一下Linux是如何理解这些权限的。

说明 Linux系统正在开始使用一种控制粒度更细、功能也更强大的权限系统,名为ACL(Access Control List,访问控制列表)。不过目前ACL仍未得到广泛使用,所以这里没有介绍它。有关ACL的更多信息,可以查看Linux Magazine的“Access Control Lists”(www.linux-mag.com/2004-11/guru_01.html),以及Open Source Weblog上的“An ACL GUI for Linux”(http://opensource.weblogsinc.com/2005/12/06/an-acl-gui-for-linux/)。

Linux认为有三组用户会使用文件或目录,即实际拥有者(也称为文件的用户)、用户组及系统中的其他人。每组用户分别用不同的字母表示,如表7-1所示。 表7-1 用户组及其缩写

用 户 组 缩  写
用户(拥有者)(User) u
组(Group) g
其他(Other) o

在2.10节中,已经介绍过如何查看完整的权限信息,看看什么用户能够对文件和目录进行哪些操作。2.10节介绍了三种属性:读、写和执行,分别表示为rwx。其他可能的权限还有suidsgid和sticky bit,分别表示为s(在有些系统中为S)、s(或S)和t(或T)。但是要牢记,根据使用这些权限的是文件还是目录,所有这些权限字符的意义可能会有所不同。表7-2总结了每种权限属性、缩写以及它们各自的含义。 表7-2 权限字母及其含义

文件属性 缩写 对文件的含义 对目录的含义
可读 (readable) r 可以查看 可以使用ls命令列出其内容
可写 (writable) w 可以编辑 可以删除、重命名或添加文件
可执行 (executable) x 可以作为程序来运行 可以读取它的文件和子目录,或运行文件
suid s 任何用户都可以使用拥有者的权限来执行文件 不可用
sgid s 任何用户都可以使用用户组的权限来执行文件 在目录中新创建的任何文件都属于拥有该目录的用户组
sticky bit t 告诉OS经常要执行这个文件,所以通常把它保存在交换区以便快速访问(只适用于较早的Unix系统,Linux将忽略这个属性) 用户不能删除或重命名文件,除非当前用户是文件或目录的拥有者

说明 root用户一直能够对任何文件或目录进行任何操作,所以表7-2中的限制并不适用于root。

在接下来的几节中会详细介绍表7-2中的每个文件属性。现在你应该已经理解这些权限了,接下来就看看如何用chmod命令修改文件和目录的权限。