【发布时间】:2013-11-06 08:51:42
【问题描述】:
我注意到普通用户可以在不使用 sudo 的情况下更改自己的密码。但据我所知,更改密码必须写入 /etc/shadow 文件,该文件只能由 root 访问。
这是怎么发生的??
【问题讨论】:
-
请在超级用户superuser.com问这个问题
我注意到普通用户可以在不使用 sudo 的情况下更改自己的密码。但据我所知,更改密码必须写入 /etc/shadow 文件,该文件只能由 root 访问。
这是怎么发生的??
【问题讨论】:
已安装setuid root 中的passwd 程序:
$ ls -l `which passwd`
-rwsr-xr-x 1 root root 41284 Sep 12 2012 /usr/bin/passwd
注意第四个位置的s。这是一个可以在文件权限中设置的标志,它告诉 Linux 在运行时假定拥有可执行文件的用户的权限 - 在本例中为 root。
【讨论】:
passwd 以root 权限运行,而不是调用它的用户的权限-因此passwd 程序可以读/写/etc/shadow。
用户只需更改密码即可运行
passwd
来自 linux 命令行。
【讨论】: