我在使用S3FS时遇到问题。我正在使用
ubuntu@ip-x-x-x-x:~$ /usr/bin/s3fs --version
Amazon Simple Storage Service File System 1.71
并且我具有
/usr/share/myapp/s3fs-password
权限在600
中安装了密码文件。我已经成功安装了S3存储桶。
sudo /usr/bin/s3fs -o allow_other -opasswd_file=/usr/share/myapp/s3fs-password -ouse_cache=/tmp mybucket.example.com /bucket
我在
user_allow_other
中启用了/etc/fuse.conf
当我尝试以
root
的形式在存储桶中创建文件时,它起作用了。ubuntu@ip-x-x-x-x:~$ sudo su
root@ip-x-x-x-x:/home/ubuntu# cd /bucket
root@ip-x-x-x-x:/bucket# echo 'Hello World!' > test-`date +%s`.txt
root@ip-x-x-x-x:/bucket# ls
test-1373359118.txt
我检查了存储区
mybucket.example.com
的内容,并成功创建了文件。但是我很难以其他用户身份写入目录
/bucket
。root@ip-x-x-x-x:/bucket# exit
ubuntu@ip-x-x-x-x:~$ cd /bucket
ubuntu@ip-x-x-x-x:/bucket$ echo 'Hello World!' > test-`date +%s`.txt
-bash: test-1373359543.txt: Permission denied
我拼命尝试更改
777
test-1373359118.txt
。我可以写入文件ubuntu@ip-x-x-x-x:/bucket$ sudo chmod 777 test-1373359118.txt
ubuntu@ip-x-x-x-x:/bucket$ echo 'Test' > test-1373359118.txt
ubuntu@ip-x-x-x-x:/bucket$ cat test-1373359118.txt
Test
有趣的是,我可以在存储桶中创建目录,将chmod设置为
777
,然后在其中写入文件。ubuntu@ip-x-x-x-x:/bucket$ sudo mkdir -m 1777 test
ubuntu@ip-x-x-x-x:/bucket$ ls
test test-1373359118.txt
ubuntu@ip-x-x-x-x:/bucket$ cd test
ubuntu@ip-x-x-x-x:/bucket/test$ echo 'Hello World!' > test-`date +%s`.txt
ubuntu@ip-x-x-x-x:/bucket/test$ ls
test-1373360059.txt
ubuntu@ip-x-x-x-x:/bucket/test$ cat test-1373360059.txt
Hello World
但是后来我尝试
ubuntu@ip-x-x-x-x:~$ sudo chmod 777 /mybucket
chmod: changing permissions of '/mybucket': Input/output error
没用
最初,我想使用此
/bucket
目录存储位于几台EC2计算机上的LAMP堆栈中的大型文件,而该文件很少被访问。 (我认为使用此方法足够合适,而无需使用AWS PHP SDK创建特殊的处理库,但这不是重点。)因此,我可以使用
/mybucket
中的目录来存储文件。但是我很好奇,是否有办法允许整个/mybucket
传递给其他用户?
最佳答案
许可是旧版本S3FS的问题。升级到最新版本以使其正常运行。
正如问题本身和其他答案中已经说明的那样,在安装时,您将必须传递以下参数:-o allow_other
例:
s3fs mybucket:/ mymountlocation/ -o allow_other
另外,在执行此操作之前,请确保已在
/etc/fuse.conf
中启用以下功能:user_allow_other
默认情况下它被禁用;)
关于s3fs - 使用S3FS存储桶目录允许其他用户使用权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17544139/