如何更优地禁止Ubuntu用户密码包含键盘4个连续字符?
解决Ubuntu密码禁止键盘连续4字符的更优方案
你之前用badwords列全所有4连续键盘字符的方法确实冗余且易遗漏,推荐使用pwquality的正则匹配功能,一行配置就能覆盖所有场景。
实现步骤
- 打开
/etc/security/pwquality.conf配置文件 - 添加或修改
badregex选项,用正则匹配所有键盘连续4字符(含大小写、正向/反向序列):badregex = (?i)(?=(qwertyuiop|asdfghjkl|zxcvbnm|0123456789|poiuytrewq|lkjhgfds|mnbvcxz|9876543210)).{4}- 若只需禁止正向连续字符,去掉反向序列即可:
badregex = (?i)(?=(qwertyuiop|asdfghjkl|zxcvbnm|0123456789)).{4}
- 若只需禁止正向连续字符,去掉反向序列即可:
为什么这方法更好
- 简洁性:一行配置替代数十个
badwords条目,可读性和维护性大幅提升 - 全面性:
(?i)标记忽略大小写,自动覆盖QWER、vcxz这类大小写组合;反向序列(如rewq、lkjh)也被包含(按需取舍) - 扩展性:若需适配其他键盘布局,只需在正则中添加对应字符序列即可
测试配置有效性
用pwquality命令快速验证:
echo "qwer123" | pwquality --config=/etc/security/pwquality.conf
若配置生效,会返回类似password contains an illegal substring的错误提示。
内容的提问来源于stack exchange,提问作者jinhokim
相关产品推荐
相关产品推荐

