CentOS7 安装后用户管理与权限控制精要
发布时间: 2024-05-01 09:23:15 阅读量: 79 订阅数: 62
![CentOS7 安装后用户管理与权限控制精要](https://img-blog.csdnimg.cn/fffd2ad29b714295b77f21ac0828ca26.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAQWRlYXZlbijot5HmraXooYzogIUp,size_20,color_FFFFFF,t_70,g_se,x_16)
# 1. 用户管理基础**
用户管理是权限控制的基础,它涉及到用户创建、删除、修改密码以及用户组管理等操作。在 CentOS 7 中,用户管理可以通过命令行工具或图形界面工具进行。
命令行工具包括:
- useradd:创建用户
- userdel:删除用户
- passwd:修改用户密码
- groupadd:创建用户组
- groupdel:删除用户组
- usermod:修改用户属性
图形界面工具包括:
- 系统设置 -> 用户和组:管理用户和用户组
- 文件管理器 -> 右键单击文件或目录 -> 属性 -> 权限:修改文件或目录权限
# 2. 用户权限控制
### 2.1 用户组与权限
#### 2.1.1 用户组的创建与管理
用户组是一种将具有相同权限或访问需求的用户集合在一起的机制。创建用户组可以简化权限管理,因为可以一次性将权限分配给用户组,而不是逐个分配给每个用户。
**创建用户组**
使用 `groupadd` 命令创建用户组,语法如下:
```bash
groupadd [选项] 组名
```
**选项说明:**
- `-g`:指定组的 GID(组 ID)
- `-r`:创建系统组(只有 root 用户可以创建)
**示例:**
创建一个名为 `developers` 的用户组,GID 为 1000:
```bash
groupadd -g 1000 developers
```
**管理用户组**
可以使用 `usermod` 命令将用户添加到或从用户组中删除,语法如下:
```bash
usermod [选项] 用户名 -G 组名
```
**选项说明:**
- `-a`:将用户添加到指定组
- `-d`:将用户从指定组中删除
**示例:**
将用户 `user1` 添加到 `developers` 组:
```bash
usermod -a user1 -G developers
```
#### 2.1.2 用户组权限的分配与管理
用户组权限是指分配给用户组的访问权限。可以将权限分配给文件、目录或其他系统资源。
**分配用户组权限**
使用 `chgrp` 命令分配用户组权限,语法如下:
```bash
chgrp [选项] 组名 文件/目录
```
**选项说明:**
- `-R`:递归更改目录及其子目录的权限
**示例:**
将文件 `/etc/passwd` 的组所有权更改为 `developers` 组:
```bash
chgrp developers /etc/passwd
```
**管理用户组权限**
可以使用 `getfacl` 和 `setfacl` 命令管理用户组权限。
**getfacl**
`getfacl` 命令用于获取文件或目录的访问控制列表(ACL),其中包含用户组权限。语法如下:
```bash
getfacl [选项] 文件/目录
```
**选项说明:**
- `-R`:递归获取目录及其子目录的 ACL
**示例:**
获取文件 `/etc/passwd` 的 ACL:
```bash
getfacl /etc/passwd
```
**setfacl**
`setfacl` 命令用于设置文件或目录的 ACL。语法如下:
```bash
setfacl [选项] ACL 文件/目录
```
**选项说明:**
- `-m`:合并 ACL,而不是替换现有的 ACL
- `-R`:递归设置目录及其子目录的 ACL
**示例:**
向文件 `/etc/passwd` 的 ACL 中添加 `developers` 组的读取权限:
```bash
setfacl -m g:developers:r /etc/passwd
```
### 2.2 文件权限管理
#### 2.2.1 文件权限的理解与设置
文件权限控制着用户对文件的访问权限。文件权限由三个部分组成:
- **所有者权限:**文件所有者的权限
- **组权限:**文件所有者所在组的权限
- **其他权限:**所有其他用户的权限
每个权限部分由三个字符表示:
- **r:**读取权限
- **w:**写入权限
- **x:**执行权限
**设置文件权限**
使用 `chmod` 命令设置文件权限,语法如下:
```bash
chmod [选项] 权限 文件/目录
```
**选项说明:**
- `-R`:递归更改目录及其子目录的权限
**权限表示:**
- **数字表示:**使用三位数字表示权限,例如 755(所有者可读、可写、可执行;组可读、可执行;其他可读、可执行)
- **符号表示:**使用字母和符号表示权限,例如 `u+rwx,g+rx,o+r`(所有者可读、可写、可执行;组可读、可执行;其他可读)
**示例:**
使用数字表示将文件 `/etc/passwd` 的权限设置为 644(所有者可读、可写;组可读;其他可读):
```bash
chmod 644 /etc/passwd
```
#### 2.2.2 文件权限的继承与传播
文件权限可以从父目录继承。当在目录中创建新文件时,新文件将继承父目录的权限。
**权限传播**
权限传播是指当文件或目录的权限发生更改时,更改也会传播到其子目录和文件。
**阻止权限传播**
可以使用 `chattr` 命令阻止权限传播,语法如下:
```bash
chattr [选项] +i 文件/目录
```
**选项说明:**
- `+i`:设置不可变属性,阻止权限传播
**示例:**
阻止目录 `/var/log` 及其子目录的权限传播:
```bash
ch
```
0
0