SUID~这账怎么算?
我们都知道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权限有了进一步的认识。但是出于安全考虑,我们还是不要让普通用户拥有这么大的权利。以免发生不可预知的危险。
本文原创地址: https://www.linuxprobe.com/suid.html作者:王毅,审核员:逄增宝
本文来自博客园,作者:linux_pro,转载请注明原文链接:https://www.cnblogs.com/linuxpro/p/17462278.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!