用户管理
id {root@wickt 桌面]# id uid=0(root) gid=0(root) 组=0(root) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
|
前面三段uid、gid、group,是用户的身份信息
| 字段 |
格式 |
说明 |
| uid |
uid=0(root) |
用户ID: - 0:用户ID的数字标识 - (root):对应的用户名 (uid=0 表示 root 用户) |
| gid |
gid=0(root) |
主组ID: - 0:主组ID的数字标识 - (root):对应的组名 (用户登录时的默认组) |
| 组 |
组=0(root) |
附加组成员: 当前用户所属的所有组(此处只有一个组 root) (多组显示如 组=0(root),10(wheel),100(users)) |
| 类型 |
UID 范围 |
说明 |
| Root 用户 |
0 |
超级用户,拥有系统完全控制权 |
| 系统用户 |
1-999 |
服务/进程专用账户(如 www-data),通常禁止登录 |
| 普通用户 |
1000-60000 |
人类用户账户,权限受限 |
| 未分配用户 |
65534 |
通常映射为 nobody 用户,用于最低权限运行进程 |
后面字段environment=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023是系统启动了SELinux显示的相关信息
| 字段 |
值 |
说明 |
| 用户标识 |
unconfined_u |
SELinux 用户: - unconfined_u:不受限制的用户 - system_u:系统进程用户 - user_u:普通用户 |
| 角色标识 |
unconfined_r |
SELinux 角色: - unconfined_r:不受限制的角色 - system_r:系统守护进程角色 - object_r:文件/设备角色 |
| 类型标识 |
unconfined_t |
关键字段: - unconfined_t:不受限制的进程/文件 - httpd_t:Web 服务器进程 - ssh_home_t:SSH 相关文件 |
| 安全级别 |
s0-s0:c0.c1023 |
MLS/MCS 级别: - s0:灵敏度级别(最低) - c0.c1023:类别范围(0到1023的所有类别) |
查看运行进程
[root@wickt 桌面]# ps aux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.1 0.3 244708 13792 ? Ss 16:15 0:02 /usr/lib/systemd/systemd --s root 2 0.0 0.0 0 0 ? S 16:15 0:00 [kthreadd] root 3 0.0 0.0 0 0 ? I< 16:15 0:00 [rcu_gp] root 4 0.0 0.0 0 0 ? I< 16:15 0:00 [rcu_par_gp]
|
字段含义
| 字段 |
示例值 |
说明 |
| USER |
root |
进程所有者:运行该进程的用户账户(如 root 表示系统特权进程) |
| PID |
1 |
进程ID:操作系统分配给进程的唯一数字标识符 |
| %CPU |
0.1 |
CPU 使用率:进程占用 CPU 时间的百分比(多核系统可能超过 100%) |
| %MEM |
0.3 |
内存使用率:进程占用物理内存 (RAM) 的百分比 |
| VSZ |
244708 |
虚拟内存大小:进程使用的虚拟内存大小(KB),包含共享库和映射文件 |
| RSS |
13792 |
常驻内存大小:进程实际占用的物理内存(KB),不含交换空间 |
| TTY |
? |
控制终端: - ?:进程没有关联终端(通常是守护进程) - tty1:物理终端 - pts/0:伪终端(SSH/远程连接) |
| STAT |
Ss/I< |
进程状态: 主状态: - S:可中断睡眠(等待事件) - I:空闲内核线程 - R:运行中 - Z:僵尸进程 附加标志: - s:会话领导者 - <:高优先级 - 其他:N(低优先级), +(前台进程) |
| START |
16:15 |
启动时间:进程开始运行的时间(24小时制) |
| TIME |
0:02 |
CPU 时间:进程累计占用 CPU 的时间(格式:分:秒) |
| COMMAND |
/usr/lib/systemd/systemd --s |
命令名称:启动进程的命令(带参数),[...]表示内核线程 |
/etc/passwd用户账户信息文件
[root@wickt 桌面]# cat /etc/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin sync:x:5:0:sync:/sbin:/bin/sync
|
/etc/passwd文件中对每个用户存储了7个相关字段
| 字段序号 |
字段名 |
说明 |
示例值 |
| 1 |
用户名 |
用户登录名(区分大小写) |
root |
| 2 |
密码占位符 |
历史遗留字段,现代系统用 x 表示密码存储在 /etc/shadow |
x |
| 3 |
UID |
用户ID(唯一数字标识) |
1000 |
| 4 |
GID |
主组ID(用户初始组的数字标识) |
1000 |
| 5 |
GECOS |
用户描述信息(通常包含全名、联系方式等) |
John Doe, Room 101 |
| 6 |
家目录 |
用户登录后的默认工作目录 |
/root、/home/user1 |
| 7 |
登录Shell |
用户登录后启动的Shell程序(/sbin/nologin 表示禁止登录) |
/bin/bash |
/etc/shadow用户密码及安全策略文件
[root@wickt 桌面]# cat /etc/shadow root:$6$h9vhAn9YIV3I9byG$Hvh1hK.ljLUqdSFXQBDqQh4IrwZM70ljU2sEounsHXcSK2.P53XvUvdO9StFI8QnOKsvzyI4bDlWshqP40/HO.::0:99999:7::: bin:*:18078:0:99999:7::: daemon:*:18078:0:99999:7:::
|
/etc/shadow中每个用户包含9个字段
| 字段序号 |
字段名 |
说明 |
示例值 |
| 1 |
用户名 |
与 /etc/passwd 对应 |
root |
| 2 |
加密密码 |
$ 开头的加密字符串(如 $6$salt$hash),! 或 * 表示账户锁定。$1MD5加密,$2Blowfish加密,$5SHA-256解密,$6SHA-512加密 |
$y$j9T$... |
| 3 |
最后修改日期 |
上次修改密码的天数(从 1970-01-01 开始计算) |
19258 |
| 4 |
最小密码年龄 |
修改密码后必须等待的天数(0 表示可立即修改) |
0 |
| 5 |
最大密码年龄 |
密码有效期(天后必须修改),99999 表示永不过期 |
90 |
| 6 |
警告期 |
密码过期前多少天开始警告用户 |
7 |
| 7 |
不活动宽限期 |
密码过期后账户还可登录的天数(超时则锁定) |
3 |
| 8 |
账户过期日期 |
账户绝对过期日期(从 1970-01-01 开始的天数),空表示永不过期 |
19300 |
| 9 |
保留字段 |
未使用 |
空 |
/etc/group用户组信息文件
[root@wickt 桌面]# cat /etc/group root:x:0: bin:x:1: daemon:x:2: sys:x:3: adm:x:4: tty:x:5:
|
每行代表一个用户组,包含 4 个字段。
| 字段序号 |
字段名 |
说明 |
示例值 |
| 1 |
组名 |
用户组名称 |
root |
| 2 |
组密码 |
通常为 x 表示密码在 /etc/gshadow,! 表示无密码 |
x |
| 3 |
GID |
组ID(唯一数字标识) |
1005 |
| 4 |
组成员列表 |
属于该组的附加用户(主组成员不在此列),多个用户名用逗号分隔 |
john,sarah,tom |
命令实验
1、创建默认用户
useradd user01 passwd user01 id user01 tail -n 1 /etc/passwd
|

2、创建指定用户
useradd user02 -u 1145 id user02
|

useradd user03 -d /home/user03 useradd user03 -d /user03 ls -ld /home/user03 ls -ld /user03
|

3、密码管理
[root@wickt 桌面]# passwd user03
|

[root@wickt 桌面]# su - user03 [user03@wickt ~]$ passwd
|

4、用户组管理
创建用户组
groupadd minato groupadd asahi -g 11451
|

添加用户到附加组
usermod -aG minato user01 usermod -aG asahi user02 id user01
|

从组中移除用户
gpasswd -d user01 minato gpasswd -d user02 asahi
|

5、用户属性管理
登录管理
禁止用户登录
usermod -s /sbin/nologin user02
|

5、共享目录权限验证
创建共享目录并设置权限
mkdir /tmp/shared chgrp asahi /tmp/shared chmod 770 /tmp/shared ls -ld /tmp/shared
|

验证组成员权限
su - user02 touch /shared/text.txt su - user01 touch /shared/text2.txt
|

删除用户和用户组
userdel -r user01 userdel -r user02 userdel -r user03
|

groupdel minato groupdel asahi
|

注意事项
当删除用户时没有添加 -r 时,需要采取其他措施
1、pkill -9 -u user01 2、sudo rm -rf /home/user01 sudo rm -f /var/mail/user01 3、# 列出所有属于user01的文件,并删除,需要2>/dev/null用于忽略权限错误 find / -user user01 -exec rm -rf {} \; 2>/dev/null 4、# 删除配置文件信息 vipw vigr vipw -s visudo
|