Appearance
su – 切换用户身份
命令用于切换其他使用者的身份,除 root 外,需要键入该使用者的密码。
语法格式
bash
su [参数] [用户名]
选项
选项 | 说明 |
---|---|
- 或 -l 或 --login | 模拟登录,加载目标用户的环境变量 |
-c 或 --command | 以目标用户身份执行单条命令 |
-m 或 -p | 保持当前环境变量不变 |
-s 或 --shell | 指定要使用的 shell |
-h 或 --help | 显示帮助信息 |
经典案例
bash
## 切换root
su -
# 或
su - root
su - username # 切换到其他用户
su -c "command" username # 执行单条命令后返回
su -m username # 保持当前环境变量
su -s /bin/bash username # 指定使用的shell
sudo – 授权普通用户执行管理员命令
sudo
(Super User DO)是Linux系统中允许授权用户以其他用户(通常是root)身份执行命令的安全机制。
语法格式
bash
sudo [选项] 命令
选项
选项 | 说明 |
---|---|
-u | 以指定用户身份执行(默认root) |
-l | 列出当前用户的sudo权限 |
-v | 刷新sudo认证时间戳 |
-k | 清除/重置时间戳(要求下次输入密码) |
-s | 启动root的shell环境 |
-i | 模拟root登录(加载环境变量) |
-b | 在后台运行命令 |
-E | 保留当前用户环境变量 |
经典案例
bash
sudo apt update # 以root身份运行apt update
sudo -l # 查看当前用户的sudo权限
visudo # 安全编辑sudoers文件
sudo -i # 切换到root登录环境(加载.profile)
sudo -s # 启动root的shell但不改变环境
sudo -E command # 保留当前用户环境执行命令
useradd - 创建新用户账户
useradd
是 Linux 系统中用于创建新用户账户的核心工具,会同时更新以下文件:
/etc/passwd
/etc/shadow
/etc/group
/etc/gshadow
- 用户家目录(可选)
语法格式
bash
useradd [选项] 用户名
选项
选项 | 作用描述 |
---|---|
-c "备注" | 设置用户备注信息(通常为全名) |
-d 目录 | 指定家目录路径(默认 /home/用户名 ) |
-e 日期 | 设置账户过期日期(格式:YYYY-MM-DD) |
-f 天数 | 密码过期后宽限天数(0=立即禁用,-1=禁用此功能) |
-g 主组 | 指定主用户组(GID或组名),用户组必须存在,不会自动创建组信息 |
-G 附加组 | 指定附加用户组(逗号分隔) |
-m | 自动创建家目录(配合 -k 可指定模板目录) |
-M | 不创建家目录(适用于服务账户) |
-N | 不创建与用户同名的用户组 |
-p 密码 | 设置加密后的密码(建议用 passwd 命令替代) |
-r | 创建系统账户(UID范围 1-999) |
-s shell | 指定登录shell(如 /bin/bash ,/sbin/nologin 禁止登录) |
-u UID | 手动指定用户ID |
典型案例
bash
# 常见普通用户
useradd -m -c "John Doe" -s /bin/bash johndoe # 创建用户 johndoe,自动生成家目录 /home/johndoe,设置可登录的bash shell
# 创建服务用户
useradd -r -s /sbin/nologin -d /var/lib/mysql mysql # 创建系统账户 mysql,禁止交互式登录,指定工作目录为 /var/lib/mysql
# 带附加组的用户
useradd -G wheel,developers -c "Dev User" devuser # 主组为默认创建的 devuser 组,同时加入 wheel 和 developers 组
# 创建程序用户不创建家目录不允许登录
useradd -Ms /sbin/nologin -c "这是应用www用户" www
配置文件
/etc/default/useradd
定义默认参数:
ini
GROUP=100 # 默认起始GID
HOME=/home # 家目录位置
INACTIVE=-1 # 密码过期宽限期。-1表示永久有效,0表示失效
EXPIRE= # 默认过期日期
SHELL=/bin/bash # 默认shell
SKEL=/etc/skel # 家目录模板
注意事项
- 创建用户后必须用
passwd
设置密码 - 使用
-p
选项时需提供 已加密 的密码(可通过openssl passwd
生成) - 生产环境中建议使用
-e
设置服务账户过期时间 - 删除用户时如需移除家目录,应使用
userdel -r
passwd – 修改用户的密码值
passwd命令来自英文单词password的缩写,其功能是修改用户的密码值;同时也可以对用户进行锁定等操作,但需要管理员身份才可以执行。
语法格式
bash
passwd [选项] [用户名]
选项
选项 | 说明 |
---|---|
-l | 锁定用户密码(禁用账户) |
-u | 解锁用户密码 |
-d | 删除用户密码(使账户无密码) |
-e | 强制用户下次登录时修改密码 |
-S | 显示账户密码状态 |
-n | 设置密码最短使用天数 |
-x | 设置密码最长使用天数 |
-w | 设置密码过期前警告天数 |
-i | 设置密码过期后宽限天数 |
-k | 只更新过期的密码 |
经典案例
基本操作
bashpasswd # 普通用户修改自己的密码 passwd username # root用户修改其他用户密码 passwd -l username # 锁定用户账户 passwd -u username # 解锁用户账户 passwd -d username # 删除用户密码(危险操作) passwd -e username # 强制用户下次登录修改密码 passwd -S username # 查看密码状态信息
设置密码策略
bashpasswd -n 7 -x 90 -w 7 -i 14 username
- 密码最短使用7天
- 密码最长使用90天
- 过期前7天警告
- 过期后14天宽限期
usermod - 修改用户账户属性
usermod 是 Linux 系统中用于修改用户账户属性的重要命令,属于 shadow-utils 软件包的一部分。系统管理员常用它来调整用户的家目录、登录名、用户组等关键信息。
语法格式
bash
usermod [选项] 用户名
选项
选项 | 功能描述 | 示例 |
---|---|---|
-a | 添加与-G 组合使用 | |
-c 说明 | 修改用户备注信息(通常是全名) | usermod -c "John Doe" john |
-d 路径 | 更改用户家目录 | usermod -d /new/home/john john |
-e nday/年-月-日 | 设置账户过期日期(YYYY-MM-DD) | usermod -e 2024-12-31 john |
-g gid | 修改用户主组 | usermod -g developers john |
-G 附件组1,附加组2... | 与-a修改附加组(覆盖原有组) | usermod -G sudo,webadmin john |
-aG 附加组 | 追加附加组(不覆盖) | usermod -aG docker john |
-l 用户名 | 修改用户登录名 | usermod -l "tom" john |
-L | 锁定用户账户 | usermod -L john |
-m | 与-d配合移动家目录内容 | usermod -md /new/home/john john |
-s SHELL | 修改默认登录shell。/bin/bash,/sbin/nologin | usermod -s /bin/bash john |
-u UID | 修改用户UID | usermod -u 2000 john |
-U | 解锁用户账户 | usermod -U john |
经典案例
bash
usermod -g developers alice # 修改用户主组
usermod -aG sudo,docker bob # 添加用户到附加组(保留原有组)
usermod -l newname -d /home/newname -m oldname # 更改用户名并移动家目录
usermod -e 2024-12-31 tempuser # 设置账户过期时间
usermod -L locked_user # 锁定
usermod -U locked_user # 解锁账户
注意事项
- 修改用户名时,需要手动更新相关文件权限
- 修改UID后,需要手动更改文件所有权
- 用户必须注销后才能完全应用某些修改
- 使用-m选项时确保新目录不存在
- 重要系统用户的UID不要随意修改(如root用户)
userdel - 删除账号
userdel
是 Linux 系统中用于删除用户账户的命令,属于 shadow-utils
软件包的一部分。该命令通常由系统管理员使用,用于清理不再需要的用户账户。
语法格式
bash
userdel [选项] 用户名
选项
选项 | 功能描述 |
---|---|
-f, --force | 强制删除用户(即使该用户仍在登录状态) |
-r, --remove | 删除用户的同时删除其家目录和邮件池 |
-Z, --selinux-user | 同时删除 SELinux 用户映射 |
经典案例
bash
# 仅删除 /etc/passwd 和 /etc/shadow 中的用户记录,但保留 /home/username 目录
userdel username # 基本删除用户(保留家目录)
userdel -r username # 删除用户并移除家目录
userdel -f username # 强制删除用户(即使该用户正在运行进程)
userdel -Z username # 删除用户并清理 SELinux 映射
注意事项
- 权限要求:必须使用
sudo
或root
权限执行。 - 文件残留:默认情况下,
userdel
不会删除用户的家目录和邮件池,除非使用-r
选项。 - 进程影响:如果用户仍有运行中的进程,删除可能导致问题(可使用
-f
强制删除)。 - UID/GID 冲突:删除用户后,其 UID 和 GID 可能被新用户复用,需检查文件权限。
- 系统用户:谨慎删除系统用户(如
mysql
、nginx
),可能导致服务异常。
groupadd - 创建用户组
groupadd
是 Linux 系统中用于创建新用户组的命令,属于 shadow-utils
软件包的一部分。系统管理员常用它来管理用户权限,控制文件访问。
语法格式
bash
groupadd [选项] 组名
选项
选项 | 功能描述 |
---|---|
-g, --gid GID | 指定新组的 GID(组ID) |
-f, --force | 如果组已存在,强制成功退出(不报错) |
-o, --non-unique | 允许使用重复的 GID(不推荐) |
-p, --password PASSWORD | 设置组密码(极少使用) |
-r, --system | 创建系统组(GID 范围通常为 1-999) |
-K, --key KEY=VALUE | 覆盖 /etc/login.defs 中的默认值 |
经典案例
bash
groupadd developers # 创建普通用户组
groupadd -g 1500 admins # 创建指定 GID 的组
groupadd -r docker # 创建系统组(用于服务/守护进程)
groupadd -f testgroup # 强制创建组(即使组名已存在)
验证
bash
getent group 组名 # 查看组信息
cat /etc/group # 检查所有组
gpasswd - 组管理
gpasswd
是 Linux 系统中用于管理 /etc/group
和 /etc/gshadow
文件的命令,主要用于:
- 设置/修改组密码(允许非组成员临时加入组)
- 管理组管理员(可添加/删除组成员)
- 控制组成员列表
NOTE
适用场景:团队协作、共享目录权限管理、临时提权(如 sudo
组管理)。
语法格式
bash
gpasswd [选项] 组名
gpasswd [选项] -a 用户名 组名 # 添加用户到组
gpasswd [选项] -d 用户名 组名 # 从组移除用户
选项
选项 | 功能描述 |
---|---|
-a, --add 用户名 | 添加用户到组(需 root 或组管理员权限) |
-d, --delete 用户名 | 从组移除用户 |
-r, --remove-password | 删除组密码(禁用 newgrp 切换) |
-R, --restrict | 禁用 newgrp 切换(非组成员无法加入) |
-A, --administrators 用户列表 | 设置组管理员(逗号分隔) |
-M, --members 用户列表 | 直接设置组成员(覆盖原有成员) |
经典案例
bash
gpasswd -a alice developers # 添加 alice 到 developers 组
groups alice # 查看 alice 所属组
getent group developers # 查看组 members
gpasswd -d bob developers # 移除 bob
gpasswd developers # 交互式设置密码
gpasswd -r developers # 移除密码
gpasswd -A alice developers # 让 alice 管理 developers 组
gpasswd -M alice,bob,charlie team # 重置组为仅这三人
groupdel - 删除组
groupdel
是 Linux 系统中用于删除用户组的命令,属于 shadow-utils
软件包的一部分。系统管理员常用它清理不再需要的用户组。
语法格式
bash
groupdel [选项] 组名
选项
选项 | 功能描述 |
---|---|
-f, --force | 强制删除组(即使组是某用户的主组) |
-h, --help | 显示帮助信息 |
-R, --root CHROOT_DIR | 在指定的 chroot 目录下操作 |
经典案例
bash
groupdel developers # 删除普通用户组
groupdel -f oldgroup # 强制删除组(即使有用户的主组是该组)
groupdel -R /mnt/chroot_env testgroup # 在 chroot 环境下删除组
groupmod - 修改用户组属性
groupmod
是 Linux 系统中用于修改现有用户组属性的命令,属于 shadow-utils
软件包的一部分。它允许管理员更改组名(GID)或组ID(GID),而无需删除并重建组。
语法格式
bash
groupmod [选项] 组名
选项
选项 | 功能描述 |
---|---|
-g, --gid GID | 修改组的 GID(组ID) |
-n, --new-name NEW_GROUP | 修改组名 |
-o, --non-unique | 允许使用重复的 GID(不推荐) |
-p, --password PASSWORD | 设置组密码(极少使用) |
-R, --root CHROOT_DIR | 在 chroot 环境下操作 |
经典案例
bash
groupmod -n new_developers old_developers # 修改组名(不改变 GID)
groupmod -g 2000 developers # 修改组的 GID(不改变组名)
id - 查看用户和组信息
id
是 Linux 系统中用于查看用户和组信息的命令,可以显示:
- 用户 UID(User ID)
- 主组 GID(Group ID)
- 附加组(Supplementary Groups)
- 用户上下文(SELinux 环境)
语法格式
bash
id [选项] [用户名] # 不指定用户名时,默认显示当前用户信息
选项
选项 | 功能描述 |
---|---|
-u, --user | 仅显示 UID |
-g, --group | 仅显示主组 GID |
-G, --groups | 显示所有附加组 GID |
-n, --name | 显示名称而非数字 ID(需配合 -u /-g /-G ) |
-r, --real | 显示真实 ID(而非有效 ID,在 sudo 时有用) |
-Z, --context | 显示 SELinux 安全上下文 |
经典案例
bash
id # 查看当前用户的基本信息
# uid=1000(alice):用户 ID 和用户名
# gid=1000(alice):主组 ID 和组名
# groups=...:附加组列表
id -u alice # 仅显示 UID(适用于脚本)
id -gn alice # 仅显示主组名称
id -Gn alice # 显示所有附加组名称
id -Z # 查看 SELinux 上下文(如启用)
groups - 显示用户所属组
groups
是 Linux 和 Unix 系统中用于显示用户所属组的命令。它比 id -Gn
更简洁,直接列出用户的所有附加组名称(不显示 UID/GID)。
语法格式
bash
groups [用户名] # 不指定用户名时,默认显示当前用户的组
经典案例
bash
groups # 查看当前用户的组
# 第一个组(alice)是主组(Primary Group),其余是附加组
groups bob # 查看指定用户的组
注意事项
- 与
id -Gn
的区别:groups
仅显示组名,不提供 UID/GID 信息。id -Gn
在脚本中更常用(标准化输出)。
- 主组显示:
groups
输出的第一个组是主组(与id -gn
一致)。
- 系统兼容性:
- macOS 的
groups
命令格式略有不同(不支持-a
等选项)。
- macOS 的
w - 查看当前登录用户及其活动
w
是 Linux/Unix 系统中用于实时查看当前登录用户及其活动的命令。它综合了 who
、uptime
和 ps
的部分功能,显示:
- 已登录用户
- 用户正在运行的命令
- 系统负载(uptime)
bash
w [选项] [用户名] # 不指定用户名时,显示所有用户信息
选项
选项 | 功能描述 |
---|---|
-h, --no-header | 隐藏表头信息 |
-u, --no-current | 忽略当前用户进程(简化输出) |
-s, --short | 简洁模式(不显示 JCPU/PCPU 时间) |
-f, --from | 显示用户登录来源(IP/主机名) |
-i, --ip-addr | 强制显示 IP 地址(而非主机名) |
输出字段解析
字段 | 说明 |
---|---|
USER | 登录用户名 |
TTY | 终端类型(pts/0 =远程,tty1 =本地) |
FROM | 登录来源 IP/主机名(- 表示本地) |
LOGIN@ | 登录时间 |
IDLE | 空闲时间(格式为 分钟:秒 ) |
JCPU | 该终端所有进程占用 CPU 时间 |
PCPU | 当前进程占用 CPU 时间 |
WHAT | 用户正在执行的命令 |
经典案例
bash
w # 查看所有登录用户(完整信息)
w -h # 隐藏表头(适用于脚本处理)
w alice # 仅显示指定用户信息
w -s # 简洁模式(隐藏 CPU 时间)
w -i # 显示登录来源 IP(替代 who)
w | grep -v "192.168.1.*" # 监控异常登录(结合 grep)
注意事项
权限要求:普通用户可查看信息,但部分系统可能限制
FROM
字段。WHAT
字段限制:- 某些命令(如
sudo
启动的进程)可能显示为-bash
或sshd
。
- 某些命令(如
与
who
/last
的区别:命令 功能 w
实时用户+活动+负载 who
仅登录用户(无活动信息) last
历史登录记录
whoami - 显示当前登录用户的用户名
whoami
是 Linux/Unix 系统中用于快速显示当前登录用户的用户名的命令。它是 who am i
的简化版本,仅返回有效用户身份(Effective User)。
语法格式
bash
whoami [选项]
选项
选项 | 功能描述 |
---|---|
--help | 显示帮助信息 |
--version | 显示版本信息 |
经典案例
bash
whoami # 显示当前用户名
chmod - 修改文件或目录权限
chmod
(Change Mode)是 Linux/Unix 系统中用于修改文件或目录权限的核心命令,通过调整**用户(User)、组(Group)、其他(Other)**的读(r)、写(w)、执行(x)权限,实现文件访问控制。
语法格式
bash
chmod [选项] 权限模式 文件/目录
chmod [选项] 八进制权限 文件/目录
权限模式解析
1. 符号表示法(u/g/o/a +/-/= r/w/x)
符号 | 含义 |
---|---|
u | 文件所有者(User) |
g | 所属组(Group) |
o | 其他用户(Other) |
a | 所有用户(All) |
+ | 添加权限 |
- | 移除权限 |
= | 直接设置权限 |
2. 八进制表示法(0-7)
数字 | 权限 | 二进制 |
---|---|---|
0 | --- | 000 |
1 | --x | 001 |
2 | -w- | 010 |
3 | -wx | 011 |
4 | r-- | 100 |
5 | r-x | 101 |
6 | rw- | 110 |
7 | rwx | 111 |
选项
选项 | 功能 |
---|---|
-R, --recursive | 递归修改目录及其内容 |
-v, --verbose | 显示详细操作信息 |
-c, --changes | 仅显示被修改的文件 |
--reference=FILE | 参照指定文件的权限 |
经典案例
bash
chmod u+x script.sh # 给所有者添加执行权限
chmod go-w file.txt # 移除组和其他用户的写权限
chmod a=rw config.cfg # 所有用户仅保留读写权限
chmod 755 script.sh # u=rwx, g=rx, o=rx
chmod 640 secret.txt # u=rw, g=r, o=无权限
chmod +x install.sh # 所有用户可执行(等价于 a+x)
chmod -R 750 /var/www # 递归修改目录权限.所有者=rwx, 组=rx, 其他=无权限
注意事项
- 权限继承:
- 目录的
x
权限代表可进入,文件代表可执行。 - 默认新建文件权限受
umask
影响(如umask 022
则文件权限为644
)。
- 目录的
- 危险操作:
chmod -R 777 /
会完全开放系统权限(⚠️ 严禁使用)。- 系统关键文件(如
/etc/shadow
)通常权限为600
,勿随意修改。
- 权限冲突:
- 即使有文件
rwx
权限,若其父目录无x
权限,仍无法访问
- 即使有文件
chown - 修改文件归属
命令用于设置文件所有者和文件关联组的命令。
语法格式
bash
chown [选项] 所有者[:组] 文件/目录
核心功能
操作类型 | 命令示例 | 说明 |
---|---|---|
修改所有者 | chown alice file.txt | 将文件所有者改为 alice |
修改所有者+组 | chown alice:dev file.txt | 同时修改所有者和组 |
仅修改组 | chown :dev file.txt | 等价于 chgrp dev file.txt |
递归修改 | chown -R alice:dev /dir | 递归修改目录内所有内容 |
选项
选项 | 作用 |
---|---|
-R | 递归操作(对目录及其内容生效) |
-v | 显示详细操作信息 |
-c | 仅显示被修改的文件 |
--reference=FILE | 参照指定文件的所有权设置 |
经典案例
bash
chown -R www-data:www-data /var/www/html # 修改文件所有权
chown alice: file.txt # 冒号后不指定组,保持原组不变
chown 1001:1002 file.txt # 直接使用UID/GID数字
chown --reference=model.txt newfile.txt # 参照其他文件权限
注意事项
权限需求:
- 普通用户只能修改自己拥有的文件
- 系统级修改需要
sudo
或 root 权限
符号链接处理:
bashchown -h alice symlink # 修改符号链接本身的所有权
安全风险:
- 避免随意修改系统关键文件(如
/etc
,/bin
等)的所有权 - 递归修改前建议备份:
tar -czvf backup.tar.gz /target/dir
- 避免随意修改系统关键文件(如
与
chmod
的区别:命令 作用维度 典型场景 chown
所有权归属 文件归属权转移 chmod
权限控制 读写执行权限管理
umask - 权限掩码
umask(user file-creation mask)是Linux系统中用于控制新建文件/目录默认权限的掩码值。它通过屏蔽(取消)特定权限位来设置安全基线。
语法格式
bash
umask [-p] [-S] [mode]
- 无参数:显示当前umask值
-S
:符号模式显示(rwx形式)-p
:可重用输出格式mode
:设置新umask值(八进制或符号格式)
权限计算原理
文件默认权限:666 - umask
目录默认权限:777 - umask
实际权限 = 默认权限 & (~umask)
选项 说明 0022 典型安全设置(文件644,目录755) 0002 组可写(文件664,目录775) 0077 严格模式(文件600,目录700)
注意事项
umask是进程属性,只在当前shell会话有效
系统服务可能有自己的umask设置(如/etc/init.d/脚本)
新建文件的执行权限需单独赋予(chmod +x)
特殊场景:
bash# 共享目录设置 umask 0002 chmod g+s /shared_dir
权限对照表
umask | 文件权限 | 目录权限 |
---|---|---|
022 | 644 | 755 |
027 | 640 | 750 |
077 | 600 | 700 |
NOTE
使用umask -p
输出的命令可直接在脚本中重用
案例
bash
# 查看当前umask(八进制)
umask
# 输出示例:0022
# 查看符号表示
umask -S
# 输出:u=rwx,g=rx,o=rx
# 临时修改umask
umask 027 # 文件默认640,目录默认750
# 永久生效(添加到~/.bashrc或/etc/profile)
echo "umask 022" >> ~/.bashrc
chsh - 更改用户登录 shell
chsh
命令用于更改用户的登录 shell。系统管理员可以使用此命令为任何用户更改 shell,普通用户只能更改自己的 shell。该命令会修改 /etc/passwd
文件中的 shell 字段。
语法格式
bash
chsh [-s shell] [-l] [username]
选项
选项 | 描述 | 示例 |
---|---|---|
-s shell | 指定新的登录 shell 路径 | chsh -s /bin/zsh |
-l | 列出系统可用的有效 shell | chsh -l |
username | 指定要更改 shell 的用户名 | chsh -s /bin/bash bob |
经典案例
bash
# 查看当前用户可用的 shell 列表
chsh -l
# 将当前用户的 shell 改为 zsh
chsh -s /bin/zsh
# 管理员将用户 alice 的 shell 改为 fish
sudo chsh -s /usr/bin/fish alice
# 查看当前用户的 shell 设置
grep `whoami` /etc/passwd | cut -d: -f7
注意事项
- 新指定的 shell 必须存在于
/etc/shells
文件中,否则会报错 - 普通用户只能更改自己的 shell,不能更改其他用户的 shell
- 某些系统可能要求用户重新登录才能使更改生效
- 如果用户当前正在运行某些程序,更改 shell 可能不会立即影响这些程序
- 使用
-s
选项时,必须提供 shell 的完整路径,不能只写 shell 名称
chage - 更改用户密码过期信息
chage
命令用于查看和修改用户密码过期策略,是Linux系统管理用户账户的重要工具。它可以设置密码的最长有效期、最短修改间隔、过期警告天数等安全策略。
语法格式
bash
chage [选项] 用户名
选项
选项 | 描述 | 示例 |
---|---|---|
-d 天数 | 设置密码最后修改日期(1970-1-1以来的天数) | chage -d 0 user1 |
-E 日期 | 设置账户过期日期(YYYY-MM-DD) | chage -E 2024-12-31 user1 |
-I 天数 | 密码过期后账户被锁定的宽限天数 | chage -I 7 user1 |
-l | 列出账户过期信息 | chage -l user1 |
-m 天数 | 设置密码最短使用天数 | chage -m 7 user1 |
-M 天数 | 设置密码最长使用天数 | chage -M 90 user1 |
-W 天数 | 设置密码过期前警告天数 | chage -W 7 user1 |
经典案例
bash
# 查看用户密码过期信息
sudo chage -l user1
# 强制用户下次登录时修改密码
sudo chage -d 0 user1
# 设置密码策略:90天有效期,提前7天警告
sudo chage -M 90 -W 7 user1
# 设置账户2024年底过期
sudo chage -E 2024-12-31 user1
# 设置密码最短7天才能修改,最长90天必须修改
sudo chage -m 7 -M 90 user1
注意事项
- 需要root权限才能修改其他用户的密码策略
- 修改后信息存储在/etc/shadow文件中
- 设置为0表示无限制(某些选项除外)
- 使用
-d 0
会强制用户下次登录时修改密码 - 合理设置密码策略可提高系统安全性