GitLab备份与还原过程中的权限问题

在CentOS中对GitLab进行备份(Backup)与还原(Restore)时,分别遇到了权限相关的问题。
系统版本:CentOS 6.5
GitLab版本:gitlab-ce-8.0.2-ce.1.el6.x86_64

备份时,执行

gitlab-rake gitlab:backup:create

得到错误提示

Errno::EACCES: Permission denied @ dir_s_mkdir - /var/opt/gitlab/backups

没有执行mkdir的权限。

而在Restore时,执行

gitlab-rake gitlab:backup:restore BACKUP=1393513186

其中1393513186为backup的时间戳编号,会在gitlab_backup.tar文件的文件名体现。

又遇到大量的mkdir、找不到文件/文件夹错误。

而我是用root用户登录的,联想可能是相关的文件夹权限有问题。
backups是我使用mkdir命令创建的,并没有特别分配权限,于是使用 ls -al 命令查看backups文件夹的权限。
发现值为

drwxr-xr-x. 2 root root 4096 2月 16 10:08 backups

判断是执行实际操作的gitlab相关用户:git,没有得到足够的权限。依次执行命令:

root@myserver:~# mkdir /var/opt/gitlab/backups

root@myserver:~# chown git /var/opt/gitlab/backups

root@myserver:~# chmod 700 /var/opt/gitlab/backups

笔者之前使用了 rm -rf backups 命令移除整个backups文件夹,所以需要再次mkdir。如果该文件夹已经存在,就不需要mkdir了。

以上命令执行完成后,再次 ls -al
发现backups的权限已经发生改变了:

drwx------. 2 git root 4096 2月 16 10:18 backups

再次执行backup或者restore,已经可以正常运行,问题解决。

Reference:issue644 - Permissions issue when creating backups

你可能感兴趣的:(GitLab备份与还原过程中的权限问题)