不能直接用 chmod -r 755 或 644,因为 -r 不区分文件与目录:对目录缺 x 会“进不去”,对普通文件加 x 可能导致 web 服务拒载或安全风险;应使用 find 分类型设置(目录 755、文件 644)或 chmod -r a+x 智能加执行位。

递归修改整个目录的权限,不能只靠 chmod -R 一把梭——它会把文件和目录混着处理,容易误加执行权限(x),带来安全风险或服务异常。关键是要区分“目录”和“普通文件”,按需赋权。
为什么不能直接用 chmod -R 755 或 644?
因为:
- 目录需要 x(执行位)才能被进入、遍历;
- 普通文件(如 .conf、.php、.txt)根本不需要 x,加了反而可能被 Web 服务器拒绝读取(尤其开启 SELinux 或严格 umask 时);
- chmod -R 755 /var/www 会让所有文件都带上 x,等同于给配置文件开了“可执行”后门。
推荐做法:用 find 分类型精准设置
这是生产环境最稳妥的方式,确保目录有 x、文件无 x:
-
find /path/to/dir -type d -exec chmod 755 {} \;—— 只匹配目录,设为 755(rwxr-xr-x) -
find /path/to/dir -type f -exec chmod 644 {} \;—— 只匹配普通文件,设为 644(rw-r--r--)
注意:{} 是路径占位符,\; 必须转义,否则 shell 会解析错误。
快捷替代方案:chmod -R a+X(大写 X)
如果你追求简洁且能接受一定妥协,可用这个“智能执行位”:
Linux AI 服务器 — 将 Linux 服务器转换为本地 AI 推理集群。使用 systemd、NVIDIA CUDA 实现无头 Linux AI,零 GUI 开销。
- 先清掉所有 x:
chmod -R 644 /path - 再只给目录和原本就可执行的文件加 x:
chmod -R a+X /path
它的特点是:仅对目录、或已有 x 的文件追加 x,跳过纯文本类文件。比 -R 755 安全,但不如 find 精准——比如已有 x 的脚本和日志文件都会被保留 x,无法区分意图。
操作前必须做的三件事
避免误伤系统关键路径:
- 确认当前不在目标目录内(比如别在
/var/www下执行,防止路径写错成./波及太多) - 用
ls -ld /path看一眼目标是否是你想改的那个目录 - 预览将被修改的内容:
find /path -type d | head -3和find /path -type f | head -3
改完建议用 ls -lR /path | head -20 快速抽查几项,验证是否符合预期。










