linux修改文件权限用chmod命令,需明确主体(u/g/o)和操作(r/w/x),支持符号模式(如u+w)和数字模式(如644),目录需注意x表示可进入而非执行。

Linux 中修改文件的读写执行权限,核心是用 chmod 命令,关键在于明确“改谁的权限”和“改成什么样”。权限分三类主体(所有者 u、所属组 g、其他用户 o)和三种操作(读 r、写 w、执行 x),不能笼统说“给文件加写权限”,而要说“给所有者加写”或“去掉其他人执行权”。
先看当前权限,再动手改
用 ls -l 文件名 查看原始权限。例如显示 -rw-r--r--,说明:第一位 - 是普通文件;接下来 rw- 是所有者权限(可读可写)、r-- 是所属组(只读)、r-- 是其他人(只读)。数字表示就是 644(4+2=6,4=4,4=4)。
用符号模式快速增减权限
适合日常微调,语义清晰,不易误操作:
-
chmod u+w file.txt—— 给所有者加上写权限(原有权限不变,只追加) -
chmod go-rw config.conf—— 移除所属组和其他人的读写权限 -
chmod a=r data.log—— 所有人只保留读权限(覆盖原权限) -
chmod ug+rx,o=x script.sh—— 所有者和组可读可执行,其他人仅可执行
用数字模式精确设定组合
三位八进制数,每位对应一类主体:所有者 / 所属组 / 其他人。每位数值是 r/w/x 对应值之和(r=4, w=2, x=1):
-
644→rw-r--r--:所有者读写,组和其他人只读(文本文件常用) -
600→rw-------:仅所有者可读写(如~/.ssh/id_rsa必须设为此) -
755→rwxr-xr-x:所有者全权,组和其他人可读可执行(脚本或公开目录) -
700→rwx------:仅所有者可访问(私密目录)
执行:chmod 600 secret.key 或 chmod 755 deploy.sh。
改目录权限要特别注意 x 的作用
对目录,x 权限不是“执行”,而是“能否进入和访问其下内容”:
- 没有 x 权限,即使有 r 权限,
cd dir会失败,ls dir/file也会被拒绝 - 删文件靠的是目录的 w 权限,不是文件自身的 w 权限
- 所以设目录权限时,通常至少要有 x(如 755、775),纯 644 目录无法进入
- 递归修改整个目录树用
-R,但慎用chmod -R 777——它会让所有子文件也变成可执行,极不安全











