/etc/login.defs vs chage:什么时候用什么?
目录
它们之间的关系
详细解释
1. /etc/login.defs - 系统默认配置
2. chage 命令 - 用户个性化设置
什么时候用什么?- 决策指南
它们之间的关系
/etc/login.defs
和 chage
命令实际上是互补的,而不是互斥的。让我用一个比喻来解释:
-
/etc/login.defs
= "工厂默认设置" -
chage
命令 = "个性化定制工具"
详细解释
1. /etc/login.defs
- 系统默认配置
-
作用范围:主要影响新创建的用户
-
生效时机:当使用
useradd
命令创建新用户时 -
特点:设置的是"默认值",就像工厂出厂设置
# 修改后,之后新创建的用户都会继承这些设置
PASS_MAX_DAYS 180 # 新用户密码有效期180天
PASS_MIN_DAYS 0 # 新用户密码修改后0天可再次修改
PASS_WARN_AGE 7 # 新用户密码过期前7天警告
2. chage
命令 - 用户个性化设置
-
作用范围:针对已存在的特定用户
-
生效时机:任何时候对现有用户进行修改
-
特点:可以精确控制单个用户的密码策略
# 修改已存在用户的设置
sudo chage -M 180 username # 设置密码有效期180天
sudo chage -m 0 username # 设置最小修改间隔0天
sudo chage -W 7 username # 设置过期警告7天
什么时候用什么?- 决策指南
场景 | 使用什么 | 原因 |
---|---|---|
设置系统默认密码策略 | /etc/login.defs | 影响所有新创建的用户 |
修改单个现有用户的密码策略 | chage | 精确控制特定用户 |
修改所有现有用户的密码策略 | chage (批量) | /etc/login.defs 对现有用户无效 |
满足"所有用户"的要求 | chage + /etc/login.defs | 覆盖现有和未来用户 |
"很多新手会困惑:既然有
/etc/login.defs
文件可以设置密码策略,为什么还需要chage
命令?简单来说:
/etc/login.defs
是给'未来用户'设置的
chage
是给'现在用户'设置的如果你要确保系统中每一个用户(包括已经存在的)都遵守新的密码策略,那么两者都需要使用!"