Linux权限管理 特殊权限解析

SUID:(set uid)只能限定在二进制可执行程序上面。

              功能:程序运行时的权限从执行者变更成程序所有者的权限

SUID属性一般用在可执行文件上,当用户执行该文件时,会临时拥有该执行文件的所有者权限。使用”ls -l” 或者”ll” 命令浏览文件时,如果可执行文件所有者权限的第三位是一个小写的”s”,就表明该执行文件拥有SUID属性

   [root@song ~]# su - song

   Last login: Wed May 10 21:22:45 CST 2019 on pts/0

   [song@song ~]$ cat /etc/shadow

     cat: /etc/shadow: Permission denied

现在赋予文件passwd特殊权限suid

[root@song ~]# chmod u+s `which cat`
[root@song ~]# ls -l `which cat`
-rwsr-xr-x. 1 root root 27832 Jun 10  2014 /usr/bin/cat
再次切换普通用户执行cat,可以发现可以查看该文件了
[song@song ~]$ cat /etc/shadow
root:$6$9XC/lEl96ujGI9c8$E55wvS9amcKFj7/0HmblYg0j28FHwfymL.mQliqQNSElicrQKkZLurkSvVAv6NXM/KiJWFYV8NAh8imLiFedb/::0:99999:7:::
bin:*:17632:0:99999:7:::
daemon:*:17632:0:99999:7:::
adm:*:17632:0:99999:7:::

 

SGID:(set group)不仅能给二进制可执行程序设置,也可以对目录设置

               功能:在设置了SGID权限的目录下建立文件时,新创建的文件的所属组会,继承上级目录的所属组

[root@ken ~]# mkdir test1
[root@ken ~]# ls -ld test1
drwxr-xr-x 2 root root 6 Feb 27 22:38 test1
[root@ken ~]# chmod g+s test1
[root@ken ~]# chown :ken test1
[root@ken ~]# touch test1/test.txt
[root@ken ~]# ls -ls test1/test.txt
0 -rw-r--r-- 1 root ken 0 Feb 27 22:40 test1/test.txt

对于设置sbit权限的文件,用户只能删除自己创建的文件,无法删除其他用户的文件

对目录/tmp添加sbit权限,删除文件的时候显示拒绝操作

[root@ken ~]# chmod o+t /tmp
[root@ken ~]# useradd t1
[root@ken ~]# useradd t2
[root@ken ~]# su - t1
Last login: Thu Mar 14 14:04:37 CST 2019 on pts/1
[t1@ken ~]$ touch /tmp/t1
[t1@ken ~]$ exit
logout
[root@ken ~]# su - t2
Last login: Thu Mar 14 14:03:59 CST 2019 on pts/1
[t2@ken ~]$ touch /tmp/t2
[t2@ken ~]$ rm -rf /tmp/t1
rm: cannot remove ‘/tmp/t1’: Operation not permitted
去掉sbit权限之后,再次删除即可
[root@ken ~]# chmod o-t /tmp
[root@ken ~]# su - t2
Last login: Fri Mar 15 12:49:54 CST 2019 on pts/4
[t2@ken ~]$ rm -rf /tmp/t1

扩展ACL  :access control list

例:设置用户ken对文件a.txt拥有的rwx权限 ,ken不属于a.txt的所属主和组,ken是other。怎么做?

-m表示设置的意思

[root@ken ~]# setfacl -m u:ken:rwx a.txt
查看扩展权限getfacl
[root@ken ~]# getfacl a.txt
# file: a.txt
# owner: root
# group: root
user::rw-
user:ken:rwx
group::r--
mask::rwx
other::r--
去除权限
[root@ken ~]#  setfacl -R -m u:ken:rw- testdirectory/    #-R一定要在-m前面,表示目录下所有文件
[root@ken ~]#  setfacl -x u:ken /tmp/a.txt          # 去掉单个权限
[root@ken ~]#  setfacl -b  /tmp/a.txt              # 去掉所有acl权限

posted on 2019-05-11 14:11  师兄你好  阅读(650)  评论(0编辑  收藏  举报

导航