参考其他博客链接地址
suid、sgid、sbit与chattr
set_uid,文件在执行阶段具有文件所有者的权限;set_gid用户在此目录下创建的文件都具有和该目录所属的组相同的组;sbit设置后用户只能对自己创建的文件目录进行删除/改名/移动等操作,而无法删除他人的文件。
suid是针对二进制文件设置的可执行权限,拥有root权限。权限拥有者的执行位x上面为s或者S标记所替代。 -rwsrwxrwx
sgid对文件和目录都有效,在所属组的执行权位上x上面为s或者S标记所替代。 -rwxrwsrwx
sbit只针对目录有效,在目录权限位的其他位上位t或者T标记所替代。 drwxrwxrwt
其中s和t的大小写区别为,S和T表示x权限为空。
之前学习过数字更改权限的方式,现在在数字前面再加上一个数字就代表今天学习的特殊权限。
4755 4代表suid
2755 2代表sgid
1755 1代表sbit
特殊权限的设定方法有二种,其一为数字设置方法
chmod 6755 filename
第二种为符号设置方法
chmod u=rwxs,go=x filename
chmod g+s,o+t filename
系统中的典型应用有:
drwxrwxrwt. 10 root root 4096 May 9 11:09 /tmp/
-rwsr-xr-x. 1 root root 27832 Jun 10 2014 /usr/bin/passwd
SBIT(Sticky Bit)目前只针对目录有效,对于目录的作用是:当用户在该目录下建立文件或目录时,仅有自己与 root才有权力删除。
最具有代表的就是/tmp目录,任何人都可以在/tmp内增加、修改文件(因为权限全是rwx),但仅有该文件/目录建立者与 root能够删除自己的目录或文件。
注:这个SBIT对文件不起作用。
chattr用于设置文件的隐藏属性,因为属性是隐藏的原因,所以只有lsattr命令才能看到。
[feng@localhost test]$ chattr +i b.txt #普通用户不允许此操作
chattr: Operation not permitted while setting flags on b.txt
[root@a test]# chattr +i b.txt #只有root才有权限创建chattr权限
[root@a test]# lsattr b.txt
----i----------- b.txt
[root@a test]# rm -rf b.txt #一旦创建了chattr属性,即使是root也无权限删除
rm: cannot remove ‘b.txt’: Operation not permitted