ossfs如何通过非root用户挂载Bucket到ECS实例

更新时间:
复制 MD 格式

概述

本文主要介绍ossfs如何通过www用户挂载BucketECS实例。

详细描述

参考以下步骤,通过www用户挂载Bucket:

  1. 安装ossfs并创建/etc/passwd-ossfs文件,详情请参见快速安装

  2. 执行以下命令,修改配置文件的权限。

    chmod 640 passwd-ossfs

  3. 执行以下命令,获取ossfs的安装路径。

    which ossfs

  4. 执行以下命令,获取www用户的UIDGID。

    说明

    说明:本文以www用户为例进行介绍,如果没有该用户,使用useradd命令创建即可。

    id www

  5. 执行如下命令,修改配置文件的属主和属组(需要root权限)。

    chown www:root /etc/passwd-ossfs

  6. 依次执行以下命令,使用www用户创建挂载目录。

    说明

    本文以test1目录为例进行介绍。

    su - www
    mkdir test1

  7. 执行以下命令,通过www用户挂载Bucket。

    /usr/local/bin/ossfs $Bucket test1 -ourl=$URL -ouid=$UID -ogid=$GID -o passwd_file=$File
    说明
    • $URLBucketEndpoint。

    • $Filepasswd-ossfs文件路径,例如/etc/passwd-ossfs

    • $UID$GID为第4步记录的UIDGID。

  8. 执行以下命令,确认www用户挂载Bucket成功。

    ls -l test1

  9. 如果需要卸载挂载目录,请参考以下步骤:

    • 使用root用户执行以下命令,卸载挂载目录。

      umount /test1

    • root用户执行以下命令,卸载挂载目录。

      fusermount -u /test1

说明

ossfs 挂载完成后,挂载点的 UID 和 GID 由挂载时指定的参数决定,挂载期间固定不可变更。对挂载点执行chown会返回Input/output error,这是 FUSE 文件系统的预期行为,不表示挂载异常。如需更换访问挂载点的用户身份,必须先卸载当前挂载,再以目标用户的 UID 和 GID 重新挂载。

从 root 用户切换为非 root 用户

依次执行以下步骤,将挂载点的属主从 root 用户切换为非 root 用户。

  1. 执行以下命令,获取目标用户的 UID 和 GID。

    id <用户名>
  2. 卸载当前挂载。非 root 用户执行以下命令:

    fusermount -u test1

    root 用户执行以下命令:

    umount test1
  3. 执行以下命令,以目标用户的 UID 和 GID 重新挂载。

    ossfs $Bucket test1 -ourl=$URL -ouid=$UID -ogid=$GID -o passwd_file=$File
  4. 执行以下命令,验证挂载点的属主是否已变更为目标用户。

    stat -c '%u:%g' test1
说明

ossfs 2.0 不通过命令行-o uid-o gid参数设置挂载点属主,而是在配置文件ossfs2.conf中通过-uid-gid参数设置。ossfs 1.0 沿用本文所述的-o uid-o gid命令行参数方式。

相关文档

  • 更多关于ossfs的信息请参见概述

  • 更多关于ossfs的常见问题请参见常见问题

适用于

  • 对象存储OSS