如何确保只有管理员可以更改密码

Ram*_*man 4 users administrator 14.04

如何确保非管理员用户无法更改自己的密码?我只希望管理员这样做。

hee*_*ayl 7

您可以从passwd二进制文件中删除 SETUID 位:

sudo chmod u-s /usr/bin/passwd
Run Code Online (Sandbox Code Playgroud)

虽然不推荐这样做。

/usr/bin/passwd二进制是一个setuid可执行文件所有者root,所以当passwd被它运行的任何执行root(以如此必要的修改/etc/passwd/etc/shadow文件可以做到)。通过删除 SETUID 位,我们删除了此功能。