linux 文件的特殊权限:suid sgid sticky

  • A+
所属分类:linux技术
摘要

1.文件与目录设置不止基础权限:r,w,x,还有所谓的特殊权限。特殊权限会拥有一些“特权”。特殊权限为:suid sgid sticky

一.关于文件的特殊权限

1.文件与目录设置不止基础权限:r,w,x,还有所谓的特殊权限。特殊权限会拥有一些“特权”。特殊权限为:suid sgid sticky

2.文件的特殊权限:suid sgid sticky

  • ​ SUID(set uid设置用户ID):限定:只能设置在二进制可执行程序上面。对目录设置无效。功能:程序运行时的权限从执行者变成程序所有者的权限
  • ​ SGID:限定:既可以给二进制可执行程序设置,也可以对目录设置。功能:在设置了SGID权限的目录下建立文件时,新创建的文件的所属组会继承上级目录的所属组
  • ​ Stickybit:粘滞位权限是针对目录的,对文件无效,也叫防删除位

3.这3个特殊权限对应的数值为

SUID SGID Stickybit
u+s或u=4 g+s或g=2 o+t或o=1

二.suid

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

[elk@node5 ~]$ which passwd /bin/passwd  [elk@node5 ~]$ whereis passwd passwd: /usr/bin/passwd /etc/passwd /usr/share/man/man1/passwd.1.gz   [elk@node5 ~]$ ll /bin/passwd  -rwsr-xr-x. 1 root root 27832 Jun 10  2014 /bin/passwd  [elk@node5 ~]$ ll /usr/bin/passwd  -rwsr-xr-x. 1 root root 27832 Jun 10  2014 /usr/bin/passwd 

2.普通用户elk,没有对shadow文件写入的权限, 但是elk用户使用passwd修改自己密码时,可以修改shadow文件中的内容,这是什么原因?

[root@node5 ~]# ll /etc/shadow ----------. 1 root root 1179 9月  19 2017 /etc/shadow [root@node5 ~]# su - mk 上一次登录:二 5月  8 21:07:24 CST 2018pts/0 上 [elk@node5 ~]$ passwd   [root@node5 ~]# vim /etc/shadow  #查看shadow文件已经被elk用户修改成功。 

因为mk用户执行passwd命令时,权限会提升成root用户,所以可以修改成功。

3.给less命令添加suid权限

[elk@node5 ~]$ which less /bin/less [elk@node5 ~]$ ll /bin/less -rwxr-xr-x. 1 root root 158240 Jul 31  2015 /bin/less  [elk@node5 ~]$ ll /etc/shadow ---------- 1 root root 1242 Oct 14 02:20 /etc/shadow  [elk@node5 ~]$ less /etc/shadow /etc/shadow: Permission denied  [elk@node5 ~]$ exit logout [root@node5 ~]# chmod u+s /bin/less  [root@node5 ~]# su - elk Last login: Thu Oct 15 11:39:37 CST 2020 on pts/3  [elk@node5 ~]$ less /etc/shadow tss:!!:18341:::::: postgres:$6$W/xWXomt$Vry4J0aBsW4EyiMDW90kfzi45lAWKeYwBPBJzdiX3Yj1twH6zn7D9cG8PJXAMhcwTaIiuJNZxCtLFh/Ht6CwK/:18365:::::: esnode:$6$fznP2Oqd$02x2dTMV0kP5Ra780.sw.W06KZVl7ua8sA7QBMfEsYp0iUs1ukz.9H/iqYjToLLLa1TPSGWDC6a8yVJFZCVV5/:18378:0:99999:7::: elk:$6$An7lKn2Q$dSuliu1h.Wn42GsrRwKPDS6bgEmTR8TlMsWMHIVWIEXOVbsKwvBcKDDNv.Mxki7aOwV8EBASQFAGQ9W.N/LeV.:18548:0:99999:7::: logstash:$6$9yY5A65j$YzViQt8dC7mb9ID4my1x1o2dZX3ovQbTfsMr3f5UaJkt3THQRMOmt0pq2YIN0W.zlyU/hRlZe.9vocyFepTYl1:18548:0:99999:7:::  #执行less命令的时候,用户权限提升到了root权限 [root@node5 ~]# ps -ef | grep less root      68019  67976  0 14:57 pts/3    00:00:00 less /etc/shadow root      68034  58078  0 14:57 pts/5    00:00:00 grep --color=auto less  [elk@node5 ~]$ ll /bin/less -rwsr-xr-x. 1 root root 158240 Jul 31  2015 /bin/less  [elk@node5 ~]$ exit logout  [root@node5 ~]# chmod u-s /bin/less  [root@node5 ~]# ll /bin/less -rwxr-xr-x. 1 root root 158240 Jul 31  2015 /bin/less  [root@node5 ~]# chmod 4755 /bin/less  [root@node5 ~]# ll /bin/less -rwsr-xr-x. 1 root root 158240 Jul 31  2015 /bin/less   [root@node5 ~]# chmod u-s /bin/less  [root@node5 ~]# ll /bin/less -rwxr-xr-x. 1 root root 158240 Jul 31  2015 /bin/less 

另外:chmod 4755 /usr/bin/less # 等同于 chmod u+s /usr/bin/less

三.SGID

1.SGID既可以给二进制可执行程序设置,也可以给目录设置。
2.SGID的功能:在设置了SGID权限的目录下建立文件时,新创建的文件的所属组会继承上级目录的权限。

[root@node5 ~]# mkdir ceshi  [root@node5 ~]# ll -d ceshi drwxr-xr-x 2 root root 6 Oct 15 15:10 ceshi  [root@node5 ~]# chmod g+s ceshi  [root@node5 ~]# !ll ll -d ceshi drwxr-sr-x 2 root root 6 Oct 15 15:10 ceshi  [root@node5 ~]# chown :elk ceshi  [root@node5 ~]# !ll ll -d ceshi drwxr-sr-x 2 root elk 6 Oct 15 15:10 ceshi  [root@node5 ~]# touch ceshi/ceshi.txt  [root@node5 ~]# ll ceshi/ceshi.txt  -rw-r--r-- 1 root elk 0 Oct 15 15:12 ceshi/ceshi.txt 

四.Stickybit

1.Stickybit只作用于目录。
2.Stickybit的功能:目录下创建的文件只有root、文件创建者、目录所有者才能删除。

3.Stickybit的用法:chmod o+t /tmp/test/

4.例: 系统中的tmp目录就是这样

[root@node5 ~]# ll -d /tmp drwxrwxrwt. 10 root root 4096 Oct 15 10:12 /tmp