Linux文件系统的管理所有权和权限(1)


概述

在本文中,了解通过文件、目录权限和所有权的正确使用控制文件访问。学习:

●管理普通和特殊文件及目录的访问权限

●使用访问模式,如 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


相关内容