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 做验收
- 新装机器统一套用同一份基线配置