讲师中心 微信公众号
AI工具推荐 视频效率加速

Linux怎么配置系统的密码复杂度要求

落枫酱_3310

落枫酱_3310

发布时间:2026-06-19 07:16:24

|

922人浏览过

|

来源于php中文网

原创

密码复杂度不由 /etc/login.defs 控制,改 PASS_MIN_LEN 无效;真正生效的是 pam_pwquality.so(新系统)或 pam_cracklib.so(旧系统),须在 /etc/pam.d/common-password(Debian/Ubuntu)或 /etc/pam.d/system-auth(RHEL/CentOS)中以 password requisite 方式正确配置参数并置于 pam_unix.so 之前。

linux怎么配置系统的密码复杂度要求

直接说结论:密码复杂度不由 /etc/login.defs 控制,改 PASS_MIN_LEN 没用;真正起效的是 pam_pwquality.so 模块,必须在对应 PAM 配置文件里加对参数、放对位置。

确认当前系统用的是 pam_pwquality 还是 pam_cracklib

旧系统(CentOS 7、Ubuntu 16.04)可能还在用 pam_cracklib.so,新系统(RHEL 8+/Ubuntu 20.04+)默认用 pam_pwquality.so。两者参数名相似但不完全兼容,混用会导致策略静默失效。

  • 执行 grep -v '^#' /etc/pam.d/common-password | grep -E '(pwquality|cracklib)'(Debian/Ubuntu)或 grep -v '^#' /etc/pam.d/system-auth | grep -E '(pwquality|cracklib)'(RHEL/CentOS)看实际加载哪个模块
  • 不确定时,查手册:man pam_pwquality 或 man pam_cracklib,确认你写的参数是否被当前模块支持
  • 如果看到两行都存在(比如既有 pam_pwquality.so 又有 pam_cracklib.so),删掉其中一个——PAM 不允许多个密码强度模块共存于同一链路

在 PAM 文件里正确添加 password requisite 行

requisite 类型的模块一旦失败就终止整个密码修改流程,所以它必须放在其他 password 模块之前(尤其是不能在 pam_unix.so 后面),否则会被跳过。

Obsidian (Linux)
Obsidian (Linux)

操作 Obsidian 库(纯 Markdown 笔记),并通过 notesmd-cli 实现自动化。

下载
  • Debian/Ubuntu:编辑 /etc/pam.d/common-password,在开头附近找 password [success=1 default=ignore] pam_unix.so 这类行,在它前面插入:
password requisite pam_pwquality.so retry=3 minlen=12 difok=5 dcredit=-1 ucredit=-1 lcredit=-1 ocredit=-1 maxrepeat=3 reject_username enforce_for_root
  • RHEL/CentOS:编辑 /etc/pam.d/system-auth,同样插在 pam_unix.so 行之前,且确保不是被 include 覆盖的副本(检查是否有重复 include 导致策略被覆盖)
  • 注意:不要把这行写成 sufficient 或 required——requisite 才能保证校验失败立即退出
  • 首次启用后,普通用户运行 passwd 就会实时生效,无需重启任何服务

为什么设了 minlen=12 还被拒绝短密码?

minlen 不是绝对下限。它和字符类别要求是叠加计算的:若你设了 ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1(即四类字符各至少一个),但用户只输大小写字母,pam_pwquality 会自动把最低长度抬高到 12 + 2 = 14(缺数字、缺特殊符,两类未达标)。

  • 更可控的做法是加 minclass=4:表示“至少满足 4 类字符”,这样系统会按实际缺失类别动态补足长度,逻辑更透明
  • difok=5 是指新旧密码至少 5 个字符不同——如果旧密码是 Abc123!(8位),新密码想设 Abc123@(只改最后一位),会被拒绝
  • maxrepeat=3 拒绝 aaaa,但允许 aaabbb;如需更严,加 maxclassrepeat=2(同一类字符最多连续出现 2 次)

root 用户为啥不受限?

默认情况下,pam_pwquality.so 对 root 不生效,这是历史遗留行为。即使你在普通用户上测试通过,root 仍可能设出 123 这样的密码。

  • 必须显式加上 enforce_for_root 参数,否则 root 绕过所有规则
  • 历史密码限制同理:pam_pwhistory.so remember=24 也得带 enforce_for_root,否则 root 的旧密码不会被记录
  • 首次启用 pam_pwhistory 前,手动创建空文件:sudo touch /etc/security/opasswd && sudo chmod 600 /etc/security/opasswd,否则改密时报错“unable to open /etc/security/opasswd”

最易被忽略的点:PAM 是按行顺序执行的,requisite 失败就停,但如果你改的是 /etc/pam.d/sshd 而不是 common-password 或 system-auth,那 passwd 命令根本不会走那条链——得看具体哪个服务触发了密码修改流程。

热门AI工具

更多
SkildArt
SkildArt Hot

SkildArt是一款AI文本写作工具,一站式 AI 视觉创作平台。

Loomy
Loomy Hot

一款AI工具,主要用于科大讯飞发布的桌面级 AI 助理,比 OpenClaw 更易用、更安全!,适合需要提升相关任务效率的用户。

超级简历WonderCV

一款AI办公效率工具,主要用于免费求职简历模版下载制作,应届生职场人必备简历制作神器,适合需要提升相关任务效率的用户。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

火山引擎

火山引擎是一款面向企业的云计算与AI服务平台。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

立刻MV
立刻MV Hot

立刻MV是一款AI文本写作工具,AI 音乐视频(MV)创作工具。

花生AI
花生AI Hot

一款AI视频创作工具,主要用于B站推出的AI视频创作工具,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

相关专题

更多
磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

4370

2023.06.21

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

3673

2023.06.29

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

2953

2023.06.30

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

7270

2023.07.05

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

6902

2023.07.06

linux查看文件夹大小
linux查看文件夹大小

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。linux怎么查看文件夹大小呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

3953

2023.07.20

linux查看ip命令
linux查看ip命令

本专题为大家提供linux查看ip命令相关文章内容,感兴趣的朋友可以免费下载体验试试。

3445

2023.07.20

linux查看cpu使用率
linux查看cpu使用率

在linux的系统维护中,可能需要经常查看cpu使用率,分析系统整体的运行情况。本专题为大家带来了linux查看cpu使用率的相关文章,感兴趣的朋友千万不要错过了。

3679

2023.07.25

Tailwind CSS 如何制作导航栏和卡片
Tailwind CSS 如何制作导航栏和卡片

用 Tailwind CSS 制作导航栏和卡片,可先搭建语义化结构,再组合 Flex、Grid、间距、圆角与阴影类。这里整理横向导航、移动端菜单、卡片网格及悬停效果的相关文章,帮助你把常见页面组件做得清晰且适配不同屏幕。

0

2026.11.03

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Python uv官方安装与入门文档
Python uv官方安装与入门文档

共0课时 | 0人学习

Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn