2

我创建了一个标准的 Google 存储桶,我试图将它安装在 CentOS Linux 计算引擎实例中,但权限似乎不允许我授予除 root 用户以外的用户(可以读取和写入使用 gcsfuse 安装后的存储位置)。如果我尝试以非 root 用户身份挂载,gcsfuse 命令说它成功完成,但尝试读取或写入存储桶会导致 I/O 错误。我很感激任何具有安装在 Linux 实例中的 Google 存储桶经验的人的指导。

4

1 回答 1

2

这是 GCSFuse 的预期行为,您可以使用 -o allow_other 标志覆盖权限,如此处所述

权限和所有权

索引节点

默认情况下,gcsfuse 文件系统中的所有 inode 都显示为由 gcsfuse 进程本身的 UID 和 GID 拥有,即挂载文件系统的用户。所有文件的权限位为 0644,所有目录的权限位为 0755(但有关其他用户使用的问题,请参见下文)。不支持更改 inode 模式(使用 chmod(2) 或类似方法),并且会默默忽略更改。

这些默认值可以用--uid、--gid、--file-mode 和--dir-mode 标志覆盖。

保险丝

fuse 内核层本身将文件系统访问限制为挂载用户(参见 fuse.txt)。因此,无论配置的 inode 权限是什么,默认情况下,其他用户在尝试访问文件系统时都会收到“权限被拒绝”错误。这包括 root 用户。

这可以通过设置 -o allow_other 来覆盖,以允许其他用户访问文件系统。当心!可能存在安全隐患。

于 2016-10-06T14:51:11.883 回答