我知道,passwd
设置了 setuid
位,因此它可以修改 root
拥有的 /etc/shadow
文件。
[~]$ ls -l `which passwd`
-rwsr-xr-x. 1 root root 27832 Jan 29 2014 /usr/bin/passwd
但它如何确保以非 root 用户身份登录时只能修改当前帐户的密码。
最佳答案
通过 geteuid() 和类似方法可以获得其他 UID/GID 值。有效 UID 是启动该程序的任何用户的 UID。 setuid 权限的所有用途都是将运行时凭据更改为有效 UID/GUI 的凭据。然后应用正常权限。
关于linux - linux passwd 命令如何确保它无法从非特权帐户修改其他用户的密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31197259/