备份失败是否由于权限问题?

我在备份时遇到了错误:

[2020-10-17 23:40:29] EXCEPTION: lib/discourse.rb:92:in `exec': tar: /var/www/discourse/public/backups/default/bringing-data-to-life-2020-10-17-234010-v20200916085541.tar: Cannot open: Permission denied
tar: Error is not recoverable: exiting now

我已登录容器,进入该目录并确认 root 用户可以创建文件。

我将权限改为 777 后,备份成功执行。尽管这是一个私有站点,但我不太愿意在一个可能公开访问的链接上保留 777 权限。

备份进程是否以不同于 root 的用户身份运行?

希望如此。尝试将其所有权更改为 discourse 用户。

我刚刚在 Docker 容器中测试了一下,一切似乎都没问题:

root@gerhard-test-app:/shared/backups/default# ls -la
total 29068
drwxr-xr-x 2 discourse www-data     4096 Oct 18 09:51 .
drwxr-xr-x 3 discourse www-data     4096 Sep 18 15:31 ..
-rw-r--r-- 1 discourse www-data  7606150 Oct 18 09:48 discourse-test-site-2020-10-18-094806-v20201009190955.tar.gz
-rw-r--r-- 1 discourse discourse 7627995 Oct 18 09:51 discourse-test-site-2020-10-18-095138-v20201009190955.tar.gz

第一个备份是通过 Web 界面创建的。第二个备份是使用 discourse backup 命令创建的。

/var/www/discourse/public/backups 是一个符号链接:

root@gerhard-test-app:/var/www/discourse/public# ls -la backups
lrwxrwxrwx 1 root root 15 Oct 18 09:42 backups -> /shared/backups