SUID与SGID是两种特殊权限。
SUID:(仅对二进制文件有效)
-rwsr-xr-x 1 root root 22984 Jan 7 2007 /usr/bin/passwd 如果用户具有该文件x权限,在执行时将会对程序涉及资源获得该程序拥有者的权限(即root权限),例如,普通用户对于/etc/passwd是没有w权限的,然后却可以通过/user/bin/passwd来修改/etc/passwd中的数据,就是因为当普通用户执行该程序时对于/etc/passwd具有了程序拥有者的权限,所以可以修改此文件。
SGID:(对于二进制文件及目录有效)
对二进制程序:-rwx--s--x 1 root slocate 23856 Mar 15 2007 /usr/bin/locate 如SUID,如果程序拥有SGID权限,则其他用户执行该程序时,将获得该程序所属群组的权限。
对目录:drwxrwsrwx 7 root root 4096 Sep 27 18:23 /tmp 如果该目录具有s权限,那么具有该目录rx权限的用户在该目录下的有效群组将会变成目录所属群组。
SBIT:该权限只作用于目录,只有拥有者以及root可以删除该目录。
drwxrwxrwt 7 root root 4096 Sep 27 18:23 /tmp 该目录只有拥有者及root用户可以删除。
这三种权限的配置
在设置权限时,分别在权限代码前加上4(SUID)、2(SGID)、1(SBIT)即可。例:chmod 4777~/test 给~/test添加SUID权限。