你的位置:首页 > 操作系统

[操作系统]APUE学习之三个特殊位 设置用户ID(set


设置用户ID(set-user-ID),设置组ID(set-group-ID),sticky
 
set-user-ID: SUID
     当文件的该位有设置时,表示当该文件被执行时,程序具有文件所有者的权限而不是执行者的权限。
     这样说有点绕,举个例子就是说passwd这个命令,它的所有者是root,并且它的set-user-id有设置,所以执行passwd命令后,passwd进程具有root权限,也才能改密码,毕竟普通用户没有修改/etc/passwd文件的权限。然而,并不能该别人的密码,因为st_uid还是我,并不是root。
     当文件的set-user-ID位被设置时,通过ls -l命令查看,在许可权限部分,用户的x被替换成s
     ls -l /usr/include/passwd
     -rwsr-xr-x 1 root root 41284  9月 13  2012 /usr/bin/passwd
set-group-ID: SGID
     和set-user-id同理,不过具有的是所有组的权限.
     当文件的set-group-ID位被设置时,在许可权限部分,组用户的x被替换成s
sticky:
     sticky位对于文件和目录有不同的用途。
     对于文件而言,sticky位告诉内核即使没有人在使用这个程序,也要把它放在交换空间中,放在交换空间里的文件被内存调用的时候要比放在磁盘上快。不过有虚拟技术后,这个用的很少了。
     对于目录而言,sticky位使得存放在这个目录下的文件只能被创建者删除,别人不能够删除。
     当文件的sticky位被设置时,通过ls -l命令查看,在许可权限部分,其他用户的x被替换成t
 
设置方法类似 : chmod 4777 filename
4 代表SUID
2 代表SGID
1 代表sticky