批量修改目录权限需区分目录与文件:用find -type d单独设目录权限(如755),再用find -type f设文件权限(如644);大写X可安全添加执行位,避免误开普通文件权限。

批量修改目录的读写权限,关键在于区分“只改目录”和“连同子文件一起改”。直接用 chmod -R 会一并处理所有子文件,容易误开执行权限;更稳妥的做法是先精准定位目录本身,再统一设权。
只改目录(不含普通文件)
用 find 筛出所有目录类型,单独设置权限:
-
find /path/to/dir -type d -exec chmod 755 {} \; —— 把目标路径下所有子目录(含自身)设为
rwxr-xr-x,适合共享目录、Web 根目录等需要进入和遍历的场景 - 若需限制访问范围,比如仅修改名称含
conf的目录:find /path/to/dir -type d -name "*conf*" -exec chmod 700 {} \;
目录与文件分开设权(推荐工作流)
生产环境常用组合:目录可进入(755),文件仅可读(644),避免脚本或配置被意外执行:
- 先设所有目录:find /path/to/dir -type d -exec chmod 755 {} \;
- 再设所有普通文件:find /path/to/dir -type f -exec chmod 644 {} \;
- 顺序不能颠倒,否则后一步可能覆盖前一步对同名路径的设置
用大写 X 安全加执行位
如果已有部分文件带执行权(如 shell 脚本),又想确保所有目录都能被进入,但不给普通文件加 x:
-
chmod -R a+X /path/to/dir —— 大写
X只对目录或原本就有x的文件生效,安全且省心 - 搭配基础权限更可控:chmod -R u=rwX,g=rX,o=rX /path/to/dir,明确所有者可读写、组与其他用户仅可读+进入目录
注意避开常见坑
操作前建议确认几点:
- 别在
/、/etc、/usr等系统路径上盲目递归,可能破坏服务启动 - Java 或 Python 应用目录中,
.jar、.py文件通常不需要x,设成 644 更安全 - 临时切换到目标目录上级再执行命令,可用
./代替冗长绝对路径,降低输错风险











