一般情况下使用 chmod -R 777
改变目录进入权限会同时赋予文件的执行权限. 这样会破坏 linux 的权限很不安全, 短期来看确实解决了眼下问题, 万一有什么服务被攻破了, 这些带有执行权限的文件会造成安全隐患执行恶意程序. 有什么办法只修改 文件夹权限
不修改 文件的权限
呢
递归赋予 文件夹
读取和执行权限 p.s. 文件夹的执行权限相当于进入权限
find /path/to/base/dir -type d -exec chmod 755 {} +
递归赋予 文件
读取权限
find /path/to/base/dir -type f -exec chmod 644 {} +
或者, 有很多对象要处理 (文件名中带有空格的会失败)
chmod 755 $(find /path/to/base/dir -type d)
chmod 644 $(find /path/to/base/dir -type f)
或者, 减少 chmod
生成 (适用于文件特别多的时候)
find /path/to/base/dir -type d -print0 | xargs -0 chmod 755
find /path/to/base/dir -type f -print0 | xargs -0 chmod 644
How to recursively chmod all directories except files?
戈登只会用gui改权限(x