云计算基础——Linux5
一、用户分类与身份标识
1. 三种用户类型详解
| 用户类型 | 说明 | UID 范围 | 特点 |
|---|---|---|---|
| 超级用户 | root,拥有系统最高权限 | 0 | 可执行所有命令,修改任何文件 |
| 普通用户 | 供日常登录使用的用户 | 1000-∞(CentOS 7 及以上) | 创建时不指定 UID 则自动增长,权限受限制 |
| 系统 / 程序用户 | 用于运行后台服务或应用程序,不允许登录 | 1–999(CentOS 7 及以上) | 管理各自对应的系统服务(如 nginx、mysql) |
2. 用户组类型
基本组(私有组):用户创建时自动生成,默认与用户名同名,每个用户必属一个基本组。
附加组(公共组):权限的集合,用于分配额外权限,一个用户可加入多个附加组。
二、用户账号文件
1. /etc/passwd(用户基本信息)
文件中每行对应一个用户,包含 7 个字段,格式为:

用户名:密码占位符:UID:GID:注释性描述:宿主目录:shell登录环境
| 字段 | 说明 |
|---|---|
| 用户名 | 用户登录时使用的名称 |
| 密码占位符 | 固定为x,真实密码存储在/etc/shadow |
| UID | 用户唯一标识 |
| GID | 基本组唯一标识 |
| 注释性描述 | 对用户的说明(可选,可留空) |
| 宿主目录 | 用户登录后默认进入的目录(家目录) |
| shell 登录环境 | 登录后使用的 Shell 环境 |
其中,shell登录环境的两种常见类型:
/bin/bash:允许用户登录系统
/sbin/nologin:禁止用户登录系统
2. /etc/shadow(用户密码及安全信息)
文件中每行与/etc/passwd一一对应,包含 9 个字段,格式为:

用户名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
| 字段 | 说明 |
|---|---|
| 用户名 | 与/etc/passwd中的用户名一致 |
| 加密口令 | 经过加密的密码(无密码时为*或!) |
| 最后一次修改时间 | 距离 1970-01-01 的天数 |
| 最小时间间隔 | 密码修改的最小间隔天数(0 为无限制) |
| 最大时间间隔 | 密码有效期(超过需修改) |
| 警告时间 | 密码过期前的警告天数 |
| 不活动时间 | 密码过期后仍可登录的宽限天数 |
| 失效时间 | 账户彻底失效的日期(1970-01-01 起天数) |
| 标志 | 保留字段(未使用) |
三、用户管理核心命令
1. useradd(创建用户)
语法:useradd [选项] 用户名
常用选项补充:
-M:强制不创建家目录(即使系统默认配置为创建)
-g:指定基本组(必须已存在)
-G:指定附加组(多个组用逗号分隔)
示例:
创建无家目录、禁止登录的用户(系统用户常用)
useradd -M -s /sbin/nologin zhangsan
创建指定家目录、基本组和附加组的用户
useradd -d /opt/lisi -g wheel -G root lisi
说明:家目录为/opt/lisi,基本组为wheel,附加组为root
2. usermod(修改用户属性)
语法:usermod [选项] 用户名
示例:
修改用户user1的家目录为/home/user2
usermod -d /home/user2 user1
注意:需手动移动原家目录文件到新目录,否则登录后文件不生效
将用户zhangsan的登录Shell改为禁止登录
usermod -s /sbin/nologin zhangsan
3. userdel(删除用户)
语法:userdel -r 用户名
-r:必须添加,用于完全删除用户(包括家目录和邮件池)
示例:
完全删除用户bob
userdel -r bob
验证删除结果
grep -w 'bob' /etc/passwd # 无输出表示删除成功
ls -ld /home/bob # 无输出表示家目录已删除
4. passwd(设置用户密码)
语法:passwd [选项] 用户名
补充选项与示例:
--stdin:从标准输入读取密码(适合脚本批量设置)
免交互给zhangsan设置密码"123"(批量初始化常用)
echo "123" | passwd --stdin zhangsan
查看用户密码状态(是否锁定、密码有效期等)
passwd -S zhangsan
四、用户组管理命令
1. groupadd(创建组)
语法:groupadd [-g GID] 组名
示例:
创建GID为1200的组market
groupadd -g 1200 market
2. groupdel(删除组)
语法:groupdel 组名
注意:删除前需确保该组不是任何用户的基本组
示例:
删除组market
groupdel market
3. gpasswd(管理组成员)
语法:gpasswd [选项] 用户名 组名
常用选项示例:
向market组添加用户dings001
gpasswd -a dings001 market
从market组移除用户dings001
gpasswd -d dings001 market
向market组批量添加用户(覆盖原有成员)
gpasswd -M dings001,zhangsan,lisi market
五、用户信息查询命令
1. id(查看用户 ID 及所属组)
语法:id 用户名
示例:
id dings001
输出:uid=1000(dings001) gid=1000(dings001) 组=1000(dings001),10(wheel)
说明:uid为用户ID,gid为基本组ID,后续为附加组(wheel)
2. groups(查看用户所属附加组)
语法:groups 用户名
示例:
groups dings001
输出:dings001 : dings001 wheel
说明:dings001的基本组是dings001,附加组是wheel
3. finger(查询用户详细资料)
语法:finger 用户名
作用:查看用户的登录名、真实姓名、家目录、登录 Shell、登录时间等信息。
示例:

finger zhangsan
输出包含用户基本信息及登录状态
4. w/who(查看当前登录用户)
w:显示详细登录信息(用户、终端、登录来源、登录时间、 idle 时间、进程数、CPU 占用等)

who:简洁显示登录用户(用户名、终端、登录时间、来源)

更多推荐
所有评论(0)