Linux下普通用户能否修改其它用户的密码?
Linux下密码通过 /etc/passwd 文件进行管理,该文件只有root用户有rw权限,普通用户是通过带有Setuid的passwd程序对自己的密码进行修改的,setuid可能将用户的权限提升到root,既然只是修改/etc/passwd文件,而普通用户在运行passwd程序时权限已提升至root,为何普通用户不能更改其它用户的密码,而root用户就可以呢?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
因为
passwd
在修改密码之前会查看当前用户是否匹配要修改的用户,否则就不会往下执行。会显示“您不能查看或更改xxx的密码信息。”之类的提示。这个提示是
passwd
修改密码之前的判断,而不是在修改shadow
的时候系统提示的权限不足。而对于普通用户是没有办法修改
passwd
的源码的(只有二进制文件才能设置setuid
),因为没有权限,所以没办法修改passwd
的执行流程,所以没办法绕过passwd
对用户的校验,因此不能够修改其他人的密码。