特殊权限set_uid、set_gid、stick_bit命令

可执行文件和公共目录可以使用三种特殊类型的权限:setuid、setgid 和 sticky 位。设置这些权限之后,运行可执行文件的任何用户都应采用该可执行文件属主(或组)的 ID。

设置特殊权限时必须非常小心,因为特殊权限会带来安全风险。例如,通过执行将用户ID(user ID, UID)设置为0(root的UID)的程序,用户可以获取超级用户功能。此外,所有用户可以为其拥有的文件设置特殊权限,这会带来其他安全问题。

应对系统中未经授权使用”setuid”权限和”setgid”权限获取超级用户功能的情况进行监视。可疑权限为用户而不是root或bin授予管理程序的拥有权。

setuid

对可执行文件设置”setuid”权限时,将对运行该文件的进程授予基于文件属主的访问权限,该访问权限不是基于正在运行可执行文件的用户。使用此特殊权限,用户可以访问通常只有属主才可访问的文件和目录。

例如,passwd 命令的 setuid 权限使用户可以更改口令。拥有 setuid 权限的 passwd 命令与以下类似:

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

此特殊权限存在安全风险。一些确定的用户甚至可以在”setuid”进程执行完毕后,找到保持由该进程授予他们的权限的方法。

setgid

“setgid”权限与”setuid”权限类似,可将进程的有效组ID(group ID,GID)更改为拥有该文件的组,并基于授予该组的权限对用户授予访问权限。

将”setgid”权限应用于目录时,该目录中已创建的文件将属于该目录所属于的组。这些文件不属于创建进程所属于的组。在目录中拥有写和执行权限的任何用户都可以在其中创建文件。但是,文件将属于拥有该目录的组,而不是用户所属于的组。

应对系统中任何未经授权使用”setgid”权限获取root功能的情况进行监视。可疑权限为非常规组而不是root或bin授予对此类程序的组访问权限。

Sticky

sticky位是保护目录中文件的权限位。如果对目录设置了”sticky位”,则只有文件所有者、目录所有者或特权用户才可以删除文件。root用户是特权用户的一个示例。”sticky位”禁止用户从公共目录(如/tmp)中删除其他用户的文件:

ll -d /tmp/
drwxrwxrwt. 9 root root 4096 Sep 19 22:40 /tmp/
分类: Linux笔记

发表评论

电子邮件地址不会被公开。 必填项已用*标注