一、核心概念
Linux是多用户操作系统,多个用户可以同时使用同一个Linux操作系统,因此就会涉及用户的添加、修改、删除等管理工作以及权限分配问题。用户管理的核心是控制用户身份、权限及所属组,确保系统安全与资源有序分配,保障系统的稳定性和安全性。
1. 用户
在Linux中每个用户是通过 User Id (UID)来唯一标识的。用户成功登录是 ,系统会自动分配令牌token,包含用户标识和组成员等信息。
- root 用户:UID=0,系统超级管理员,拥有所有权限。
- 系统用户:UID 通常为 1-999,用于运行服务(如 nginx、mysql),无登录权限。
- 普通用户:UID≥1000,由 root 创建,权限受限制,仅能操作自己的家目录及授权的目录和文件。
2. 组
在Linux中为了方便批量对一个用户或者多个用户的属性进行操作,一般会将用户加入到组中。通过对组的操作,实现对组中用户的属性的批量操作能力。组是通过Group ID(GID) 来唯一标识的。
- 主要组(初始组):GID=0,用户创建时默认所属组,每个用户仅 1 个主组,记录在/etc/passwd 中。
- 附加组:GID≥1000,用户可加入多个附加组,获取组关联的额外权限,记录在 /etc/group 中。
二、配置文件
1、主要配置文件
文件名 | 说明 |
/etc/passwd | 用户及其属性信息(名称、UID、主组ID等) |
/etc/shadow | 用户密码及其相关属性 |
/etc/group | 组及其属性信息 |
/etc/gshadow | 组密码及其相关属性 |
2、/etc/passwd文件
项 | 名称 | 说明 |
root | 用户名 | 用户登录系统的用户名 |
x | 密码 | 密码(没有真实存放) |
0 | UID | 用户标识号 |
0 | GID | 用户缺省组标识号 |
root | 描述 | 描述信息 |
/root | 宿主目录 | 用户登录系统后的缺省目录 |
/bin/bash | 命令解释器 | 用户使用的shell,默认为bash |
3、/etc/shadow文件
项 | 名称 | 含义 |
root | 用户名 | 用户登录系统的用户名 |
$6$bOmqc... | 密码 | 加密的密码(为空表示登录无需密码,为!!表示禁止登录) |
空 | 最后修改时间 | 用户最后一次修改密码的天数 |
0 | 最小时间间隔 | 至少间隔多少天才能修改密码 |
99999 | 最大时间间隔 | 密码有效天数 |
7 | 告警时间 | 密码到期多少天前告警 |
空 | 账号闲置时间 | 账号闲置时间 |
空 | 失效时间 | 密码失效的绝对天数 |
空 | 标志 | 保留字段 |
4、/etc/group文件
项 | 名称 | 说明 |
root | 组名 | 用户登录时所在的组 |
x | 组密码 | 组密码 |
0 | GID | 用户缺省组标识号 |
空 | 组内用户列表 | 包含组内所有用户(不包含缺省组为该组的用户),以逗号分隔 |
5、/etc/gshadow文件
项 | 名称 | 说明 |
mygroup | 组名 | 必须是系统中存在的有效租 |
$6$bOmqc... | 组密码 | 加密的密码 |
myuser | 管理员 | 管理员可更改组密码及成员 |
myuser | 组内用户列表 | 属于该组的所有用户列表,以逗号分隔 |
三、用户组管理
1、groupadd命令
用于创建新用户组,用户组是管理用户账户和文件权限的一种有效方式,它允许你将多个用户归入同一个组中,并对这个组内的所有用户应用相同的权限设置。
- groupadd group1:创建用户组
- getent group group1:查看用户组
- groupadd group2 -g 1008:指定id创建用户组
2、groupmod命令
用于修改group属性
- groupmod -g 20087 group4:修改GID
- groupmod -n groupnew groupold:修改组名称
3、groupdel命令
删除用户组
- groupdel group1:删除指定用户组
- groupdel -f group1:强制删除指定用户组,即使是用户的主组
四、用户管理
1、id命令
用于查看用户的基本信息
- id:查看当前登录用户
- id root:查看指定用户信息
- id -nu root:显示UID
- id -ng root:显示GID
2、useradd命令
用于创建新的Linux用户
- useradd tom:创建用户tom,默认会添加一个tom组
- useradd -g 1008 tom:创建用户tom,指定用户组id为1008
- useradd -G group1 tom:创建用户tom,指定附加组为group1
- useradd -s /bin/sh tom:创建用户tom,指定shell为/bin/sh
- useradd -d /home/tom_data tom:创建用户tom,指定家目录为/home/tom_data
3、userdel命令
用于删除Linux用户
- userdel tom:删除用户tom,保留其家目录
- userdel -r tom:删除用户tom及其家目录
- userdel -f -r tom:强制删除用户,即使正在使用(用户退出使用后才会真正消失)
4、passwd命令
用户更改Linux用户的密码
- passwd tom:更改用户tom的密码