linux系统完全支持修改文件或目录的读写权限,这是linux权限管理功能的核心部分,用户可以通过系统自带的命令按需调整不同资源的访问权限,满足各类使用场景的需求。

linux权限的基础概念
linux系统中每个文件或目录都有三类权限配置,分别对应所有者、所属组、其他用户的读、写、执行权限。其中读权限用r表示,写权限用w表示,执行权限用x表示。我们可以通过ls -l命令查看当前文件或目录的权限信息,示例输出如下:
# 查看当前目录下文件的权限信息 ls -l # 输出示例 -rw-r--r-- 1 user group 1024 1月 1 10:00 test.txt
上述输出中,-rw-r--r--就是test.txt的权限标识,第一位-表示这是普通文件,后续三位rw-是所有者权限,再三位r--是所属组权限,最后三位r--是其他用户权限。
修改读写权限的常用命令
linux中修改权限最常用的命令是chmod,它支持两种权限设置方式,分别是符号模式和数字模式。
符号模式修改权限
符号模式通过字符标识权限的修改对象和操作,格式为chmod [对象][操作符][权限] 文件/目录,其中对象可以是u(所有者)、g(所属组)、o(其他用户)、a(所有用户);操作符可以是+(添加权限)、-(移除权限)、=(设置权限);权限就是r、w、x的组合。
给test.txt的所有者添加写权限的示例:
# 给所有者添加写权限 chmod u+w test.txt # 验证权限修改结果 ls -l test.txt
移除其他用户对test.txt的读权限的示例:
# 移除其他用户的读权限 chmod o-r test.txt # 设置所属组只有读权限,没有其他权限 chmod g=r test.txt
数字模式修改权限
数字模式将三类权限分别用数字表示,读权限对应4,写权限对应2,执行权限对应1,每类用户的权限值是对应权限数字的和。比如rwx对应7,rw-对应6,r--对应4。
常用的权限数字组合如下:
| 数字组合 | 权限含义 |
|---|---|
| 777 | 所有者、所属组、其他用户都有读、写、执行权限 |
| 755 | 所有者有全部权限,所属组和其他用户只有读和执行权限 |
| 644 | 所有者有读写权限,所属组和其他用户只有读权限 |
| 700 | 只有所有者有全部权限,其他用户无任何权限 |
将test.txt的权限设置为所有者读写、其他用户只读的示例:
# 设置权限为644 chmod 644 test.txt # 递归修改目录及其下所有文件的权限 chmod -R 755 test_dir
修改权限的注意事项
- 只有文件或目录的所有者、或者具有root权限的用户才能修改对应资源的权限,普通用户修改其他用户的文件权限会提示权限不足。
- 修改目录权限时如果需要同时修改目录下所有子文件的权限,要加上
-R参数,否则只会修改目录本身的权限。 - 不要随意给文件或目录设置777权限,这会使得所有用户都可以修改或执行该资源,存在安全风险。
- 如果修改的是系统关键文件的权限,建议先备份原权限配置,避免误操作导致系统功能异常。
常见场景示例
场景1:给脚本文件添加执行权限,让它可以直接运行:
# 给test.sh添加执行权限 chmod u+x test.sh # 运行脚本 ./test.sh
场景2:修改共享目录的权限,让所属组用户都可以读写目录下的文件:
# 设置目录权限为775,所属组用户有读写执行权限 chmod 775 share_dir # 将目录的所属组修改为目标用户组 chown :target_group share_dir