2021-04-24 14:40:33
查看Linux用户的密码策略需结合全局配置文件检查与特定用户信息查询,同时可通过chage命令和PAM模块实现灵活管理。以下是详细步骤与说明:

全局策略通过系统配置文件定义,影响所有用户或新创建的用户。
检查/etc/login.defs文件该文件定义了密码的默认行为,使用以下命令查看:
cat /etc/login.defs重点关注以下参数:
PASS_MAX_DAYS:密码最大有效天数(如90表示90天后过期)。
PASS_MIN_DAYS:密码最小有效天数(如7表示7天内不得重复修改)。
PASS_MIN_LEN:密码最小长度(如8表示至少8个字符)。
PASS_WARN_AGE:密码过期前警告天数(如7表示提前7天提醒)。
注意:这些参数仅对新用户或下次修改密码的用户生效,已存在用户需手动更新。
检查/etc/pam.d/common-password文件该文件通过PAM模块定义密码强度规则,使用以下命令查看:
cat /etc/pam.d/common-password常见模块包括:
pam_unix.so:基础密码验证模块。
pam_pwquality.so:支持复杂度检查(如长度、字符类型)。
若系统使用pam_pwquality.so,可进一步检查/etc/security/pwquality.conf文件以获取详细规则。
使用chage命令查看特定用户的密码策略详情:
chage -l <username>例如:
chage -l testuser输出示例:
Last password change : Jan 01, 2024 Password expires : Apr 01, 2024 Password inactive : never Account expires : never Minimum number of days between password change : 7 Maximum number of days between password change : 90 Number of days of warning before password expires : 7字段说明:
chage不仅可查看信息,还能修改策略。需root权限操作,常用选项如下:
设置密码最大有效天数
chage -M <days> <username>例如:
chage -M 60 testuser # 设置密码最多60天有效强制下次登录修改密码
chage -d 0 <username>例如:
chage -d 0 testuser # 用户下次登录必须改密设置密码失效日期
chage -E <YYYY-MM-DD> <username>例如:
chage -E 2024-12-31 testuser # 密码在2024年12月31日失效其他选项
-m <days>:设置密码最小有效天数。
-W <days>:设置过期警告天数。
-I <days>:设置密码过期后账户锁定前的宽限天数。
风险提示:错误配置可能导致用户无法登录,建议先在测试环境验证。
四、通过PAM模块增强密码策略PAM模块支持更复杂的规则,如强制包含多种字符类型或禁止常见密码。
配置pam_pwquality.so模块编辑/etc/pam.d/common-password,添加或修改以下行:
password required pam_pwquality.so retry=3 minlen=10 lcredit=-1 ucredit=-1 dcredit=-1 ocredit=-1参数说明:
retry=3:允许用户重试3次。
minlen=10:密码最小长度10个字符。
lcredit=-1:至少1个小写字母。
ucredit=-1:至少1个大写字母。
dcredit=-1:至少1个数字。
ocredit=-1:至少1个特殊字符。
验证配置修改后,用户尝试设置密码时,系统会自动检查是否符合规则。例如,输入Password1!会通过,而password会因缺少大写字母和特殊字符被拒绝。
合理配置密码策略可显著提升系统安全性,但需平衡安全性与用户体验,避免过度限制导致管理成本增加。