1. Linux文件权限深度解析
在Linux系统中,文件权限是系统安全的第一道防线。我第一次接触这个概念时,曾因为误操作导致整个项目目录无法访问,花了整整一个下午才恢复。让我们从最基础的ls -l命令输出开始:
code复制-rw-r--r-- 1 user group 1024 Mar 15 10:30 example.txt
drwxr-xr-x 2 user group 4096 Mar 15 10:31 documents/
这个输出包含7个关键字段,其中第一个字段的10个字符最值得关注。第一个字符表示文件类型(-代表普通文件,d代表目录),后面9个字符每3个一组,分别对应所有者(owner)、所属组(group)和其他用户(other)的权限。
重要提示:修改系统关键目录权限前务必先做备份,我曾在/etc目录误执行chmod -R 777导致SSH服务崩溃
1.1 权限符号与数字表示
权限字符与数字的对应关系:
- r (read) = 4
- w (write) = 2
- x (execute) = 1
组合权限计算示例:
- rwx = 4+2+1 = 7
- rw- = 4+2 = 6
- r-x = 4+1 = 5
实际工作中最常用的权限组合:
- 755 (rwxr-xr-x):可执行文件标准权限
- 644 (rw-r--r--):配置文件标准权限
- 600 (rw-------):敏感数据文件权限
1.2 chmod命令实战技巧
修改权限的两种方式:
bash复制# 符号模式(适合临时调整)
chmod u+x script.sh # 给所有者添加执行权限
chmod g-w file.txt # 移除组用户的写权限
chmod o=r-- data.db # 设置其他用户只读
# 数字模式(推荐永久设置)
chmod 755 app # 经典的可执行权限
chmod 600 .env # 保护敏感配置文件
批量修改权限的实用命令:
bash复制# 递归修改目录下所有.sh文件为可执行
find /path/to/scripts -name "*.sh" -exec chmod 755 {} \;
# 快速重置整个目录权限(慎用
