特殊权限之set uid,特殊权限之set gid,特殊权限之sticky bit

来源:互联网 发布:淘宝盗图投诉多久生效 编辑:程序博客网 时间:2024/05/19 02:26

一,特殊权限之 set uid

权限说明:set uid权限针对二进制可执行文件,使文件在执行阶段具有文件所有者的权限。比如passwd这个命令就具有该权限。当普通用户执行passwd命令时,可以临时获得root权限,从而可以更改密码。
作用 :set uid的作用是保证普通用户临时拥有该命令所有者的身份。给一个文件设置成set uid,前提这个文件是一个二进制,可执行的文件。
用法:把一个二进制可执行文件的,所有者的权限上 +s 就添加上了set uid权限。
例如把ls命令设置成set uid 。 #chmod u+s /usr/bin/ls

  • 在更改root密码的时候用到 passwd命令,检查可执行命令passwd的路径。
    如图可看出,权限所有者的权限是 rws,而不是 rwx
    说明: 这里的s 表示:当其他用户执行该命令的时候,赋予该用户临时root权限,也就是set uid
    这里写图片描述

  • 在Linux下,更改密码也就意味着要更改一个密码的文件,路径为:/etc/shadow
    如图可以看出,这个文件的权限为000。普通用户是访问不了的。
    这里写图片描述

  • 如何让普通用户能够更改自己的密码同时又没有写的权限呢。
    答:使用普通用户 su 连接到root用户, 在root用户下把ls设置成set uid权限。
    具体步骤如下

  • 首先切换到一个普通用户下。

# su 用户名 //切换到user1用户下。
# whoami //查看当前用户

这里写图片描述

这里写图片描述

  • 当我们在普通用户的状态下,查看root的时候权限是不够的,需要在root用户下把ls权限设置成set uid。
#chmod u+s /usr/bin/ls //在ls上添加set uid权限

这里写图片描述

注: #chmod u-s /usr/bin/ls //去除set uid权限
  • 把ls添加set uid权限后,在普通用户下就能查看root了。自然普通用户也就能修改密码而同时又没有写的权限了。

这里写图片描述

二,特殊权限之 set gid

set gid不仅能作用在文件上,还能作用在目录上。
权限说明: set gid权限可以作用在文件上(二进制可执行文件),也可以作用在目录上。当作用在文件上时,其功能和set,uid一样,它会使文件在执行阶段具有文件所属组的权限。目录被设置这个权限后,任何用户在此目录下创建的文件都具有和该目录所属的组相同的组。
作用:
当作用在 文件 上的时候 ,其作用和set uid是类似的,它可以让执行这个文件的普通用户临时拥有所属组的身份。
当作用在 目录 上的时候,创建子目录或子文件的所属组和该目录的所属组是保持一致的。
用法: 把一个二进制可执行文件的,所属组的权限上 +s 就添加上了set gid权限。

  • 当作用在 文件*上的时候 ,其作用和set uid是类似的,它可以让执行这个文件的普通用户临时拥有所属组的身份。
  • 例如把ls命令设置成set gid 。 #chmod g+s /usr/bin/ls
    如图可见 ,所属组中的x变成了s
    这里写图片描述

  • 切换到普通用户下,一样可以进入到/root的子目录下
    ![输入图片说明]
    这里写图片描述

  • 当作用在目录上的时候,创建子目录或子文件的所属组和该目录的所属组是保持一致的。

例如: 我们把123目录添加set gid权限,然后更改所属组为user1,然后在123目录下创建一个文件dl,其dl的所属组为user1。 如果没有添加set gid权限的话,dl的所属组应该是root。

这里写图片描述

三,特殊权限之 sticky bit

权限说明: 可以理解为防删除位。文件是否可以被某用户删除,主要取决于该文件所在的目录是否对该用户具有写权限。如果没有写权限,则这个目录下的所有文件都不能删除,同时也不能添加新的文件。如果希望用户能够添加文件但不能删除该目录下其他用户的文件,则可以对父目录增加该权限。设置该权限后,就算用户对目录具有写权限,也不能删除其他用户的文件。
作用: 防止别人删除自己的文件,root用户除外。

  • 在这里我看到,/tmp的其他用户的权限是rwt,而不是传统的rwx。这个叫做防删除位。
    这里写图片描述

  • 例如: 在user1用户下的 /tmp目录下 创建一个dl文件(dl的权限是默认的644)时,在dl里面编辑一些内容。然后切换到user2用户下,在user2用户下只能查看dl文件,而不能更改(除user1用户和root用户拥有修改的权限,其他用户都不能修改)。

特殊权限总结

一个目录下的文件能不能删除,不取决于这个目录下的文件的权限,而是取决于这个文件所在目录的权限,是否可写。 所以当一个目录的others权限是可读可写时(目录默认权限有可执行,因为打开目录,就相当于执行了该目录),其他人就可以删除这个目录下的任何文件,包括root文件。

阅读全文
0 0
原创粉丝点击