在银河麒麟系统中强制10位以上含大小写字母、数字、特殊符号的密码,需同步配置PAM模块、/etc/security/pwquality.conf和/etc/login.defs三处,缺一不可;其中PAM是核心校验层,决定所有本地密码修改操作的强制策略。

在银河麒麟操作系统中强制用户设置不低于10位且含大小写字母、数字、特殊符号的密码,需同步调整PAM模块与全局配置文件,否则仅改一处会导致策略不生效或被绕过。
通过PAM模块设置密码最小长度和复杂度
这是最核心的强制校验层,所有本地密码修改操作(包括图形界面、passwd命令、sudo passwd)都必须经过它。不改这里,其他配置全是摆设。
1、以root身份编辑PAM密码策略文件:【sudo nano /etc/pam.d/common-password】
2、查找含pam_pwquality.so的行;若无,则在文件末尾新增一行(注意不要复制粘贴换行符):
password requisite pam_pwquality.so retry=3 minlen=10 difok=4 ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1 maxrepeat=3 reject_username
3、保存退出。这行中minlen=10表示强制10位最小长度,ucredit=-1等参数分别要求至少1个大写、1个小写、1个数字、1个特殊字符;maxrepeat=3禁止连续4个相同字符,reject_username防止密码包含用户名。
4、立即验证:执行passwd尝试改密,输入9位密码或纯字母密码,应提示“Password is shorter than minlen”或“Password fails to meet complexity requirements”。
同步更新/etc/security/pwquality.conf
该文件是pam_pwquality.so的实际参数源,/etc/pam.d/common-password里写的参数会覆盖它,但保留此处可避免后续维护混乱。
1、执行sudo nano /etc/security/pwquality.conf
2、确保以下行未被注释且值匹配:
minlen = 10
ucredit = -1
lcredit = -1
dcredit = -1
ocredit = -1
difok = 4
maxrepeat = 3
3、保存退出。若某参数不存在,直接新增一行;若存在但被#号注释,删掉#号即可。
补充设置/etc/login.defs中的PASS_MIN_LEN
这个参数本身不参与运行时校验,但影响useradd新建用户时的初始策略,也用于chage等工具显示默认值,必须与PAM保持一致,否则审计报告会报不一致。
1、执行sudo nano /etc/login.defs
2、找到PASS_MIN_LEN行;若被注释(开头有#),删掉#;若不存在,新增一行:
PASS_MIN_LEN 10
3、保存退出。注意:【此设置仅对用useradd新建的用户生效,不影响已有用户】,也不替代PAM校验。
图形界面快速启用预设策略
适用于不想手动编辑配置文件、只需启用系统内置等级的场景,但灵活性低,无法自定义具体数值。
方法一:打开“安全中心”→“账户安全”→“账户密码安全”→选择“高级”或点击“自定义”→勾选“密码最小长度”并设为10,再勾选所需字符类型数量。
方法二:若安全中心不可用,走传统路径:开始菜单→“设置”→左侧“账户”→右侧“密码”→点“修改”→按提示完成一次密码更新,此时图形界面会自动读取当前PAM策略并校验新密码。
注意:图形界面修改密码时,【不会修改任何配置文件,只触发PAM实时校验】,所以必须先完成前面三个步骤,否则点“确定”会失败。

















