关闭

linux学习之SUID

169人阅读 评论(0) 收藏 举报
分类:

文件特殊权限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 UIDSUID)权限

s出现在文件拥有者的x属性上,表明文件具有SUID权限。那么SUID权限对于一个文件到底意味着什么呢?

该权限仅对二进制程序有效果

执行者必须拥有该文件的执行(x)权限

该权限仅在执行程序的过程中有效

执行者在执行过程中具有该程序拥有者的权限

从上面的问题引导来解释下:

对于passwd执行程序来说,test1具有x权限;

test1执行passwd程序时,就拥有了passwd拥有者(也就是root)的权限

进行更改代码时,由于此时具有root的权限,当然可以更改shadow这个文件啦。


 

 

 

 

 

 

 

 

 

 

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场