linux 文件的特殊权限: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
致力于一条龙式的为您解决问题