Linux如何查看用户的密码策略 chage命令使用详解

Linux如何查看用户的密码策略 chage命令使用详解
最新回答
空自忆

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

字段说明:

  • Last password change:上次修改密码日期。
  • Password expires:密码过期日期。
  • Minimum/Maximum number of days:密码最小/最大有效天数。
  • Warning days:过期前警告天数。
三、使用chage命令修改用户密码策略

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会因缺少大写字母和特殊字符被拒绝。

五、总结
  • 全局策略:通过/etc/login.defs和/etc/pam.d/common-password定义,影响所有用户。
  • 用户级策略:使用chage -l查看,chage -M/-d/-E等修改。
  • 复杂度规则:通过pam_pwquality.so模块实现,需编辑PAM配置文件。

合理配置密码策略可显著提升系统安全性,但需平衡安全性与用户体验,避免过度限制导致管理成本增加。