导读 我们都知道linux里面一切都是文件。文件拥有普通权限rwx,特殊权限suid,sgid,sbit等。本文分享一下suid几个的小实验,通过实验我们可以更加深入的理解suid权限,希望对于我们理解有帮助。

首先,咱们都知道linux用户(不论是超级用户还是普通用户)都可以更改自己的密码。密码这个文件是在/etc/shadow文件里面。我们查看这个文件的权限就可以发现:这个文件权限全为空,见下图:

换一种说法:普通用户对/etc/shadow文件没有任何权限的。那我们就有有疑问了,普通用户都可以更改自己的密码,但是现在看来又没有任何权限。那我们就要想到文件的特殊权限SUID了。

普通用户更改密码是使用passwd完成的,我们可以通过whereis passwd查看passwd的绝对路径。见下图:

仔细看就会发现/usr/bin/passwd权限是:-rwsr-xr-x. root root 。其中s代表的意思就是suid权限。suid可以让执行者临时拥有属主的权限。这样我们就不难理解了,普通用户使用psaawd更改密码,由于passwd拥有suid权限,所以linux系统临时把passwd命令的所有者(root)身份赋给了普通用户,从而普通用户就拥有了root身份,所以就可以使用passwd来修改密码(/etc/shadow文件)。

那么普通用户可不可以读取/etc/shadow文件呢?我们看到cat文件没有suid权限。见下图:

那么如果我们给cat命令加上suid权限,是不是就可以看/etc/shadow文件了呢?

果然,我们看到了加上suid权限的cat成功看到了/etc/shadow文件。

现在,我相信我们对于suid权限有了进一步的认识。但是出于安全考虑,我们还是不要让普通用户拥有这么大的权利。以免发生不可预知的危险。

本文原创地址: //gulass.cn/suid.html作者:王毅,审核员:逄增宝

本文原创地址://gulass.cn/linux-suid.html编辑:王毅,审核员:暂无