背景
linux版本:centos 7.2
安装ossfs
1、下载安装包:
wget http://gosspublic.alicdn.com/ossfs/ossfs_1.80.6_centos7.0_x86_64.rpm
2、安装ossfs
sudo yum localinstall your_ossfs_package
3、配置账号访问信息。
将Bucket名称以及具有此Bucket访问权限的AccessKeyId/AccessKeySecret信息存放在/etc/passwd-ossfs文件中。注意这个文件的权限必须正确设置,建议设为640。
echo my-bucket:my-access-key-id:my-access-key-secret > /etc/passwd-ossfs
chmod 640 /etc/passwd-ossfs
4、将Bucket挂载到指定目录
ossfs my-bucket my-mount-point -ourl=my-oss-endpoint
挂载示例:将杭州地域名称为bucket-test的Bucket挂载到/tmp/ossfs目录下。
echo bucket-test:LTAIbZcdVCmQ****:MOk8x0y9hxQ31coh7A5e2MZEUz**** > /etc/passwd-ossfs
chmod 640 /etc/passwd-ossfs
mkdir /tmp/ossfs
ossfs bucket-test /tmp/ossfs -ourl=http://oss-cn-hangzhou.aliyuncs.com
【注意】如果您使用从阿里云购买的云服务器(ECS)来提供ossfs服务,您可以使用内网域名,在这个示例中您可以将OSS endpoint 改为oss-cn-hangzhou-internal.aliyuncs.com,这样可以节省流量费用。OSS的内网域名请参见访问域名和数据中心。
5、如果您不希望继续挂载此Bucket,您可以将其卸载。
fusermount -u /tmp/ossfs
问题:
本地目录挂载oss后,发现目录的权限属性变成了700,导致只有root账户能查看,其他账户无法看。
配置访问权限
ossfs挂载的目录访问权限默认为挂载点的所有者,即执行挂载命令的用户,其他用户无法访问。如果要修改默认的权限设置,例如允许其他用户或用户组访问挂载点,可以在运行ossfs的时候使用如下参数,做到期望的权限设置。
allow_other:赋予计算机上其他用户访问挂载目录的权限,但不包括目录内的文件。如果您要更改文件夹中的文件访问权限,请用chmod命令。该选项不需要设置选项值,如果需要启用,请直接添加-oallow_other选项。
uid:设置文件夹属于某个用户时填写的用户uid。
gid:设置文件夹属于某个用户时填写的用户gid。
mp_umask:用来设定挂载点的权限掩码,只有当allow_other选项设置后,该选项才生效,默认值为000。使用方法与umask命令使用方式一致。例如需要设置挂载点的权限为770,则增加-oallow_other -omp_umask=007;需要设置挂载点的权限为700,则增加-oallow_other -omp_umask=077。
配置示例:
允许所用的用户访问,即权限为777。
ossfs bucket_name mount_point -ourl=endpoint -oallow_other
只允许同组的用户访问,即权限为770。
ossfs bucket_name mount_point -ourl=endpoint -oallow_other -omp_umask=007
挂载时指定为其他用户和组,同时只允许同组的用户访问,即权限为770。
以www用户为例说明,先通过id命令获取用户的uid和gid信息,之后在挂载时指定uid和gid参数。
id wwwuid=1000(www) gid=1000(web)groups=1000(web)ossfs bucket_name mount_point -ourl=endpoint -oallow_other -ouid=1000-ogid=1000-omp_umask=007
挂载指定文件目录
ossfs除了可以把整个存储空间挂载到本地文件系统外,还可以通过设置前缀,把存储空间下的某个文件目录挂载到本地文件系统。命令格式如下:
ossfs bucket:/prefix mount_point -ourl=endpoint
通过这个方式挂载时,需要确保存储空间里存在${prefix}/这样一个对象。可以通过ossutil的stat命令查询该对象是否存在。
示例:将位于杭州地域的存储空间bucket-ossfs-test下的folder目录挂载到/tmp/ossfs-folder下。
ossfs bucket-ossfs-test:/folder /tmp/ossfs-folder -ourl=http://oss-cn-hangzhou.aliyuncs.com
开机自动挂载目录
将Bucket名称、AccessKeyID、AccessKeySecret等信息写入/etc/passwd-ossfs文件,并将文件权限修改为640。
配置步骤请参见快速安装。
设置开机自动挂载。
针对不同的系统版本,设置开机自动挂载ossfs的方式有所不同。
Ubuntu 14.04和CentOS 6.5系统版本通过fstab的方式自动挂载
在/etc/fstab中加入如下命令:
ossfs#bucket_namemount_pointfuse_netdev,url=url,allow_other 0 0
保存/etc/fstab文件。执行mount -a命令,如果没有报错,则说明设置正常。
上一步执行完成后,Ubuntu 14.04就能自动挂载了。CentOS 6.5还需要执行如下命令:
chkconfig netfs on