文章目录
先确认自己在操作什么
这是一份入门参考笔记,适合遇到 Permission denied 时按顺序检查。权限错误不一定需要 sudo;路径写错、文件属于别的用户、父目录无法进入,都值得先排查。以下示例用于自己的练习目录,请先理解命令,再替换路径。
pwd
id
ls -ld .
ls -l notes.txt
pwd 显示当前目录,id 查看当前用户及组,ls -l 展示文件权限与所有者。查看目录本身用 ls -ld,否则通常看到的是目录里的内容。这些基础命令可对照 Ubuntu 终端入门文档 阅读。文件名含空格时要加引号;操作前用绝对路径或再次执行 pwd,能减少认错目录的机会。
读懂三组 rwx
例如 -rw-r-----,首位 - 表示普通文件,之后依次是所有者、所属组、其他人的权限。r 是读取,w 是写入,x 对普通文件表示执行。目录的含义有所不同:r 用于列出目录项,x 用于搜索、穿过目录访问路径,w 与目录项的新增、删除有关。目录写权限配合搜索权限,可能允许删除其中没有写权限的文件,别把文件只读当成删除保护。详见 GNU 权限结构说明。
数值写法把读、写、执行记为 4、2、1:640 是所有者读写、组只读、其他人无权限;755 是所有者可读写执行,其他人可读和执行。它们是常见例子,并非所有文件都应套用的标准。
只改需要改变的部分
在已确认属于自己的练习文件上,可以比较两种写法:
chmod u+x script.sh
chmod 640 notes.txt
ls -l script.sh notes.txt
第一条只给所有者增加执行位;第二条明确设置三组普通权限。修改模式用 chmod,修改所有者属于 chown 的职责。符号模式的 u、g、o 对应三类用户,+、-、= 分别表示增加、移除、设置,参考 GNU 设置权限说明。
遇到拒绝访问时的检查顺序
先确认命令针对哪个文件,再看当前用户和所属组,接着检查目标与各级父目录,最后判断需要的是读、写还是执行权限。网页或服务进程还要按它实际运行的用户检查,不能只以登录用户能否读取为准。
不要用 chmod -R 777 当作通用修复:它会扩大整棵目录的访问范围,也会给普通文件增加执行位。若基本权限看起来正确,仍可能涉及 ACL、只读挂载或安全策略;应保留报错、路径和检查结果,继续定位原因。