如何在 PAM 上为普通用户和 root 设置不同的密码规则

Mig*_*l M 2 passwords debian pam root

请耐心听我说一会儿。我正在做一个设置 VM 的大学练习,但我很难理解 PAM 是什么以及实际工作原理。谷歌上出现的所有结果要么太基本,要么太复杂,我真的不知道该查什么。我的练习要求我为普通用户和 root 设置一系列规则:

要设置强密码策略,您必须遵守以下要求:

  • 您的密码长度必须至少为 10 个字符。
  • 它必须包含一个大写字母和一个数字。
  • 它不得包含超过 3 个连续的相同字符。
  • 密码不得包含用户名。
  • 以下规则不适用于 root 密码:密码必须至少包含 7 个不属于以前密码的字符。
  • 当然,你的root密码必须符合这个政策

我还没有找到任何好的网站来解释 PAM 如何以良好的方式工作,但是我发现对于普通用户我需要使用以下命令进行编辑/etc/pam.d/common-password

password        requisite          pam_pwquality.so retry=3 minlen=10 ucredit=-1 dcredit=-1 maxrepeat=3 reject_username difok=7 enforce_for_root
Run Code Online (Sandbox Code Playgroud)

虽然我不明白 PAM 是如何工作的,但我确实了解它的标志。我的问题是如何为 root 设置不同的规则?

小智 5

请注意,root 不会被要求提供旧密码,因此不会执行比较旧密码和新密码的检查。 所以,基本上,这句话

以下规则不适用于 root 密码

意味着您不能difok=7为 root 工作,而不是必须root 创建单独的规则。