标签:linux suid
A. SUID, SGID, SBIT权限的活学活用方式:
SUID 添加命令: chmod 4***, chmod u+s
SUID 删除命令: chmod 0***, chmod u-s
SGID添加命令: chmod 2***, chmod g+s
SGID删除命令: chmod 0***, chmod g-s
SBIT添加命令: chmod 1***, chmod o+t
SBIT删除命令: chmod 0***, chmod o-t
SetUID的功能:
1. 只有可执行的二进制程序或者shell程序才能设定SUID权限
2. 命令执行者要对该程序(命令)拥有x(执行)权限
3. 命令执行者在执行该程序时获得该程序文件owner的身份(在执行程序的过程中灵魂附体为文件的owner)
4. SetUID权限只在该程序执行过程中有效,也就是说身份改变只在程序执行过程中有效
以passwd命令举例
ls –l /usr/bin/passwd #passwd命令,不是/etc/passwd配置文件
bl@ubuntumma:~$ ls -l /usr/bin/passwd
-rwsr-xr-x 1 root root 47032 Jul 16 2015 /usr/bin/passwd
bl@ubuntumma:~$ ls -l /etc/shadow
-rw-r----- 1 root shadow 1292 Aug 25 16:56 /etc/shadow
以上可以看出,
(1)passwd命令的权限中,有s。
(2)shadow文件的权限普通用户没有w权限,root用户有w权限
(3)因为passwd命令有s(即设置了suid功能),那么bl用户在执行passwd命令时,就会暂时获得命令owner(root)的权限,而root对shadow文件有w权限,所以,普通用户bl此时也有了w权限,在执行passwd时是可以修改密码的(即修改shadow文件)。
设定SUID
4代表SUID
chmod 4764
chmod u+s
bl@ubuntumma:~$ ls -l test
-rwxrw-r-- 1 bl bl 0 Aug 26 12:43 test
bl@ubuntumma:~$ chmod 4764 test
bl@ubuntumma:~$ ls -l test
-rwsrw-r-- 1 bl bl 0 Aug 26 12:43 test
删除SUID,直接设置权限即可
bl@ubuntumma:~$ chmod 664 test 或 chmod u-s
bl@ubuntumma:~$ ls -l test
-rw-rw-r-- 1 bl bl 0 Aug 26 12:43 test
这时,再次设置SUID会出现什么情况呢
bl@ubuntumma:~$ chmod u+s test
bl@ubuntumma:~$ ls -l test
-rwSrw-r-- 1 bl bl 0 Aug 26 12:43 test
S变成大写了,这说明SUID设置出错,因为644权限里的owner本身就没有x权限,所以无法设置SUID
出现大写S表示设置SUID权限不成功,因为文件所有者都没执行权限[x], 这在linux中时不允许的。
本文出自 “3 TEETH Network Jockey!” 博客,谢绝转载!
标签:linux suid
原文地址:http://dazern.blog.51cto.com/237733/1903263