使用非ROOT用户挂载ossfs
公司的应用服务器迁移,考虑到安全问题要求使用非root用户启动应用。因此需要把阿里云oss挂载给非root用户
挂载文件系统
下面,我们以 support 账号为例子。看看如何挂载 ossfs 给 support 账号
- 进入 阿里云帮助中心 下载最新的ossfs安装包
- 安装依赖以及下载的安装包
# 安装依赖包 yum install -y fuse fuse-libs rpm -ivh ossfs_1.91.1_centos7.0_x86_64.rpm - 配置账号访问信息
echo BucketName:yourAccessKeyId:yourAccessKeySecret > /etc/passwd-ossfs chmod 640 /etc/passwd-ossfs chown support:support /etc/passwd-ossfs - 查看 support 用户的
UID和GID并记录下来[root@localhost ~]# id support uid=1000(support) gid=1000(support) groups=1000(support) - 编辑
/etc/fuse.conf, 取消user_allow_other前的注释 - 切换到 support 用户,挂载 ossfs
到这里我们其实已经可以正常使用该存储空间了,为了确保开机后能自动挂载,我们还需要添加开机自动挂载脚本。# 参数说明 # $Bucket Bucket名 # $PATH 实际挂载的路径 # $URL Bucket的Endpoint # $UID support用户的uid,这里为 1000 # $GID support用户的gid,这里为 1000 # $File passwd-ossfs文件路径,这里为 /etc/passwd-ossfs。 /usr/local/bin/ossfs $Bucket $Path -ourl=$URL -ouid=$UID -ogid=$GID -o passwd_file=$File -oallow_other -o mp_umask=022
设置开机启动
以下的操作以 root 执行,还是以挂载文件给 support 用户为例子。
- 创建
/etc/init.d/ossfs启动脚本(请自行替换文件中的参数)#! /bin/bash # # ossfs Automount Aliyun OSS Bucket in the specified direcotry. # # chkconfig: 2345 90 10 # description: Activates/Deactivates ossfs configured to start at boot time. # 开机挂载oss,采用此种方式挂载避免修改/etc/fstab ,导致挂载失败而系统无法启动。 # 加 -o allow_other 允许非root用户操作避免因权限问题导致无法操作oss目录 su - support -c "/usr/local/bin/ossfs $Bucket $Path -ourl=$URL -ouid=$UID -ogid=$GID -o passwd_file=$File -oallow_other -o mp_umask=022" - 设置执行权限和开机启动
设置完成后重启服务器可以看到oss已经正常挂载了,并且 root 用户和 support 用户均能正常访问chmod +x ossfs chkconfig ossfs on
卸载文件系统
- 使用root用户卸载挂载目录(以/data/ossfs为例)
umount -l /data/ossfs - 使用普通用户卸载挂载目录(以/data/ossfs为例)
fusermount /data/ossfs