日期:2014-05-16  浏览次数:20945 次

学习 Linux,101: 管理文件权限和所有权

为了最有效地利用本系列中的文章,您应该具有基本的 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