概述
在本文中,了解通过文件、目录权限和所有权的正确使用控制文件访问。学习:
●管理普通和特殊文件及目录的访问权限
●使用访问模式,如 suid、sgid 和粘贴位(sticky bit),维护安全性
●变更文件创建屏蔽
●向组成员授予访问权限
除非特别指出,本文中的例子使用 2.6.34 内核的 Fedora 13。您在其他系统上得到的结果可能有所不同。
本文帮助您准备 Linux Professional Institute's Junior Level Administration(LPIC-1)考试 101 中主题 104 下的目标 104.4。该目标的权值为 3。
我们在之前的文章 “Linux磁盘配额的设置与检测” 中介绍了本文中的部分文件和组所有权概念。本文将会帮助您更透彻地理解这些概念。
先决条件
为了最有效地利用本系列中的文章,您应该具有基本的 Linux 知识,并需要准备一个 Linux 系统,用于练习本文介绍的命令。有时候不同版本的程序输出格式不同,因此您所得到的结果未必总是与这里所示的清单和图相同。
用户和组
现在,您了解了 Linux 是一个多用户的系统,每个用户属于一个主要 组,也可能是附加组。也可以作为一个用户登录,然后使用 su 或者 sudo -s 命令变为另一个用户。Linux 的文件所有权和访问授权是与用户 id 和组密切相关的,所以我们要复习一下基本的用户和组信息。
我是谁?
如果没有切换到其他用户,您的 id 就是登录时的。如果切换到其他用户,在本文的大多数例子中,您的提示中就会包括您的用户 id。如果您的提示没有包括用户 id,可以使用 whoami 命令来检查您当前有效的 id。清单 1 显示了一些例子,说明了提示字符串(来自 PS1 环境变量)与本文中的其他例子不同。在提示字符串中包含您的 id 是一个有用的功能。
清单 1. 决定有效的用户 id
/home/ian$ whoami tom /home/ian$ exit exit $ whoami ian |
我在什么组中?
类似的,您可以使用 groups 命令找出您在什么组中。使用 id 命令,您可以找出用户和组信息。添加一个用户 id 参数到 groups 或者 id 来查看该用户 id 的信息,而并非当前用户 id。查看 清单 2 中的示例。请注意,没有用户 id,id 命令也会显示 SELinux 上下文和基本 id 信息。
清单 2. 决策组成员
[ian@echidna ~]$ id uid=1000(ian) gid=1000(ian) groups=1000(ian),505(development),8093(editor) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 [ian@echidna ~]$ id ian uid=1000(ian) gid=1000(ian) groups=1000(ian),8093(editor),505(development) [ian@echidna ~]$ groups ian development editor [ian@echidna ~]$ id tom uid=1012(tom) gid=1012(tom) groups=1012(tom),505(development) [ian@echidna ~]$ groups tom tom : tom development [ian@echidna ~]$ su tom Password: [tom@echidna ian]$ groups tom development [tom@echidna ian]$ groups ian ian : ian editor development |