Linux用户和组及权限管理 学习笔记
·
Linux用户和组及权限管理 学习笔记
一、用户和组的概念与意义
1.1 用户(User)
Linux 是多用户多任务操作系统,每个登录系统的账号就是一个用户。系统通过用户来区分资源归属、控制访问权限。每个用户都有唯一的 UID(用户 ID),以及一个主组(GID)。
- 超级用户 root:UID 为 0,拥有系统最高权限。
- 普通用户:UID 从 1000 开始(CentOS/RHEL 系统通常如此)。
- 系统用户/虚拟用户:UID 1~999,供系统服务使用,不能登录。
1.2 用户组(Group)
用户组是用户的集合,用来批量管理权限。每个用户至少属于一个主组,还可以加入多个附加组。组有唯一 GID。
- 私有组(主组):创建用户时自动生成,组名通常与用户名相同。
- 公共组(附加组):多个用户共享,用于统一授予权限。
1.3 相关配置文件
| 文件 | 作用 |
|---|---|
| /etc/passwd | 用户信息(用户名、UID、GID、家目录、登录Shell) |
| /etc/shadow | 用户密码及密码有效期(仅 root 可读) |
| /etc/group | 组信息(组名、GID、组成员) |
| /etc/gshadow | 组密码信息 |
二、用户管理命令
2.1 创建用户 useradd
useradd zerise # 创建用户,自动建主组和家目录
useradd -m -s /bin/bash tom # 创建并强制建家目录,指定Shell
useradd -u 2000 -g java -G test dev # 指定UID、主组、附加组
useradd -d /home/xx -c "备注" 用户名 # 指定家目录、注释
2.2 修改用户 usermod
usermod -aG test zerise # 追加附加组(必须带 -a,否则覆盖原有附加组)
usermod -g java zerise # 修改主组
usermod -l newname oldname # 改用户名
usermod -L zerise # 锁定用户
usermod -U zerise # 解锁用户
usermod -s /sbin/nologin 用户名 # 禁止登录
2.3 删除用户 userdel
userdel zerise # 删除用户,保留家目录
userdel -r zerise # 删除用户并同时删除家目录和邮件
2.4 密码管理 passwd / chage
passwd zerise # root 为用户设密码
passwd # 用户改自己密码
passwd -l zerise # 锁定密码
passwd -d zerise # 清空密码
echo "密码" | passwd --stdin 用户名 # 非交互式设置(RHEL系)
chage -l zerise # 查看密码有效期信息
2.5 查看用户信息
id zerise # 查看 UID、GID、所属组
who / w / users # 当前登录用户
last # 登录历史
cat /etc/passwd # 查看全部用户
2.6 切换用户 su
su - zerise # 切换用户并加载其环境变量(推荐加 -)
su # 默认切到 root
三、用户组管理命令
3.1 创建组 groupadd
groupadd java # 创建普通组
groupadd -g 3000 test # 指定 GID
groupadd -r sysgroup # 创建系统组
3.2 修改组 groupmod
groupmod -n newjava java # 改组名
groupmod -g 4000 java # 改 GID
3.3 删除组 groupdel
groupdel test # 删除组(若该组是某用户主组则不能删)
3.4 组成员管理 gpasswd
gpasswd -a zerise test # 把用户加入组
gpasswd -d zerise test # 从组中移除用户
gpasswd -A zerise test # 指定组管理员
gpasswd -M user1,user2 test # 批量设置组成员
3.5 查看组信息
cat /etc/group
groups 用户名 # 查看用户所属组
getent group test # 查询组信息
## 四、文件权限管理
### 4.1 权限表示
使用 `ls -l` 查看,如 `-rwx r-x r--`:
| 部分 | 含义 |
|---|---|
| 第1位 | 文件类型:- 普通文件,d 目录,l 链接,c/b 设备 |
| 2~4位 | 属主(u)权限 |
| 5~7位 | 属组(g)权限 |
| 8~10位 | 其他用户(o)权限 |
权限含义:
- r(读)= 4:文件可查看内容;目录可列出内容(ls)
- w(写)= 2:文件可修改;目录内可创建/删除文件
- x(执行)= 1:文件可执行;目录可进入(cd)
### 4.2 修改权限 chmod
字母法:
```bash
chmod u+x file.sh # 属主加执行
chmod g-w file # 属组去掉写
chmod o=r file # 其他用户设为只读
chmod a+x file.sh # 所有人加执行
chmod -R 755 dir # 递归设置
数字法(读4+写2+执行1):
chmod 755 file # rwx r-x r-x
chmod 644 file # rw- r-- r--
chmod 700 dir # 仅属主有全部权限
4.3 修改属主/属组 chown、chgrp
chown zerise file # 改属主
chown zerise:test file # 同时改属主和属组
chown -R zerise:test dir # 递归修改
chgrp test file # 只改属组
4.4 默认权限 umask
umask # 查看,如 0022
umask 077 # 设置
4.5 特殊权限 • SUID(4):如 /usr/bin/passwd,执行时以属主身份运行 • SGID(2):目录内新建文件继承该组 • 粘滞位 Sticky(1):如 /tmp,目录内文件只有属主才能删除
chmod 4755 file # 设置SUID
chmod 1777 /tmp # 设置粘滞位
> 注意:上面这段里每个 ```````bash ````都配了结束的 ```````````,粘贴时 **别把首尾那两个包裹用的 ```````markdown ````/ ```````````也一起复制进去** ,只复制中间正文。
## 三、快速自查
发布前点顶部「预览」看一遍:如果标题是大号加粗、表格有边框、命令带深色底,说明代码块闭合正常;如果整个页面是一片深色,说明还有未闭合的 ` ````。
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐


所有评论(0)