必须先用ls -l查看当前权限再执行chmod,否则易致文件不可读、脚本无法执行或服务启动失败;-rw-r--r--表示普通文件、所有者可读写,drwxr-xr-x表示目录、所有者具备完整操作权。

chmod 命令改权限,先看清楚当前权限再动手
直接执行 chmod 不会报错,但改错权限可能导致文件无法读取、脚本不能执行,甚至服务启动失败。用 ls -l 查看当前权限是必须的第一步——比如输出 -rw-r--r-- 表示这是个普通文件,所有者可读写,组和其他人只能读;而 drwxr-xr-x 开头的 d 表明是目录,且所有者有进入、列出、创建/删除的完整权限。
注意:只有文件/目录的拥有者或 root 才能修改其权限。普通用户对别人家的文件执行 chmod 会提示 Operation not permitted。
数字模式 vs 符号模式:什么时候该用哪种
数字模式(如 644、755)适合批量、明确赋权;符号模式(如 u+x、go-w)更适合微调,不破坏原有权限结构。
-
chmod 644 file.txt:强制设为所有者读写、组和其他人只读——适合配置文件、日志等不需执行的文件 -
chmod 755 dir/:目录常用权限,确保所有者可读写执行(即能cd、ls、增删内容),组和其他人可读可进入 -
chmod u+x script.sh:只给所有者加执行位,不影响组和其他人的读写状态 -
chmod a-w config.ini:去掉所有人的写权限,防止误改——比444更安全,因为不改动读和执行位
递归修改要小心:-R 不等于“全搞定”
chmod -R 755 /path 看似省事,但会把所有子文件也设成可执行,这既不安全(比如文本文件不该有 x),也可能导致 Web 服务器拒绝服务(某些 CGI 检查文件权限是否过宽)。
Linux 性能分析与调优专家,覆盖 CPU、内存、磁盘 I/O、网络、内核参数、编译优化、容器/K8s。适用场景:系统卡顿/高负载、内存不足/OOM/Swap 高、CPU 异常/iowait 高。
更稳妥的做法是分类型处理:
- 给所有子目录设
755:find /path -type d -exec chmod 755 {} \; - 给所有普通文件设
644:find /path -type f -exec chmod 644 {} \; - 如果只想给已有执行权限的文件或所有目录加
x,用大写X:chmod -R a+X /path——它跳过纯文本文件,只影响目录和已带x的文件
常见权限数值含义和典型用途
三位数字分别对应所有者(user)、所属组(group)、其他人(other),每位是 r=4、w=2、x=1 的和。别硬记,遇到就心算:比如 600 是 rw-------,常用于私钥文件;644 是 rw-r--r--,适合绝大多数配置文件;755 是 rwxr-xr-x,适合可公开访问的脚本和目录。
特别注意:777 和 a+rwx 在生产环境基本等于自曝风险——它让任何人可写,一旦被入侵,攻击者就能直接覆写关键文件。除非调试临时需要,否则应避免。
真正容易被忽略的是目录的写权限含义:对目录来说,w 不是“能改文件内容”,而是“能在该目录里创建、删除、重命名文件”。所以即使你把一个文件设为 444,只要它所在目录是 777,别人照样能 rm -f 掉它。

















