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就是个渣渣,关于查这些原始材料
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就是个渣渣,关于查这些原始材料
本文解释了SUID和SGID的概念及它们如何使进程在执行时获得文件拥有者的权限。文章通过示例展示了SUID在shell脚本中的限制,并提供了相关资源链接。
2万+

被折叠的 条评论
为什么被折叠?



