## 权限管理

使用 `ls -l` 命令时，会输出文件的基本信息，其中包含文件的权限信息：

```log
drwxr-xr-x  2 fovlin fovlin 4096  4月17日 00:37 docs
```

从左到右依次为：

---

`文件权限` `我也不知道是啥` `所有者` `所有组` `文件大小(不会显示目录大小)` `最后访问日期` `最后访问时间` `文件名称`

---

### 更改文件权限

文件权限 `drwxr-xr-x` 前一个字符表示文件类型，常见字符对应的文件类型如下：

- `-`: 普通文件

- `d`: 目录

- `l`: 链接

- `c`: 字符设备文件

- `b`: 块设备文件

- `s`: 套接字文件

- `p`: 管道文件

文件权限 `drwxr-xr-x` 第 2-4 、 5-7 、 8-10 个字符分别表示所有者权限、所有组权限、其他用户权限，三个字符分别代表：

- `r`: 读权限

- `w`: 写权限

- `x`: 执行权限

使用 `chmod` 可以改变文件权限，用法如下：

```bash
chmod [选项] 权限信息 文件名
```

> 当权限不足时可以使用超级管理员进行操作。

一般常用数字模式来表示权限：

- `x`: 1

- `w`: 2

- `r`: 4

将需要的权限对应的数字加和即可表示单个权限。

一个文件的权限信息由三位数字，也就是三个权限组成，分别表示所有者权限、所有组权限、其他用户权限。

例如将文件 script.sh 改为所有者可读可执行可写，同用户组可读可执行，其他用户仅执行，执行以下命令：

```bash
chmod 751 script.sh
```

将整个目录 docs 递归改为所有者可读可执行可写，同用户组可读可执行，其他用户仅执行，执行以下命令：

```bash
chmod -R 751 docs
```

> 可执行在目录中表示能否进入目录。