关于SUID,需要先参考上一篇文章:
http://blog.csdn.net/qingsong3333/article/details/77726074
SUID
SUID权限和SGID是作用类似的,不过SUID不是针对二进制程序的owner起作用,而是对所属组起作用。当其他用户执行此文件时,会暂时获得文件所属组的权限。
现在把wordcount的SUID权限改为SGID,效果是一样的,因为admin这个组(文件所属组)同样可以访问文件sample,要赋予SGID的权限,需要在原来的权限前加上2:
qingsong@db2a:~/cprogram$ chmod 2775 wordcount
qingsong@db2a:~/cprogram$ ls -l wordcount
-rwxrwsr-x 1 qingsong admin 8732 Aug 30 04:38 wordcount
qingsong@db2a:~/cprogram$ su inst97
Password:
inst97@db2a:/home/qingsong/cprogram$ ./wordcount sample.txt
Lines:34, Words:84, Chars:594
inst97@db2a:/home/qingsong/cprogram$
Sticky Bit
这个 Sticky Bit, SBIT 只针对目录有效,对于文件已经没有效果了。 SBIT 对于目录的作用是:-当用户对于此目录具有 w, x 权限,亦即具有写入的权限时;
-当用户在该目录下建立子目录或文件时,仅有自己与 root 才有权力删除该子目录或文件
示例如下,要设置SBIT权限,则在原来权限的前面加上1,在下面的例子中,qingsong创建了一个目录sbittest,并设置了SBIT权限,之后在这个目录下创建了一个文件file1,尽管把file1的权限修改为777了,别的用户还是不能删除它
qingsong@db2a:~$ cd /tmp
qingsong@db2a:/tmp$ mkdir sbittest
qingsong@db2a:/tmp$ chmod 1777 sbittest
qingsong@db2a:/tmp$ ls -ld sbittest/
drwxrwxrwt 2 qingsong admin 4096 Aug 30 05:38 sbittest/
qingsong@db2a:/tmp$ cd sbittest
qingsong@db2a:/tmp/sbittest$ touch file1
qingsong@db2a:/tmp/sbittest$ chmod 777 file1
qingsong@db2a:/tmp/sbittest$ ls -l file1
-rwxrwxrwx 1 qingsong admin 0 Aug 30 05:38 file1
qingsong@db2a:/tmp/sbittest$ su inst97
Password:
inst97@db2a:/tmp/sbittest$ rm -f file1
rm: cannot remove 'file1': Operation not permitted <--普通用户删不了
inst97@db2a:/tmp/sbittest$ su qingsong
Password:
qingsong@db2a:/tmp/sbittest$ rm -f file1
qingsong@db2a:/tmp/sbittest$ ls file1
ls: cannot access file1: No such file or directory