3.1 用户与组管理

3.1 Linux用户与组管理

一、为什么需要多用户?

Linux 从设计之初就是一个多用户操作系统,允许多个用户同时登录并使用系统资源。

多用户机制能够实现:

  • 权限隔离
  • 数据隔离
  • 安全管理
  • 服务独立运行

在 Linux 中,root 用户拥有最高权限,而日常运维工作通常建议使用普通用户,通过授权机制执行管理操作,从而降低误操作风险。


二、用户与组配置文件

Linux 的用户和组信息主要保存在以下三个配置文件中:

文件 作用
/etc/passwd 用户账户信息
/etc/shadow 用户密码及密码策略
/etc/group 用户组信息

2.1 /etc/passwd

查看命令:

1
cat /etc/passwd

示例:

1
2
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin

每行表示一个用户,共包含 7 个字段:

字段序号 含义 示例
1 用户名 root
2 密码占位符 x
3 UID(用户ID) 0
4 GID(主组ID) 0
5 用户描述信息 root
6 家目录 /root
7 登录 Shell /bin/bash

登录 Shell 说明

常见可登录 Shell:

1
2
3
/bin/bash
/bin/sh
/bin/zsh

禁止登录的 Shell:

1
2
/sbin/nologin
/bin/false

通常用于系统服务账户。


2.2 /etc/shadow

查看命令:

1
sudo cat /etc/shadow

示例:

1
root:$6$randomhash:19000:0:99999:7:::

主要字段:

字段 说明
用户名 用户名称
加密密码 密码哈希值
上次修改密码时间 天数表示
最小修改间隔 最少间隔天数
最大有效期 密码最大使用天数
警告时间 到期前提醒天数
不活动时间 密码失效后宽限期
失效日期 账户失效日期
保留字段 预留

2.3 /etc/group

查看命令:

1
cat /etc/group

示例:

1
2
root:x:0:
wheel:x:10:root,student

字段说明:

字段 含义
组名 用户组名称
密码占位符 通常为 x
GID 组ID
成员列表 组内成员

多个成员使用逗号分隔:

1
root,student,user1,user2

三、用户管理命令

3.1 useradd

用于创建用户。

创建用户

1
useradd alice

指定家目录与 Shell

1
useradd -m -d /home/bob -s /bin/bash bob

指定附加组

1
useradd -G wheel bob

查看默认配置

1
useradd -D

常用参数

参数 说明
-m 创建家目录
-d 指定家目录
-s 指定 Shell
-g 指定主组
-G 指定附加组
-u 指定 UID
-c 用户备注信息
-r 创建系统用户

3.2 passwd

用于设置或修改用户密码。

修改密码

1
passwd alice

CentOS 非交互方式

1
echo "password123" | passwd --stdin alice

常用参数

参数 说明
-l 锁定用户
-u 解锁用户
-d 删除密码
-e 强制下次登录修改密码
-n 最小密码使用天数
-x 最大密码使用天数

3.3 usermod

用于修改用户属性。

修改家目录

1
usermod -d /home/newhome alice

修改 Shell

1
usermod -s /bin/zsh alice

添加附加组

1
usermod -aG wheel alice

说明:

1
-a

表示追加组信息。

如果省略:

1
usermod -G wheel alice

会覆盖原有附加组。

锁定与解锁

1
2
usermod -L alice
usermod -U alice

修改用户名

1
usermod -l newname oldname

3.4 userdel

用于删除用户。

删除用户

1
userdel alice

仅删除账户。

删除用户及家目录

1
userdel -r alice

同时删除:

  • 用户账户
  • 家目录
  • 邮箱数据

四、组管理命令

4.1 groupadd

创建用户组。

1
groupadd developers

指定 GID:

1
groupadd -g 2000 staff

4.2 groupmod

修改用户组。

修改组名

1
groupmod -n newname oldname

修改 GID

1
groupmod -g 3000 groupname

4.3 groupdel

删除用户组。

1
groupdel developers

五、用户切换与权限提升

5.1 su

Switch User,用于切换用户身份。

切换到 root

1
su

切换并加载完整环境

1
su -

推荐使用。

切换到指定用户

1
su - alice

不加载目标用户环境

1
su alice

区别:

命令 是否加载用户环境
su alice
su - alice

加载内容包括:

  • PATH
  • HOME
  • SHELL
  • 用户配置文件

5.2 sudo

用于以其他身份执行命令。

执行单条 Root 命令

1
sudo command

以指定用户身份执行

1
sudo -u alice command

获取 Root Shell

1
sudo -i

查看当前授权

1
sudo -l

sudoers 配置

编辑方式:

1
visudo

允许 wheel 组使用 sudo

1
%wheel ALL=(ALL) ALL

允许指定用户免密码执行命令

1
alice ALL=(ALL) NOPASSWD: /usr/bin/systemctl

六、用户与组信息查看

查看当前登录用户

1
who

查看详细登录信息

1
w

查看历史登录记录

1
last

查看用户信息

1
id

指定用户:

1
id alice

输出示例:

1
2
3
uid=1001(alice)
gid=1001(alice)
groups=1001(alice),10(wheel)

查看所属组

1
groups

指定用户:

1
groups alice

查看当前登录用户名

1
users

七、常见用户组概念

UID

用户唯一标识。

常见范围:

UID范围 说明
0 root
1~999 系统账户
1000+ 普通用户

GID

用户组唯一标识。

每个用户至少属于一个主组,可以同时属于多个附加组。


wheel 组

CentOS 与 RHEL 系统中的管理员组。

查看:

1
grep wheel /etc/group

加入:

1
usermod -aG wheel username

加入后即可获得 sudo 管理权限(需 sudoers 配置允许)。


八、常用命令汇总

命令 作用
useradd 创建用户
usermod 修改用户
userdel 删除用户
passwd 设置密码
groupadd 创建组
groupmod 修改组
groupdel 删除组
su 切换用户
sudo 提权执行命令
id 查看用户信息
groups 查看所属组
who 查看登录用户
w 查看在线用户详情
last 查看登录历史
users 查看当前登录用户
visudo 编辑 sudo 配置

3.1 用户与组管理
https://blog.sh462li.top/2026/05/27/3.1 用户与组管理/
作者
SHAO
发布于
2026年5月27日
许可协议