关于特殊权限

参考其他博客链接地址

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

原文地址:https://www.cnblogs.com/xiaofeng666/p/10837269.html