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节介绍了三种属性:读、写和执行,分别表示为r
、w
和x
。其他可能的权限还有suid
、sgid
和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命令修改文件和目录的权限。