linux学习之SUID

文件特殊权限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这个文件啦。


 

 

 

 

 

 

 

 

 

 

阅读更多
个人分类: linux学习
上一篇linux学习之文件权限
下一篇linux学习之文件查询
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭