鸟哥的私房菜-SUID,SGID

https://www.cnblogs.com/Jimmy1988/p/7260215.html

跟鸟哥的书内容一模一样;

当文件具有s(第一组rwx的x位置上出现s)属性,就是SUID,该文件必须为二进制代码;如果该文件是root所有,普通用户也可以执行它,比如例子中的passwd,但这种暂时获得root能力只有在执行过程中;

也可以通过chmod u+s filename 使普通的文件具有s属性;

SGID:在第二组rwx的x上出现s,也就是指group的x:

例子:/usr/bin/locate的权限就是-rwx--s--x.

如果没有s,在普通用户下,会有权限问题

/usr/bin/locate /var/lib/mlocate/mlocate.db
/usr/bin/locate: can not stat () `/var/lib/mlocate/mlocate.db': Permission denied

在有s的情况下,搜到的东西不一样

是空的

考虑与UID的区别?不一样应该就是与UID的区别!!!

SBIT只对目录有有效,当使用者在该目录下创建文件或目录时,仅有自己与 root 才有权力删除该文件

指令使用方法:

1: chmod g+s filename     or chmod u+s filename or chmod o+s filename || g-s u-s o-s

2:本身数字指定属性是只有三位,为了指定s,可以4位,第一位指定哪一组的x位变为s。

比如chmod 2711 /usr/bin/locate就是加 GID

另外注意:S T 是指原本x位为null,没办法加s

UID & GID当前阙值是200,

if [ $UID -gt 199 ] && [ "`/usr/bin/id -gn`" = "`/usr/bin/id -un`" ]; then
       umask 002
    else
       umask 022

 fi

猜你喜欢

转载自blog.csdn.net/qq_24328911/article/details/82112765