文件特殊权限SUID?
1. 问题引导
/etc/shadow文件所有账户的密码,且/etc/shadow的文件属性为:
[root@localhost ~]# ll /etc/shadow
-r-------- 1 root root 1464 Nov 11 17:41 /etc/shadow
[root@localhost ~]#
可以该文件仅能由root进行读取并且由root进行强制写入,那么普通用户(在我的系统中有一个普通用户test1)是否可以修改自己的密码呢?答案是肯定的。我们可以输入passwd来修改自己的密码,在这里就有个问题:既然/etc/shadow文件无法被test1用户修改,那test1是如何修改自己的密码呢?
普通用户修改自己的密码是通过passwd这个命令来修改,大家来看下/user/bin/passwd文件的权限
[root@localhost ~]# ll /usr/bin/passwd
-rwsr-xr-x 1 root root 22960 Jul 17 2006 /usr/bin/passwd
[root@localhost
所以,test1之所以能修改自己的密码,是因为passwd的权限中的那个s导致的。
2. Set UID(SUID)权限
当s出现在文件拥有者的x属性上,表明文件具有SUID权限。那么SUID权限对于一个文件到底意味着什么呢?
l 该权限仅对二进制程序有效果
l 执行者必须拥有该文件的执行(x)权限
l 该权限仅在执行程序的过程中有效
l 执行者在执行过程中具有该程序拥有者的权限
从上面的问题引导来解释下:
对于passwd执行程序来说,test1具有x权限;
当test1执行passwd程序时,就拥有了passwd拥有者(也就是root)的权限
进行更改代码时,由于此时具有root的权限,当然可以更改shadow这个文件啦。
2万+

被折叠的 条评论
为什么被折叠?



