目录
一、管理用户账号和组账号
1、用户账号和组账号概述
(1)用户账号类型
用户类型 | 权限级别 | 使用场景 | 登录权限 |
超级用户 | 最高权限(root) | 系统管理、维护任务 | 允许登录但不推荐 |
普通用户 | 受限权限 | 日常事务处理 | 允许登录 |
程序用户 | 低权限(仅必要权限) | 维持系统或应用程序运行 | 禁止登录系统 |
(2)组账号
基本组(私有组) | 用户创建时默认归属的组,每个用户必须且只能有一个基本组。 | - 用户的基本组通常与用户名同名。 - 用户拥有的文件默认继承基本组权限。 |
附加组(公共组) | 用户除基本组外可加入的其他组,用于扩展权限(如访问共享资源)。 | - 用户可加入多个附加组。 - 附加组权限与基本组权限叠加生效。 |
(3)UID 和 GID 号
类别 | 类型 | 范围 | 说明 |
UID | root用户 | 0 | 系统超级用户的唯一标识号,操作系统核心通过UID区分用户身份。 |
程序用户 | 1~999 | 系统服务或应用程序专用的非登录账号,通常不关联真实用户。 | |
普通用户 | 1000~65534 | 普通用户账号的默认UID范围,需确保唯一性。 | |
GID | root组 | 0 | 系统超级用户组的唯一标识号,通常与root用户绑定。 |
程序组 | 1~999 | 与程序用户关联的组账号,用于统一管理服务或应用的资源权限。 | |
普通组 | 1000~65534 | 普通组账号的默认GID范围,组内用户共享该组的权限。 |
2、用户账号管理
(1)用户账号文件
1. /etc/passwd 文件

字段位置 | 字段名称 | 描述 | 示例/注意事项 |
第1字段 | 用户账号名称 | 用户登录系统时使用的唯一标识名称。 | root,ftp,alice |
第2字段 | 密码占位符 | 固定为x,实际密码已迁移到 /etc/shadow。 | x(历史遗留:早期系统密码直接存储在此字段) |
第3字段 | UID | 用户唯一标识号,系统通过UID识别用户身份。 | 0(root用户),1000(普通用户) |
第4字段 | 基本组GID | 用户所属基本组的组标识号。 | 0(root组),1000(用户私有组) |
第5字段 | 用户全名/描述信息 | 用户备注信息,可包含姓名、联系方式等。 | Alice Smith, Room 101 |
第6字段 | 宿主目录 | 用户登录后的默认工作目录。 | /root(root用户),/home/alice(普通用户) |
第7字段 | 登录Shell | 用户登录后使用的Shell程序路径。 | /bin/bash(默认),/sbin/nologin(禁止登录的系统用户) |
- 权限:所有用户可读,但仅root可修改。
2. /etc/shadow 文件

字段位置 | 字段名称 | 描述 | 示例/注意事项 |
第1字段 | 用户账号名称 | 与/etc/passwd中的用户名一致。 | root,alice |
第2字段 | 加密密码 | 使用SHA-512等算法加密的密码字符串。 | $6$...(加密后的哈希值),*或!!(禁止登录), 空值(无需密码登录) |
第3字段 | 上次修改密码时间 | 从1970年1月1日起到最近一次修改密码的天数。 | 19103(表示2022年5月1日左右) |
第4字段 | 密码最短有效天数 | 修改密码后必须经过该天数才能再次修改。 | 0(无限制),7(7天内不可修改) |
第5字段 | 密码最长有效天数 | 密码有效期限,超过后必须修改。 | 99999(默认无限制),90(90天后过期) |
第6字段 | 密码过期前警告天数 | 密码过期前提前警告用户的天数。 | 7(默认提前7天提醒) |
第7字段 | 密码过期后宽限天数 | 密码过期后允许用户登录的宽限期,超时后账号被禁用。 | 5(过期后5天内仍可登录) |
第8字段 | 账号失效时间 | 从1970年1月1日起计算,指定账号永久禁用的日期。 | 19456(表示2023年4月15日失效,空值表示永久有效) |
第9字段 | 保留字段 | 未使用,保留为未来扩展。 | 通常为空 |
- 权限:仅root可读写,普通用户无访问权限。
- 安全机制:防止密码哈希被暴力破解,增强系统安全性。
(2)添加、修改、删除用户账号
1、添加用户账号——useradd
选项 | 描述 | 注意事项 | 示例 |
-u | 指定用户的UID号,需确保该UID未被其他用户使用。 | 若未指定,系统自动分配下一个可用UID。 避免使用系统保留范围(如0、1-999)。 | useradd -u 1001 alice |
-d | 指定用户的宿主目录路径(需绝对路径)。 | 若与-m(自动创建目录)联用,-d可能失效(需检查系统兼容性)。 | useradd -d /data/alice_home alice |
-e | 设置账户失效时间,格式为YYYY-MM-DD。 | 到期后用户将无法登录。 空值表示永久有效(默认)。 | useradd -e 2024-12-31 alice |
-g | 指定用户的基本组(组名或GID)。 | 若未指定,默认创建与用户名同名的新组作为基本组。 | useradd -g developers alice或useradd -g 1001 alice |
-G | 指定用户的附加组(多个组用逗号分隔,支持组名或GID)。 | 用户将继承附加组的权限。 需确保附加组已存在。 | useradd -G ftp,webadmin alice或useradd -G 2001,2002 alice |
-M | 禁止创建宿主目录(即使/etc/login.defs中配置为自动创建)。 | 适用于系统服务账号(无需登录场景)。 需手动创建目录并设置权限。 | useradd -M nginx |
-s | 指定用户的登录Shell路径。 | 设置为/sbin/nologin或/bin/false可禁止用户登录。 | useradd -s /sbin/nologin ftp_user或useradd -s /bin/zsh alice |
2、为用户账号设置密码——passwd
选项 | 描述 | 注意事项 | 示例 |
-d | 清空指定用户的密码,允许仅通过用户名无密码登录系统。 | 需确保系统安全策略(如PAM配置)允许空密码登录。 高风险操作,建议仅在测试环境使用。 | passwd -d alice(清空用户alice的密码) |
-l | 锁定用户账户,禁止该用户登录系统。 | 锁定后,用户密码字段前添加 ! 符号标记。 用户无法通过密码或SSH登录。 | passwd -l alice或usermod -L alice |
-S | 查看用户账户状态(显示密码是否锁定、过期时间等)。 | 实际命令可能因系统不同有所差异(如passwd -S 或usermod -S)。 输出包含密码策略详情。 | passwd -S alice(显示 alice的账户状态) |
-u | 解锁用户账户,恢复登录权限。 | 移除密码字段前的 ! 标记。 需确保账户未因其他原因(如过期)被禁用。 | passwd -u alice或usermod -U alice |
3、修改用户账号属性——usermod
选项 | 描述 | 注意事项 | 示例 |
-u | 修改用户的UID号,需确保新UID未被其他用户占用。 | 修改后需手动更新用户文件的所属UID(如chown -R)。 避免使用系统保留UID(0、1-999)。 | usermod -u 1001 alice |
-d | 修改用户的宿主目录路径(需绝对路径)。 | 若需迁移原目录内容,需配合-m选项:usermod -d /new/home -m alice。 | usermod -d /data/alice_home alice |
-e | 设置账户失效时间,格式为YYYY-MM-DD。 | 空值表示永久有效。 时间从1970年1月1日起计算的天数存储在/etc/shadow。 | usermod -e 2024-12-31 alice |
-g | 修改用户的基本组(组名或GID)。 | 目标组必须存在。 修改后用户新建文件的属组将更新为新基本组。 | usermod -g developers alice或usermod -g 1001 alice |
-G | 修改用户的附加组(多个组用逗号分隔,支持组名或GID)。 | 会覆盖原有附加组,需结合-a选项追加(如usermod -aG group alice)。 | usermod -G ftp,webadmin alice或usermod -G 2001,2002 alice |
-s | 修改用户的登录Shell路径。 | 路径需在/etc/shells中注册,否则可能禁止登录。 设置为/sbin/nologin可禁用登录。 | usermod -s /bin/zsh alice或usermod -s /sbin/nologin ftp_user |
-l | 更改用户的登录名称(用户名)。 | 不会自动更新用户宿主目录名,需手动修改。 需确保新用户名唯一。 | usermod -l alice_new alice(将alice重命名为 alice_new) |
-L | 锁定用户账户,禁止登录。 | 在/etc/shadow密码字段前添加 ! 标记。 用户无法通过密码或SSH登录。 | usermod -L alice |
-U | 解锁用户账户,恢复登录权限。 | 移除/etc/shadow密码字段前的 ! 标记。 需确保账户未因其他原因被禁用。 | usermod -U alice |
4、删除用户账号——userdel
(3)用户账号的初始配置文件
.bash_profile | 在该用户每次登录时被执行。 |
.bashrc | 在每次加载“/bin/Bash”程序(包括登录系统)时执行。 |
.bash_logout | 在用户每次退出登录时执行。 |
(4)组账号管理
1、组账号文件
2、添加、管理、删除组账号
groupadd | 添加组账号 | groupadd 组账号名 |
gpasswd | 添加、设置、删除组成员 | gpasswd -a 组账号 用户 ##添加组成员 gpasswd -d 组账号 用户 ##删除组成员 gpasswd -M 用户1 用户2 ... 组账号名 ##用户1 用户2 ...加入组账号里 |
groupdel | 删除组账号 | groupdel 组账号 |
(5)查询账号信息
groups | 查询用户账号所属的组 | 查看指定用户账号属于那些组。 | groups或groups zhangsan |
id | 查询用户账号的身份标识 | 可快速查看指定用户账号的UID、GID等标识信息。 | id root |
w | 查询当前主机的用户登录情况 | 列初登录账号名称、所在终端、登录时间、来源地点等信息。 | w |
二、权限管理
1、管理目录和文件的属性
(1)查看目录和文件的属性

权限 | 文件 | 目录 |
r | 查看文件内容 | 查看目录内容(显示子目录、文件列表) |
w | 修改文件内容 | 修改目录内容(在目录中新建、移动、删除文件或子目录) |
x | 执行该文件(程序或脚本) | 执行cd命令进入或退出目录 |
(2)设置目录和文件的权限
(3)设置目录和文件的归属
(4)设置目录和文件的默认权限
