我向 sudoers 添加行:
user1 ALL= EXEC: PASSWD: /usr/bin/passwd user1
当我使用“sudo passwd user1”时,应用简单密码:
Password:
New password:
BAD PASSWORD: it is too short
BAD PASSWORD: is too simple
Retype new password:
passwd: password updated successfully
如何关闭root强制修改密码功能?
-rwsr-x--- root root /usr/bin/passwd.shadow
因此 user1 只能以 root 身份运行 passwd。但我需要允许 user1 更改 user1 和 user2 的密码。 user2 应该仅更改 user2 的密码。我为此使用 sudoers:
user1 ALL= EXEC: PASSWD: /usr/bin/passwd user1
user1 ALL= EXEC: PASSWD: /usr/bin/passwd user2
user2 ALL= EXEC: PASSWD: /usr/bin/passwd user2
答案1
请注意,您运行的命令sudo
是/usr/bin/passwd
,而不是/usr/bin/passwd.shadow
。提到的原因并不是显而易见的passwd.shadow
:这可能是passwd.shadow
主命令使用的辅助命令passwd
。
即使没有sudo
,每个用户也可以更改自己的 - 并且仅有的通过使用不带参数的命令来设置自己的密码passwd
。当以这种方式使用时,PAM 中配置的任何密码质量检查都无法通过第三次输入新密码来绕过,就像 root(或passwd
通过 以 root 身份运行的人sudo
)可以做的那样。
如果您想删除密码质量检查,在 Linux 中它们通常由 PAM 模块或控制pam_cracklib.so
,具体取决于所使用的 Linux 发行版。目录中可能有这些模块的配置文件,或者如果您想接受非常简单的密码,您可以从配置文件中完全注释掉这些模块。pam_passwdqc.so
pam_pwquality.so
/etc/security/
/etc/pam.d/
如果该passwd
命令正常工作,您只需要sudo
允许 user1 更改 user2 的密码,如下所示:
user1 ALL= EXEC: PASSWD: /usr/bin/passwd user2
允许每个人更改其他人的密码实际上与给予每个人不受限制的 root 访问权限相同。这通常是一个坏主意。