1.set_uid权限

系统中有一个地方用到了suid,/usr/bin/passwd 。

[root@wangshaojun-01 ~]# ll /usr/bin/passwd

-rwsr-xr-x. 1 root root 27832 6月  10 2014 /usr/bin/passwd


  • set UID 对文件来说有这样的限制和功能 

1.仅对二进制程序有效 

2.执行者对该程序具有x权限 

3.本权限仅在执行程序的过程中有效 

4.执行者具有该程序所有者的权限。 

5.仅对文件有效,对目录无效


实例:

给ls命令增加 suid 权限。临时拥有root的权限。

chmod u+s /usr/bin/ls

su - user1

ls /root/

文件的特殊权限set_uid set_gid stick_bit_chmod


2.set_gid权限

  • set GID 对文件来说有这样的限制和功能 

1.仅对二进制文件有效 

2.执行者对于该程序来说具有x权限 

3.执行者在执行过程中将会获得该程序用户组的支持


  • set GID 对目录来说 有这样的限制和功能 

1.用户对该目录具有r和x权限,才能进入该目录 

2.用户在此目录下的有效用户组,将会变成该目录的用户组 

3.用户拥有w权限的时候,用户所创建的新文件的用户组于目录的用户组相同


  • 如果两个用户同时共享一个目录, 

1.首先把用户ab加入到同一用户组下, 

2.创建目录,设定2770权限,必须设定SGID权限,否则用户a创建的文件,用户b以其他人的身份只具备r权限


实例:

没有设置SGID的情况下,所有者和所属组都是user1

# mkdir /tmp/111 && chmod 777 /tmp/111

# su - user1

$ cd /tmp/111/

$ mkdir dir1 && touch file1

$ ll

文件的特殊权限set_uid set_gid stick_bit_chmod_02


设置SGID之后,创建的文件和目录,所属组就会临时拥有root的权限。

文件的特殊权限set_uid set_gid stick_bit_特殊权限 _03


3.stick_bit权限

防删除位。/tmp目录被设置了这个权限。

  • sticg_bit 对目录来说 有这样的限制和功能 

1.仅对目录有效,对文件无效 

2.当用户对此目录具有wx权限,即具有写入的权限 

3.当用户在该目录下创建文件或目录时,仅自己与root才有权利删除该文件。


实例:

没有设置SBIT的权限下,普通用户可以删除权限为777的文件。

文件的特殊权限set_uid set_gid stick_bit_chmod_04


设置完SBIT之后,普通用户无法删除。

文件的特殊权限set_uid set_gid stick_bit_特殊权限 _05


4.特殊权限与umask

umask的最前面一位,是特殊权限位。


4为SUID 

2为SGID 

1为SBIT


实例:

设置一个文件,权限为SUID 和 755权限。

# chmod 4755 1.txt

文件的特殊权限set_uid set_gid stick_bit_特殊权限 _06