2

我已经使用 S3FS 一段时间了(自 2010+ 以来)并且由于我需要使用“允许所有用户读/写”而被困在 v1.61。我将它用作“全局文件共享”(SAN)并在 10 多台服务器上安装(/etc/fstab)相同的 3 个存储桶。不同的服务(用户)从中读取/写入,主要是 Nginx/PHP-FPM(uid=33/gid=33 的 www-data),还有 automysqlbackup 和 git,因此使用“public-read-write”访问很方便到挂载点

我想要做的是升级到最新的 1.74 版本(由于 DO VPS 上的内存峰值,s3fs 占用了 500Mb 内存中的 480Mb)但文件权限有问题。我还发现来自 1.74 挂载的任何写入(目录和文件)都不会显示在 1.61 挂载上,所以我必须一次升级所有服务器(这很好)

v1.61 /etc/fstab 配置(安装之一)

s3fs#s3fs-db.example.com /mnt/s3fs-db fuse use_cache=/tmp,allow_other 0 0

v1.74+ /etc/fstab 配置

s3fs#s3fs-db.example.com /mnt/s3fs-db fuse use_cache=/tmp,allow_other,default_acl=public-read-write,url=https://aws.amazon.com 0 0

注意:还没有 uid= 和 gid=

当 1.74+ 挂载目录时,权限是drwxr-x-r-x当以 root (/etc/fstab) 挂载时使 www-data 用户无法写入它。

问题:

  • 有没有办法在 1.74+ 版本上模拟 1.61 的功能......我似乎无法弄清楚如何获得正确的设置。default_acl=public-read-write 似乎是正确的方法。
  • 我应该使用 uid= 和 gid= ,然后在我挂载它们之后在所有挂载点上执行 chmod -R 777 吗?我期待 /etc/fstab 为我做这件事
  • 我是否应该查看 s3ql 或 s3backer 或 riofs 以了解我正在做的事情(SAN-ish)?

其他注意事项:

谢谢,克里斯

4

1 回答 1

0

这里有几种不同的权限:

  • -o default_acl控制来自 S3 服务器的访问控制。将此设置为public-read-write将允许非 s3fs工具读取和写入对象。
  • -o umask允许为挂载点内的对象设置掩码
  • -o mp_umask允许设置挂载点目录的掩码
  • -o allow_other允许非挂载用户访问挂载路径,但不能访问下面的对象

如果您设置-o umask=0022这将允许其他用户读取文件但不能写入它们。

于 2019-09-05T03:50:21.647 回答