Linux 文件权限入门:从一个脚本理解 r、w、x
在 Linux 中运行脚本时,遇到“权限不足”并不一定是文件损坏。先看清文件属于谁、允许哪些操作,通常比盲目使用管理员权限更有帮助。下面用一个临时练习理解最常见的权限标记。
先创建练习文件
在自己的终端中执行,系统会创建一个新临时目录,并打印它的位置:
workdir=$(mktemp -d)
cd "$workdir" || exit
pwd
printf '#!/bin/sh\nprintf "hello permissions\\n"\n' > hello.sh
chmod 600 hello.sh
ls -l hello.sh
输出开头可能是 -rw-------。第一个字符 - 表示普通文件;后面九位分成三组,依次对应文件所有者、所属组成员和其他用户。每组里的 r、w、x 分别代表读、写和执行,短横线表示该位置没有相应权限。600 表示所有者可读写,另外两组没有权限。
让脚本可以直接运行
继续在练习目录执行:
chmod u+x hello.sh
ls -l hello.sh
./hello.sh
u+x 的意思是给所有者增加执行权限,其他权限保持不变。此时通常能看到 -rwx------,并输出 hello permissions。脚本第一行指定了解释器;直接执行还依赖解释器存在、文件系统挂载方式等条件。
数字写法也常见:r、w、x 分别对应 4、2、1,每组相加形成一位。例如 750 表示所有者可读写执行、组成员可读和执行、其他用户没有权限。数字模式会设置各组权限,修改前应先确认原值和共享需求。
目录中的 x 有不同含义
对于目录,x 主要表示允许搜索或穿越该目录;r 允许读取目录条目。仅有其中一种权限,并不等于拥有完整的目录访问能力。删除文件通常取决于所在目录的权限等条件,而不是单看文件自身是否可写。
如果修改后仍无法访问,检查文件所有者、上级目录权限,以及访问控制列表、挂载选项等环境设置。练习结束后先返回其他目录,再确认刚才打印的临时目录路径,手动删除该练习目录。对真实数据,先查看现有权限和业务需求,避免对整个目录随意递归放宽权限。
- 点赞
- 收藏
- 关注作者
评论(0)