在CentOS中對(duì)GitLab進(jìn)行備份(Backup)與還原(Restore)時(shí)的妖,分別遇到了權(quán)限相關(guān)的問(wèn)題漂洋。
系統(tǒng)版本:CentOS 6.5
GitLab版本:gitlab-ce-8.0.2-ce.1.el6.x86_64
備份時(shí)疙教,執(zhí)行
gitlab-rake gitlab:backup:create
得到錯(cuò)誤提示
Errno::EACCES: Permission denied @ dir_s_mkdir - /var/opt/gitlab/backups
沒(méi)有執(zhí)行mkdir的權(quán)限破花。
而在Restore時(shí)得问,執(zhí)行
gitlab-rake gitlab:backup:restore BACKUP=1393513186
其中1393513186為backup的時(shí)間戳編號(hào)砍聊,會(huì)在gitlab_backup.tar文件的文件名體現(xiàn)页藻。
又遇到大量的mkdir桨嫁、找不到文件/文件夾錯(cuò)誤。
而我是用root用戶登錄的份帐,聯(lián)想可能是相關(guān)的文件夾權(quán)限有問(wèn)題璃吧。
backups是我使用mkdir命令創(chuàng)建的,并沒(méi)有特別分配權(quán)限废境,于是使用 ls -al 命令查看backups文件夾的權(quán)限畜挨。
發(fā)現(xiàn)值為
drwxr-xr-x. 2 root root 4096 2月 16 10:08 backups
判斷是執(zhí)行實(shí)際操作的gitlab相關(guān)用戶:git,沒(méi)有得到足夠的權(quán)限噩凹。依次執(zhí)行命令:
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 命令移除整個(gè)backups文件夾巴元,所以需要再次mkdir。如果該文件夾已經(jīng)存在驮宴,就不需要mkdir了逮刨。
以上命令執(zhí)行完成后,再次 ls -al
發(fā)現(xiàn)backups的權(quán)限已經(jīng)發(fā)生改變了:
drwx------. 2 git root 4096 2月 16 10:18 backups
再次執(zhí)行backup或者restore堵泽,已經(jīng)可以正常運(yùn)行修己,問(wèn)題解決。
Reference:issue644 - Permissions issue when creating backups