文件的suid ,sgid, sticky

suid(set User ID,set UID)的意思是进程执行一个文件时通常保持进程拥有者的UID。然而,如果设置了可执行文件的suid位,进程就获得了该文件拥有者的UID。

sgid(set Group ID,set GID)意思也是一样,只要把上面的进程拥有者改成进程组就好了。

如果一个文件被设置了suid或sgid位,会分别表现在所有者或同组用户的权限的可执行位上。



参见维基百科
http://en.wikipedia.org/wiki/Setuid


凡事都有个但是,suid不支持shell脚本,现在执行./excute.sh都不行,更不用说是excute.sh里面再去执行不属于mos7100用户的东西。


[mos7100@mos7100 /home/temp/suidTest 0 ]#ll
total 8
-rwsr--r-- 1 root root 37 2014-01-18 05:11 excute.sh
-rwx---r-- 1 root root 23 2014-01-18 01:11 fileBelongToroot.sh
[mos7100@mos7100 /home/temp/suidTest 0 ]#cat excute.sh
#!/bin/bash
ls
./fileBelongToroot.sh
[mos7100@mos7100 /home/temp/suidTest 0 ]#./excute.sh
-bash: ./excute.sh: Permission denied
[mos7100@mos7100 /home/temp/suidTest 126 ]#

因为安全问题

参见原文文档:
http://www.krenel.org/setuid-and-shell-scripts-explained/


PS:google是个好东西,b&d就是个渣渣,关于查这些原始材料




猜你喜欢

转载自gooneal.iteye.com/blog/2005494