Linux文件管理之用户权限,特殊权限和ACL访问控制列表(2)

2.文件的特殊权限

特殊权限有三种SUID、SGID、Sticky;
分别应用在属主、属组、其他上面;
应用的时候suid和sgid用“s和S”表示,sticky用“t和T”表示

2.1 SUID

在设置suid权限之后当其他用户执行这个二进制可执行文件,启动为进程之后,其进程的属主为原程序文件的属主,也就是说在用这个程序做操作的时候用户继承了这个二进制可执行文件属主的权限

suid只对二进制可执行文件有效占据;设置好后会占用属主的执行权限位
“s”: 属主拥有“x”权限;“S”:属主没有“x”权限

[[email protected] ~]$cat /etc/shadow #查看文件
cat: /etc/shadow: Permission denied #权限不足
[[email protected] app]#ll -d /bin/cat #查看cat文件的权限
-rwxr-xr-x. 1 root root 54080 Nov  6  2016 /bin/cat 
[[email protected] app]#chmod u+s /bin/cat #给cat文件添加suid权限,属主有x权限
[[email protected] app]#ll -d /bin/cat #查看cat文件的权限
-rwsr-xr-x. 1 root root 54080 Nov  6  2016 /bin/cat #在属主权限的x位上出现了一个小s
[[email protected] ~]$cat /etc/shadow #再次查看文件
bin:*:17110:0:99999:7:::  #继承了cat文件属主的权限可以查看了

[[email protected] app]#chmod u-s /bin/cat #删除suid权限

2.2 SGID

启动为进程之后,其进程的属组为原程序文件的属组
默认情况下,用户创建文件时,其属组为此用户所属的主组,用户使用程序时继承属组的权限;设置sgid后会占据属组的执行权限位
“s”: 属组拥有“x”权限
“S":属组没有“x”权限

[[email protected] app]#ll -d /bin/cat #查看文件权限
-rwxr-xr-x. 1 root root 54080 Nov  6  2016 /bin/cat
[[email protected] app]#chmod g+s /bin/cat #添加sgid权限
[[email protected] app]#ll -d /bin/cat
-rwxr-sr-x. 1 root root 54080 Nov  6  2016 /bin/cat #在属组的x位上出现了一个s,表示添加成功

一旦某目录被设定了SGID,则对此目录有写权限的用户在此
目录中创建的文件所属的组为此目录的属组。

[[email protected] app]#ll #查看当前目录下文件的权限
drwxrwxr-x. 2 root admin   6 May 29 21:36 dir
[[email protected] app]#chmod g+s dir/  #添加sgid权限
[[email protected] app]#ll #查看当前目录下文件的权限
drwxrwsr-x. 2 root admin   6 May 29 21:36 dir #在属组的x位上出现了一个s,表示添加成功
[[email protected] app]#touch dir/aa #创建子文件
[[email protected] app]#touch dir/bb
[[email protected] app]#ll dir/ 查看子文件的属性
-rw-rw-r--. 1 root admin 0 May 29 21:42 aa  #这两个文件的属性都是父目录的组
-rw-rw-r--. 1 root admin 0 May 29 21:42 bb

2.3 Sticky

具有目录写权限的用户通常可以删除该目录中的任何
文件,无论有没有该文件的权限或拥有权。但是在目录上设置Sticky 位之后,只有文件的所有者或root可以删除该文件;另外sticky设置在文件上没有意义的。设置Sticky之后会占据其他的执行权限位“t”: 拥有“x”权限;“T”:没有“x”权限

[[email protected] app]$ll -d dir/ #查看dir目录的属性
drwxr-xrwx. 2 root root 33 May 30 19:18 dir/    #其他用户有写权限,admin用户属于其他用户
[[email protected] app]$cd dir/ #进入dir目录
[[email protected] dir]$ll      #查看目录下的文件和文件属性
-rw-r--r--. 1 root root 0 May 30 19:18 a  #其他用户只有只读权限
-rw-r--r--. 1 root root 0 May 30 19:18 b
-rw-r--r--. 1 root root 0 May 30 19:18 c 
[[email protected] dir]$rm  a  #删除dir目录下的a文件
rm: remove write-protected regular empty file ‘a’?  #提示是否要删除a文件,输入“y”确定删除
[[email protected] dir]$ll    #再次查看目录下的文件和文件属性
-rw-r--r--. 1 root root 0 May 30 19:18 b  #a文件已经被删除
-rw-r--r--. 1 root root 0 May 30 19:18 c
[[email protected] dir]#chmod o+t /app/dir/ #给dir目录添加Sticky权限
[[email protected] dir]#ll -d /app/dir/   #查看dir目录的属性
drwxr-xrwt. 2 root root 24 May 30 19:20 /app/dir/   #在其他权限的x位上出现了t,表示权限添加成功
[[email protected] dir]#su - admin  #切换到admin用户
[[email protected] ~]$cd /app/dir/  #进入dir目录
[[email protected] dir]$rm b #删除dir目录下的b文件
rm: remove write-protected regular empty file ‘b’? #提示是否删除b
rm: cannot remove ‘b’: Operation not permitted  #提示权限不足,无法删除
[[email protected] dir]$ll #查看目录下的文件和文件属性
-rw-r--r--. 1 root root 0 May 30 19:18 b    #b文件没有被删除
-rw-r--r--. 1 root root 0 May 30 19:18 c

2.4 特殊权限除了可以用模式方法设置,还可以使用数字法

特殊权限 数字
SUID 4
SGID 2
Sticky 1

使用方法:在普通权限的前面加上要设置的特殊权限所对应的数字。

[[email protected] app]#ll #查看当前目录文件列表和文件属性
drwxr-xr-x. 2 root root  24 May 30 19:46 dir  
[[email protected] app]#chmod 1755 dir/  # 为dir目录设置权限,1表示Sticky权限,755表示普通权限
[[email protected] app]#ll #查看当前目录文件列表和文件属性
drwxr-xr-t. 2 root root  24 May 30 19:46 dir #在其他用户权限的x位上出现了t,表示Sticky权限添加成功

Linux文件管理之用户权限,特殊权限和ACL访问控制列表(1)
Linux文件管理之用户权限,特殊权限和ACL访问控制列表(3)

你可能感兴趣的:(Linux文件管理之用户权限,特殊权限和ACL访问控制列表(2))