文件和目录的rwx权限作用本质不同:文件的rwx控制内容操作(读内容、写内容、执行程序),目录的rwx控制结构操作(列文件名、增删改文件、进入目录);访问文件需父目录有x且文件自身满足对应权限。

Linux中rwx权限在文件和目录上看似相同,实际作用完全不同。搞混这两者,常导致“明明有w权限却删不掉文件”或“能ls却cd不进去”这类问题。
文件的rwx:管内容,不管名字
对普通文件来说,rwx控制的是文件“内部数据”的操作:
- r(读):能用cat、less、vim等命令查看或读取文件内容;没有r,连打开都报错
- w(写):能修改文件内容(如echo追加、vim编辑、重定向覆盖),但不能删除或重命名该文件本身
- x(执行):仅当文件是可执行程序(如编译后的二进制、shell脚本)时生效;有x才能./a.out或bash script.sh
目录的rwx:管结构,不管内容
目录本质是一张“文件名→inode编号”的索引表,它的rwx控制的是对这张表的操作:
PyCharm 2026.2.0.1 Linux版提供 JetBrains 官方 2026.2.0.1 版本安装包,适合需要指定 PyCharm 版本进行 Python 项目开发、运行和调试的用户。
- r(读):能用ls列出目录里有哪些文件/子目录(即看到名字),但看不到文件内容,也进不去
- w(写):能创建、删除、重命名目录内的文件/子目录——哪怕目标文件的权限是000,只要目录有w,就能删
- x(执行):这是进入目录的“钥匙”,没有x就无法cd、无法访问其下任何文件(即使文件本身rwx全开)
关键组合逻辑:访问一个文件,要过两道关
想成功读、写、执行某个路径下的文件,必须同时满足:
- 读文件:路径上所有父目录都要有x权限(确保能逐级进入),目标文件要有r权限
- 改文件:所有父目录要有x,目标文件要有w;若涉及保存(如vim :wq),还要求文件所在目录有w(因保存本质是写新文件+替换原文件)
- 执行文件:所有父目录要有x,目标文件要有x;若脚本含shebang(如#!/bin/bash),还需解释器路径对应目录也有x
常见误区与验证技巧
容易踩坑的地方:
- 给目录设了rw但没x → ls能看见,cd报Permission denied
- 给目录设了--x但没r → cd能进去,ls显示“cannot open directory”,但若知道文件名,仍可用cat filename读内容
- 误以为删文件需要文件有w权限 → 实际只取决于文件所在目录是否有w权限
- 用chmod 755给脚本赋权却执行失败 → 检查脚本所在目录是否也有x(尤其/tmp下某些子目录可能被umask限制)










