网络百科 百科 linux的域控管理(linux域环境)

linux的域控管理(linux域环境)

今天一直在做Samba服务的配置,深感权限控制的难度。文件许可机制是Linux系统的一大特色。除了我们现在熟知的read (R)、write (W)和execute (X)权限之外,还有三种特殊权限,分别是:setuid、setgid和stick bit (sticky bit)。

1.setuid和setgid解释

看看它在系统中的什么地方被使用。以/etc/passwd和/usr/bin/passwd为例:

[普通]查看普通副本

[root @ salve 1 school]# ll/etc/passwd/usr/bin/passwd

-rw-r - r - 1 root root 2005年4月23日01:25 /etc/passwd

-rwsr-xr-x 1 root root 23420 2010年8月11日/usr/bin/passwd

[root@Salve1 school]#

分析一下,/etc/passwd的权限是-rw-r-r-即文件的所有者有读写的权限,而用户组成员和其他成员只有查看的权限。我们知道,在系统中,我们需要修改用户的密码。root用户和普通用户都可以使用命令/usr/bin/passwd someuser来修改这个文件/etc/passwd。root本身对/etc/passwd有写权限,这是可以理解的。普通用户呢?这里使用的是setuid。setuid的作用是“让执行命令的用户以命令所有者的权限执行”,即普通用户在执行passwd时会拥有root的权限,这样就可以修改文件/etc/passwd。它的logo是:S,会出现在X的地方,比如:-RWSR-XR-X . setgid的意思和它是一样的,就是让执行文件的用户在文件所属组的权限下执行。

2.粘性钻头(粘性钻头)

看看它在系统中的什么地方被使用。以/tmp为例:

[普通]查看普通副本

[root@Salve1 /]# ll -d /tmp

drwxrwxrwt 13 root root 4096 Apr 23 02:06/tmp

[root@Salve1 /]#

我们知道/tmp是系统的临时文件目录,所有用户都拥有该目录下的所有权限,也就是说可以在该目录下随意创建、修改、删除文件。如果用户A在这个目录中创建了一个文件,而用户B删除了它,我们不能允许这样做。为了实现这一目标,出现了棒形钻头的概念。这是目录。如果目录设置了stick bit,那么这个目录下的文件可以被创建者和root用户删除和修改,其他用户不能碰别人的文件。这就是Stickbit的功能。

3.以上特殊权限如何设置?

Modu XXX #设置setuid权限

更改s XXX #设置setgid权限

modo txxx #设置目录的stick位权限。

Chmod 4775 xxx #设置setuid权限

Chmod 2775 xxx #设置setgid权限

Chmod 1775 xxx #设置目录的stick位权限。

4.注意:有时候你设置了S或者T权限,会发现变成了S或者T,这是因为你没有在那个位置给它X(可执行)权限。在这种情况下,这样的设置将不会有效。可以先给它X权限,再给它S或T权限。