首页/系统/信创系统运维速查/login.defs 口令策略配置
安全加固65 条

login.defs 口令策略配置

/etc/login.defs 定义口令最短使用期、有效期、警告期与加密算法等基线;只对新建与后续修改生效,存量账户用 chage 补齐。

信创系统运维速查系统更新于 2026-10-13

login.defs 管什么

/etc/login.defs 是口令与账户的基线配置:口令最短使用期、有效期、到期前警告天数、哈希算法与默认掩码都写在这里。它由 shadow 工具链读取,只对新建账户和后续改密生效,不会自动追溯已经存在的账户。因此改完配置还要用 chage 给存量账户补齐,验收才算过关。

基本信息

配置文件/etc/login.defs
适用平台RPM 系与 DEB 系通用
有效期PASS_MAX_DAYS / PASS_MIN_DAYS / PASS_WARN_AGE
算法ENCRYPT_METHOD(常用 SHA512)
默认掩码UMASK

典型使用场景

  • 等保整改要求口令 90 天更换并限制最短使用期
  • 新装机器统一基线,避免每台手工设置
  • 审计核查:抽查账户口令有效期是否符合策略
  • 调整默认掩码,控制新建文件的初始权限
  • 更换口令哈希算法以满足合规要求

关键配置项

关键配置项
PASS_MAX_DAYS   90      # 口令有效期,超期强制修改
PASS_MIN_DAYS   7       # 最短使用期,防止立刻改回旧口令
PASS_MIN_LEN    8       # 最短长度,只约束 passwd 系工具
PASS_WARN_AGE   7       # 到期前多少天开始提示
ENCRYPT_METHOD  SHA512  # 新口令使用的哈希算法
UMASK           027     # 新建文件的默认权限掩码

验证与存量补齐

验证与存量补齐
grep -E 'PASS_|ENCRYPT_METHOD|UMASK' /etc/login.defs   # 核对配置
chage -l someuser                                     # 查看某账户策略
chage -M 90 -m 7 -W 7 someuser                        # 给存量账户补策略
authconfig --test 2>/dev/null | head                  # 部分发行版可整体自检

参数含义对照

参数含义建议值
PASS_MAX_DAYS口令最长有效期90 天,与合规要求一致
PASS_MIN_DAYS两次改密的最小间隔7 天,避免绕回旧口令
PASS_WARN_AGE到期前提醒天数7 天
ENCRYPT_METHOD哈希算法SHA512
UMASK默认权限掩码027,收紧新建文件权限
PASS_MIN_LEN 只约束 passwd 与 chpasswd 这类工具,真正的复杂度要求(字符类别、重复字符限制)由 PAM 的 pam_pwquality 模块控制,两者要配合使用。

落地步骤

  • 先备份 /etc/login.defs 再修改关键项
  • 改完用 grep 核对实际生效内容
  • 用 chage 给存量账户补有效期与警告期
  • 抽样执行 chage -l 做验收
  • 新装机器统一套用同一份基线配置

易错点

  • 只改 login.defs 不追溯存量账户:老账户仍是永久口令,验收时用 chage -l 抽样核对
  • 改 ENCRYPT_METHOD 只影响新设置的口令:旧哈希保留原算法,合规要求严格时需逐个重设
  • 把 PASS_MIN_LEN 当成完整复杂度策略:它不检查字符类别,弱口令依旧能通过
  • PASS_MIN_DAYS 设得过大导致无法应急改密:配合管理员重置流程,避免锁死运维通道
  • 忽略 profile 与 bashrc 里的 umask 设置:它会覆盖 login.defs 的默认值,验收以新建文件的实际权限为准

数据来源与参考

  • man 5 login.defs
  • 红帽安全指南(口令策略)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌