51CTO技术论坛 » Solaris & BSD & Unix » suid sgid        上一帖     下一帖    查看完整版本

页: [1]

xhh_01682008-7-16 16:44
suid sgid

有三种权限,OWNER权限,GROUP权限,OTHER 权限(如果不是OWNER,又不在那个组里,你享受此权限),例如,test是个程序,它的权限如下设置

-rwxr-xr-- 1 peter goodguy 11 Jul 31 19:32 test


假如这个程序中执行中要删除一个OWNER为peter的文件data.txt, 而这个文件的权限设置是这样的:

-rwx------ 1 peter badguy 11 Jul 31 19:33 data.txt

在不设SUID的情况下,peter可以执行这个程序并成功的删除文件,而在goodguy 组的成员,虽然有对test程序的执行权,但执行中删除不掉data.txt这个文件。WHY?
goodguy组里的人对data.txt无删的权力。

假定设了SUID后,goodguy组里的人再执行这个程序,但此程序运行中遇到权限问题,就自动被赋与OWNER的权力,则此程序可执行也

SGID差不多,只不过针对组权限而言

系统安全中,SUID是一个不提倡的东西,能不用就不用

注:
-rwsr-xr-x 其中的s就是代表suid,因为它是在用户权限中,如果是这样-rw-rwsr-x那就是代表sgid,因为它是在组权限中。
suid和sgid可以用数字表示,和uid和gid一样的,
4:suid
2:sgid
1:other
所以上面的-rwsr-xr-x用数字表示为:4755
-rw-rwsr-x表示为:2675
还有大S和大T的写法。
[root@test tmp]# chmod 7666 test
[root@test tmp]# ll
total 0
-rwSrwSrwT    1 root     root            0 Feb 6 23:08 test
这个例子就要特别小心啦!怎么会出现大写的 S 与 T 呢?不都是小写的吗?因为 s 与 t 都是取代 x 这个参数的,但是你有没有发现阿,我们是下达 7666 喔!也就是说, user, group 以及 others 都没有 x 这个可执行的标志 ( 因为 666 嘛! ),所以,这个 S, T 代表的就是『空的』啦!怎么说? SUID 是表示『该档案在执行的时候,具有档案拥有者的权限』,但是档案拥有者都无法执行了,哪里来的权限给其它人使用?当然就是空的啦! ^_^



相关文章:
求问:CDE无法启动
AIX操作系统使用心得
常用AIX论坛地址、资料下载地址、FTP地址
如何实现远程hmc控制
如何划分lpar

查看完整版本: suid sgid


Powered by 51CTO.COM