linux用户如何在没有root权限的情况下更改密码?

Che*_*hen 5 linux privilege

我注意到普通用户可以在没有 sudo 的情况下更改自己的密码。但据我所知,更改密码必须编写只能由 root 访问的 /etc/shadow 文件。

怎么会这样??

pob*_*key 6

passwd已安装的程序setuid root的

$ ls -l `which passwd`
-rwsr-xr-x 1 root root 41284 Sep 12  2012 /usr/bin/passwd
Run Code Online (Sandbox Code Playgroud)

注意s第四个位置。这是一个可以在文件权限中设置的标志,它告诉 Linux 在运行时假定拥有可执行文件的用户的权限 - 在这种情况下,root。