我已经安装了 s3fs 并使用 aws S3 创建了一个存储桶。我可以写入它。但是当我将文件上传到存储桶并尝试读取它时,我收到以下错误。
您没有打开该文件所需的权限。
我试过了chmod 777
,但没有权限,我试过了 sudo,但仍然没有权限。
我通过输入以下行来安装我的驱动器:
s3fs babylon ~/MyMount -o passwd_file=~/.passwd-s3fs
我如何获得访问文件的权限?使用 ls -l 查看它们,我看到以下内容:
~/MyMount$ ls -l
total 5
---------- 1 root root 2272 Mar 25 21:47 lab8.cpp
-rw-rw-r-- 1 kaz kaz 16 Mar 24 22:44 nextday.txt
---------- 1 root root 586 Mar 20 13:27 sample.c
-rw-rw-r-- 1 kaz kaz 6 Mar 26 01:29 temp.txt
答案1
因为我找到了解决这个问题的方法,所以我感到有义务与大家分享,因为我寻求的是帮助。
对我有用的是立即通过 mount 命令修复我的权限,如下所示:
s3fs babylon ~/MyMount -o passwd_file=~/.passwd-s3fs -o umask=0000
Umask 的工作原理类似于减法器,因此如果所有值为 0,它将把值设置为 777。当我通过自己编写的脚本打开存储桶时,我看到以下内容:
-rwxrwxrwx 1 kaz kaz 0 Mar 26 03:11 drfg.txt
-rwxrwxrwx 1 kaz root 2272 Mar 26 19:48 lab8.cpp
-rwxrwxrwx 1 kaz kaz 16 Mar 24 22:44 nextday.txt
-rwxrwxrwx 1 kaz root 814493 Mar 26 19:48 Refactoring - A good example.pdf
-rwxrwxrwx 1 root root 522010 Mar 26 20:06 revy_3.jpg
-rwxrwxrwx 1 kaz root 586 Mar 26 19:49 sample.c
-rwxrwxrwx 1 kaz kaz 6 Mar 26 01:29 temp.txt
我希望这可以帮助那些为 s3fs 而苦苦挣扎的人。
答案2
正如您所看到的:
---------- 1 root root 2272 Mar 25 21:47 lab8.cpp
-rw-rw-r-- 1 kaz kaz 16 Mar 24 22:44 nextday.txt
---------- 1 root root 586 Mar 20 13:27 sample.c
-rw-rw-r-- 1 kaz kaz 6 Mar 26 01:29 temp.txt
这些文件的所有者是root
,因此您必须更改这些文件的所有权。
要更改目录及其中任何文件的所有权,请递归执行:
chown $USER -R /path/to/directory
就你的情况来说应该是sudo chown $USER -R ~/MyMount
答案3
我在打开文件时遇到错误。我通过清除 /tmp/cache 文件夹解决了这个问题。