我已经创建了一个标准的 Google 存储桶,我试图将其安装在 CentOS Linux 计算引擎实例中,但权限似乎不允许我向 root 用户(可以读取和写入)以外的用户授予访问权限使用 gcsfuse 安装后的存储位置)。如果我尝试以非 root 用户身份挂载,gcsfuse 命令会显示已成功完成,但尝试读取或写入存储桶会导致 I/O 错误。我非常感谢任何具有在 Linux 实例中安装 Google 存储桶经验的人的指导。
这是 GCSFuse 的预期行为,您可以使用 -o allowed_other 标志覆盖权限,如上所述here https://github.com/GoogleCloudPlatform/gcsfuse/blob/master/docs/semantics.md:
权限和所有权
Inodes
默认情况下,gcsfuse 文件系统中的所有 inode 显示为 gcsfuse 进程本身(即挂载该文件系统的用户)的 UID 和 GID 所有。所有文件都具有权限位 0644,所有目录都具有权限位 0755(但有关其他用户使用的问题请参阅下文)。不支持更改 inode 模式(使用 chmod(2) 或类似方法),并且更改将被默默忽略。
这些默认值可以使用 --uid、--gid、--file-mode 和 --dir-mode 标志覆盖。
Fuse
保险丝内核层本身限制安装用户的文件系统访问(参见fuse.txt)。因此,无论配置的 inode 权限如何,默认情况下其他用户在尝试访问文件系统时都会收到“权限被拒绝”错误。这包括 root 用户。
可以通过设置 -o allowed_other 来覆盖此设置,以允许其他用户访问文件系统。当心!可能存在安全隐患。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)