【chmod】在Linux系统中,`chmod` 是一个非常重要的命令,用于修改文件或目录的权限。通过 `chmod`,用户可以设置文件或目录的读(r)、写(w)、执行(x)权限,从而控制谁可以访问和操作这些资源。
一、chmod 命令概述
`chmod` 是 “change mode”的缩写,主要用于更改文件或目录的权限模式。权限分为三类:所有者(owner)、所属组(group)和其他用户(others)。每种用户类型都有三种权限:读、写、执行。
二、权限表示方式
1. 符号表示法(Symbolic Notation)
符号表示法使用字母来指定权限,格式如下:
```
chmod [who][operator][permission] 文件名
```
- who:指定用户类型
- `u`:所有者(user)
- `g`:所属组(group)
- `o`:其他用户(others)
- `a`:所有用户(all)
- operator:指定操作类型
- `+`:添加权限
- `-`:移除权限
- `=`:设置权限(覆盖原有权限)
- permission:指定权限类型
- `r`:读
- `w`:写
- `x`:执行
示例:
```bash
chmod u+x script.sh 给所有者添加执行权限
chmod g-w file.txt 移除所属组的写权限
chmod o=r file.txt 设置其他用户为只读
```
2. 数字表示法(Numeric Notation)
数字表示法使用三位八进制数,分别代表所有者、所属组和其他用户的权限。每一位对应一个权限位:
- `4`:读(r)
- `2`:写(w)
- `1`:执行(x)
例如:
- `7` = `4 + 2 + 1` → 读、写、执行
- `6` = `4 + 2` → 读、写
- `5` = `4 + 1` → 读、执行
- `4` = `4` → 读
- `3` = `2 + 1` → 写、执行
- `2` = `2` → 写
- `1` = `1` → 执行
- `0` = 无权限
示例:
```bash
chmod 755 script.sh 所有者可读、写、执行;其他用户可读、执行
chmod 644 file.txt 所有者可读、写;其他用户只读
```
三、常见权限组合表
| 权限数字 | 权限含义 | 说明 |
| 777 | 所有用户可读、写、执行 | 全部开放,不安全 |
| 755 | 所有者可读、写、执行;其他用户只读、执行 | 常用于脚本或程序文件 |
| 644 | 所有者可读、写;其他用户只读 | 常用于普通文本文件 |
| 700 | 所有者可读、写、执行;其他人无权限 | 用于私密配置文件 |
| 600 | 所有者可读、写;其他人无权限 | 用于敏感数据文件 |
四、总结
`chmod` 是 Linux 中管理文件权限的核心工具。无论是使用符号表示法还是数字表示法,都可以灵活地控制文件或目录的访问权限。合理设置权限有助于提高系统的安全性与稳定性。建议根据实际需求选择合适的权限组合,避免不必要的风险。


