linux-用户和组
linux-用户和组
- 前言
- 一、用户管理
- 1. 用户账户类型
- 2. 主要命令
- 2.1 useradd
- 2.2 usedel
- 2.3 usermod
- 2.4 su
- 3. 查看用户登录信息
- 3.1 w
- 3.2 who
- 3.3 last
- 3.4 lastlog
- 3.5 lastb
- 4. 用户配置文件
- 4.1 /etc/passwd
- 4.2 /etc/shadow
- 4.3 /etc/login.defs
- 5. 手工新建用户
- 二、组管理
- 1. 组分类
- 2. 组配置文件
- 总结
前言
用户和组是进行权限管理的基础
先建组,再建用户
tail -f /var/log/secure
Jun 11 18:50:41 hz useradd[1398]: new group: name=first, GID=1057
Jun 11 18:50:41 hz useradd[1398]: new user: name=first, UID=1057, GID=1057, home=/home/first, shell=/bin/bash, from=/dev/pts/0
一、用户管理
1. 用户账户类型
- 超级用户:拥有系统的最高权限,能进行所有操作 root 0
- 系统用户:是为了运行系统服务而创建的(如启动程序,或者登录某个应用\服务),一般不允许登录系统 uid 1-999
- 普通用户:供日常使用,权限受到一定限制 uid>1000
每个用户通过唯一的用户 ID(UID) 标识
2. 主要命令
2.1 useradd
创建用户
格式:useradd [选项]… 用户名
常用命令选项
-u: 指定uid标记号
-d: 指定宿主目录,缺省为 /home/用户名
-e: 指定账户失效时间
-g: 指定用户的基本组名(或gid号)
-G: 指定用户的附加组名(或gid号)
-M: 不为用户建立并初始化宿主目录
-s: 指定用户登录的Shell
-c: 用户注释描述信息
-r: 新建系统用户,不会有新建家目录
[root@hz ~]# useradd -u 7788 -g 0 -G 1031 -s /bin/sh -c “nongda student” -d/home/zheng1 zheng1
[root@hz ~]# tail -1 /etc/passwd
zheng :x :7788:0:nongda student:/home/zheng1:/bin/sh
[root@hz ~]# id zheng1
用户id=7788(zheng1) 组id=0(root) 组=0(root),1031(panmingqian)
2.2 usedel
-r 删除用户的家目录和邮箱
/var/spool/mail 用户邮箱的路径,默认情况下邮箱的名字和用户名同名
[root@hz ~]userdel -r zhangsan
[root@hz ~]# id zhangsan
id: “zhangsan”:无此用户
2.3 usermod
修改用户信息
usermod -d /home/newdir zhangsan
2.4 su
重新登录root,root用户切换到任何用户都不需要密码
su - user
su user
-, -l, --login
Start the shell as a login shell with an environment
similar to a real login:
• clears all the environment variables except TERM andvariables specified by --whitelist-environment 除TERM环境变量外,其他的环境变量都清除• initializes the environment variables HOME, SHELL,USER, LOGNAME, and PATH 初始化HOME,SHELL,USER,LOGNAME,PATH环境变量• changes to the target user’s home directory 切换到用户的家目录• sets argv[0] of the shell to '-' in order to make theshell a login shell告知 shell 以 “登录模式” 启动,从而加载完整的环境配置文件
[root@hz ~]# su - zhangwji
[zhangwji@hz ~]$ id
用户id=1058(zhangwji) 组id=1004(wudang) 组=1004(wudang),1058(mingjiao) 上下文=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[zhangwji@hz ~]$ exit
exit # 退出
3. 查看用户登录信息
3.1 w
显示当前登录的用户、登录时间、终端、CPU / 内存使用等信息
-h, --no-header do not print header
-u, --no-current ignore current process username
-f, --from show remote hostname field
load average 分别对应系统在过去 1 分钟、5 分钟、15 分钟 内的平均负载
[root@rocky ~]# w
19:35:10 up 45 min, 2 users, load average: 0.00, 0.03, 0.01
USER TTY LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 18:49 1.00s 0.05s 0.00s w
root pts/1 18:49 42:22 0.02s 0.02s -bash[root@rocky ~]# w -f
11:53:08 up 2:26, 2 users, load average: 0.01, 0.02, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 192.168.168.1 09:27 3.00s 0.07s 0.00s w -f
root pts/1 192.168.168.1 09:46 16:44 0.00s 0.00s -bash
3.2 who
简洁显示当前登录用户的用户名、终端和登录时间
[root@rocky ~]# who
root pts/0 2025-06-12 18:10 (192.168.168.1)
3.3 last
读取 /var/log/wtmp 文件,查看最近有哪些用户登录过系统
[root@rocky ~]# last
root pts/0 192.168.168.1 Thu Jun 12 18:10 still logged in
reboot system boot 5.14.0-427.13.1. Thu Jun 12 17:59 still running
root pts/1 192.168.168.1 Wed Jun 11 18:49 - 20:37 (01:47)
root pts/0 192.168.168.1 Wed Jun 11 18:49 - 20:37 (01:47)
3.4 lastlog
分析所有用户是否登录过系统
读取 /var/log/lastlog 文件,显示每个用户的最后登录时间、IP 和终端
[root@rocky ~]# lastlog
Username Port From Latest
root pts/0 四 6月 12 18:46:52 +0800 2025
bin **从未登录过**
daemon **从未登录过**
3.5 lastb
读取 /var/log/btmp 文件,显示登录失败的历史记录
[root@rocky ~]# lastb
root pts/0 Wed Jul 9 19:38 - 19:38 (00:00)
btmp begins Wed Jul 9 19:38:00 2025
4. 用户配置文件
4.1 /etc/passwd
保存用户基本信息
[root@hz ~]# ls /etc/passwd*
/etc/passwd /etc/passwd-
备份文件,但是有差异,差一次操作
diff 用来判断文本文件是否有差异 different
[root@hz ~]# diff /etc/passwd /etc/passwd-
76d75
< zheng1:x :7788:0:nongda student:/home/zheng1:/bin/sh
4.2 /etc/shadow
保存用户密码(加密存储)及密码策略
第二个字段如果是!!或者*表示没有设置密码
禁用用户 --> 用户不能登录linux系统
- 修改/etc/passwd
shell改成/sbin/nologin - 修改/etc/shadow
passwd -l lock 锁定
passwd -u 解锁 - 删除用户
userdel
4.3 /etc/login.defs
默认账户的属性文件
/etc/login.defs 规定了用户账户创建和管理的默认属性及初始化设置参数
defaults 默认/缺省
5. 手工新建用户
手工新建一个用户 zhangjie
组singer uid 3006 gid 3006 home_dir /home/zhangjie 注释 china famous singer shell /bin/bash
- 修改/etc/passwd文件,添加信息
zhangjie:x :3306:3306:china famous singer:/home/zhangjie:/bin/bash
- 修改/etc/shadow文件,添加信息
zhangjie:!!:20251:0:99999:7:::
- 修改/etc/group文件
singer:x :3006:
- 新建家目录
mkdir /home/zhangjie
- 进入/etc/skel目录,复制初始化bash环境变量的脚本文件
[root@hz ~]# ls -a /etc/skel
. … .bash_logout .bash_profile .bashrc
.bash_profile 用户每次登录时执行 --》bash的配置文件,bash程序启动时,会加载这个文件里的配置
.bashrc 每次进入新的bash环境时执行 --》每次启动一个新的bash时,就会加载里面的配置
.bash_logout 用户每次退出登录时执行
.bash_history 记录存放上次注销前使用的历史命令
[root@hz ~]# cp /etc/skel/.bash* /home/zhangjie
[root@hz ~]# ls -a /home/zhangjie
. … .bash_logout .bash_profile .bashrc
- 新建邮箱
[root@hz ~]# cd /var/spool/mail
[root@hz mail]# touch zhangjie
- 登录验证
[root@hz mail]# su - zhangjie
[zhangjie@hz ~]$
[zhangjie@hz ~]$ mkdir zhang
mkdir: 无法创建目录 “zhang”: 权限不够
[zhangjie@hz ~]$ ll -d /home/zhangjie
drwxr-xr-x. 2 root root 62 6月 12 20:04 /home/zhangjie
[zhangjie@hz ~]$ chown -R zhangjie:singer /home/zhangjie
chown: 正在更改’/home/zhangjie/.bash_logout’ 的所有者: 不允许的操作
chown: 正在更改’/home/zhangjie/.bash_profile’ 的所有者: 不允许的操作
chown: 正在更改’/home/zhangjie/.bashrc’ 的所有者: 不允许的操作
chown: 正在更改’/home/zhangjie’ 的所有者: 不允许的操作
[zhangjie@hz ~]$ exit
注销
change owner --> root
将/home/zhagnjie归属改为zhagnjie用户所有,singer组所有
[root@hz mail]# chown -R zhangjie:singer /home/zhangjie
[root@hz mail]# ll -a /home/zhangjie
总用量 16
drwxr-xr-x. 2 zhangjie singer 62 6月 12 20:04 .
drwxr-xr-x. 63 root root 4096 6月 12 19:55 …
-rw-r–r–. 1 zhangjie singer 18 6月 12 20:04 .bash_logout
-rw-r–r–. 1 zhangjie singer 141 6月 12 20:04 .bash_profile
-rw-r–r–. 1 zhangjie singer 492 6月 12 20:04 .bashrc
[root@hz mail]# chmod 700 /home/zhangjie
[root@hz mail]# ll -d /home/zhangjie
drwx------. 2 zhangjie singer 62 6月 12 20:04 /home/zhangjie
[root@hz mail]# su - zhangjie
上一次登录: 四 6月 12 20:08:27 CST 2025 pts/0 上
[zhangjie@hz ~]$ mkdir zhang
[zhangjie@hz ~]$ ll
总用量 0
drwxr-xr-x. 2 zhangjie 3306 6 6月 12 20:17 zhang
修改邮箱的权限和拥有者
[root@hz mail]# chown zhangjie:mail /var/spool/mail/zhangjie
[root@hz mail]# chmod 660 /var/spool/mail/zhangjie
[root@hz mail]# ll /var/spool/mail/zhangjie
-rw-rw----. 1 zhangjie mail 0 6月 12 20:06 /var/spool/mail/zhangjie
二、组管理
1. 组分类
主要组:gid -g -->基本组
次要组:-G --》附属组
[root@hz ~]# groupadd mingjiao
[root@hz ~]# useradd zhangwji -g wudang -G mingjiao
[root@hz ~]# id zhangwji
用户id=1058(zhangwji) 组id=1004(wudang) 组=1004(wudang),1058(mingjiao)
切换主要组
[zhangwji@hz ~]$ newgrp mingjiao
[zhangwji@hz ~]$ id
用户id=1058(zhangwji) 组id=1058(mingjiao) 组=1058(mingjiao),1004(wudang) 上下文=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
2. 组配置文件
/etc/group
保存组信息
总结
用户和组的作用
1.对文件进行管理,权限管理
2.登录系统
3.启动权限