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