批量修改 AWS S3 挂载目录下文件权限

💡 原文中文,约2700字,阅读约需7分钟。
📝

内容提要

在服务器上挂载的 S3 类似对象存储中,由于文件数量过多,需将文件权限改为 644,导致系统负载高。解决方案是修改挂载参数,设置 umask=022,并指定 uid 和 gid。重新挂载后,文件权限正常,但新建文件的所有者由挂载参数决定。修改挂载会影响 Docker 容器,需重启容器以避免错误。权限信息存储在 S3 对象的元数据中。

🎯

关键要点

  • 服务器上挂载了 S3 类似的对象存储,用于存放网站的图片。
  • 需要将挂载目录下的所有文件权限改为 644,但系统负载很高。
  • S3 是对象存储,执行 chmod 时需为每个文件发送网络请求,导致高负载。
  • 解决方案是修改挂载参数,添加 umask=022,并指定 uid 和 gid。
  • 需停掉相关 Docker 容器,卸载目录,修改挂载参数,重新挂载,再启动 Docker 容器。
  • umask 的作用是规定“不允许”出现哪些权限,权限通过从“满权限”中减去 umask 的值计算。
  • 新建文件的所有者由挂载参数决定,umask 只影响权限,不影响所有者。
  • 修改挂载参数后重新挂载会影响 Docker 容器,需重启容器以避免错误。
  • 权限信息存储在 S3 对象的元数据中,包括存储权限位、所有者的 UID 和组的 GID。
➡️

继续阅读