读懂 Linux 目录与文件权限
理解主目录、系统目录和 rwx 权限,从一个普通文件开始练习最小权限。
本文目录
Linux 把文件组织在从 / 开始的目录树中。理解目录用途和权限,有助于判断文件应该放在哪里,以及“权限不足”究竟意味着什么。本文针对普通文件与目录的基本权限,不包含 ACL 等更细的访问控制。
1. 认识常见目录
/home 通常保存普通用户的个人目录;~ 是当前用户主目录的简写。个人笔记、下载文件和练习项目一般放在这里,不需要管理员权限。
/etc 保存许多系统配置,修改前应了解对应服务并备份。/var 用于日志和其他变化的数据;/tmp 用于临时文件,不能当作长期保存资料的位置。/usr 中有大量由系统软件包管理的程序和资源,不宜手动挪动。
系统目录各有职责。遇到无法写入的提示时,不要直接改整棵目录的权限;先确认自己是否应该在这里操作。
2. 读懂权限字段
运行 ls -l 可以看到类似的结果:
-rw-r--r-- 1 user user 12 Oct 19 10:00 example.txt
开头的 - 表示普通文件,d 表示目录。后面九个位置分为三组,分别对应所有者、所属组和其他用户。r 是读取,w 是写入,x 是执行,- 表示没有对应权限。示例文件的所有者可读写,其他两组只能读取。
对目录而言,r 允许列出名字,x 允许进入并访问其中已知名称的项目,w 涉及目录条目的增删。文件能否删除也受父目录权限影响,不能只看文件自己的写权限。
3. 在个人目录练习
以下使用新建练习目录中的普通文件,不修改系统文件:
mkdir -p ~/permission-practice
cd ~/permission-practice
printf 'private note\n' > example.txt
ls -l example.txt
chmod u=rw,go= example.txt
ls -l example.txt
最后通常显示 -rw-------,表示只有所有者可读写。这里 u 代表所有者,g 代表组,o 代表其他用户。也可用 chmod 600 example.txt 表达相同的基本权限;数字 4、2、1 分别对应读、写、执行,按需要相加。
4. 权限问题先定位
遇到无法访问的文件,先用 id 查看当前身份,再用 ls -ld 目录路径 和 ls -l 文件路径 查看所有者与权限。若某一级父目录不能进入,即使文件可读也可能无法访问。
不要把 chmod -R 777 当作通用修复方法:它会扩大所有用户的权限,还可能破坏目录原本的安全边界。chown 会修改所有者,递归操作影响更广,也不适合作为第一次排查手段。应先确认应用由哪个用户运行、实际需要哪些访问权限,再作最小范围的调整。
权限是明确访问边界的工具。日常练习用普通账户,在需要管理系统时才按明确步骤使用管理员权限,更容易理解和回退每一次修改。
命令和界面可能随系统版本变化。操作前请阅读提示,并保留重要数据的备份。
继续浏览笔记 →