我注意到普通用户可以在没有 sudo 的情况下更改自己的密码。但据我所知,要更改密码必须编写只能由 root 访问的 /etc/shadow 文件。
怎么会这样??
passwd
安装的setuid root中的程序:
$ ls -l `which passwd`
-rwsr-xr-x 1 root root 41284 Sep 12 2012 /usr/bin/passwd
注意s
第四个位置。这是一个可以在文件权限中设置的标志,它告诉 Linux 在运行时承担拥有可执行文件的用户的权限 - 在本例中为 root。
用户只需更改密码即可运行
passwd
从linux命令行。