如何使用 S3FS 挂载 AWS s3 以允许任何用户完全访问
How to mount AWS s3 using S3FS to allow full access to any user
我已经在 AWS 的 Centos 7 上安装了最新的 s3fs,可以挂载我的 S3 存储桶并从中读取。我的要求是允许任何用户读取、写入、创建和删除文件和文件夹,包括其他人的文件和文件夹 - 基本上是免费的文件和文件夹。
在 fstab 中,我有这个:
my-bucket /mnt/my-bucket fuse.s3fs _netdev,url=https://s3-eu-west-1.amazonaws.com,umask=0000,allow_other,rw,gid=0,uid=0 0 0
当我尝试以 centos 用户创建一个名为 test 的新文件夹时,出现以下错误:
mkdir:无法创建目录“test”:不允许操作
我尝试将挂载点 /mnt
更改为 777(默认为 755)。我还在 fuse.conf
文件中取消注释 # user_allow_other
。都没有用。
满足要求的 fstab 中正确的 umask、gid 和 uid(以及其他设置)是什么?
您的某些选项是不必要的。我成功地通过一个用户安装了一个桶:
s3fs bucket /path -f -o allow_other -o umask=000
并用第二个用户创建了一个目录:
mkdir /path/dir
对于看到访问被拒绝类型错误的任何其他人,在这种情况下的答案与命令行无关 - 如上所述。答案是 AWS KMS (CMK) 加密已应用于存储桶,但 S3FS 用户没有读取密钥的读取权限。只需通过 IAM 策略授予 AWS 用户对 KMS 密钥的读取权限即可修复它。
我已经在 AWS 的 Centos 7 上安装了最新的 s3fs,可以挂载我的 S3 存储桶并从中读取。我的要求是允许任何用户读取、写入、创建和删除文件和文件夹,包括其他人的文件和文件夹 - 基本上是免费的文件和文件夹。
在 fstab 中,我有这个:
my-bucket /mnt/my-bucket fuse.s3fs _netdev,url=https://s3-eu-west-1.amazonaws.com,umask=0000,allow_other,rw,gid=0,uid=0 0 0
当我尝试以 centos 用户创建一个名为 test 的新文件夹时,出现以下错误: mkdir:无法创建目录“test”:不允许操作
我尝试将挂载点 /mnt
更改为 777(默认为 755)。我还在 fuse.conf
文件中取消注释 # user_allow_other
。都没有用。
满足要求的 fstab 中正确的 umask、gid 和 uid(以及其他设置)是什么?
您的某些选项是不必要的。我成功地通过一个用户安装了一个桶:
s3fs bucket /path -f -o allow_other -o umask=000
并用第二个用户创建了一个目录:
mkdir /path/dir
对于看到访问被拒绝类型错误的任何其他人,在这种情况下的答案与命令行无关 - 如上所述。答案是 AWS KMS (CMK) 加密已应用于存储桶,但 S3FS 用户没有读取密钥的读取权限。只需通过 IAM 策略授予 AWS 用户对 KMS 密钥的读取权限即可修复它。