如何确保非管理员用户无法更改自己的密码?我只希望管理员可以这样做。
答案1
您可以从二进制文件中删除 SETUID 位passwd
:
sudo chmod u-s /usr/bin/passwd
尽管我们不推荐这样做。
该/usr/bin/passwd
二进制文件是 SETUID 可执行文件,所有者为root
,因此当passwd
被任何人执行时,它都以 的身份运行(因此可以对、文件root
进行必要的更改)。通过删除 SETUID 位,我们删除了此功能。/etc/passwd
/etc/shadow