gpt4 book ai didi

postgresql - 解决将 pgbackrest 作为 cron 作业运行时发现的权限问题

转载 作者:行者123 更新时间:2023-12-04 19:10:07 24 4
gpt4 key购买 nike

我在 cron 作业设置中的 ubuntu 主机上出现权限错误,以使用 pgbackrest 进行数据库备份。

错误 [041]: : 无法打开/var/lib/postgresql/10/main/global/pg_control

cron 作业设置为在我的管理员帐户下运行。我看到解决此问题的唯一选择是将目录权限更改为/var/lib/postgresql/10/main 以允许我的管理员帐户进入,我不想这样做。

显然只有 postgres 用户可以访问这个目录,我发现使用该用户设置 cron 作业是不可能的。
IE。

postgres@host110:~/$ crontab -e
You (postgres) are not allowed to use this program (crontab)
See crontab(1) for more information

我还可以做些什么? pgbackrest 手册中没有关于此的更多信息。

最佳答案

只有 PostgreSQL 操作系统用户 ( postgres ) 及其组被允许访问 PostgreSQL 数据目录。请参阅 the source 中的此代码:

    /*
* Check if the directory has correct permissions. If not, reject.
*
* Only two possible modes are allowed, 0700 and 0750. The latter mode
* indicates that group read/execute should be allowed on all newly
* created files and directories.
*
* XXX temporarily suppress check when on Windows, because there may not
* be proper support for Unix-y file permissions. Need to think of a
* reasonable check to apply on Windows.
*/
#if !defined(WIN32) && !defined(__CYGWIN__)
if (stat_buf.st_mode & PG_MODE_MASK_GROUP)
ereport(FATAL,
(errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE),
errmsg("data directory \"%s\" has invalid permissions",
DataDir),
errdetail("Permissions should be u=rwx (0700) or u=rwx,g=rx (0750).")));
#endif

如果数据目录允许该组进入,该组通常也将拥有 pg_control 的权限。 .

因此,如果您给它 postgres,您可以允许该 pgBackRest 用户进入。 ' 主要用户组。
postgres允许创建 crontab如果系统进行了相应的配置。

来自 man crontab :

Running cron jobs can be allowed or disallowed for different users. For this purpose, use the cron.allow and cron.deny files. If the cron.allow file exists, a user must be listed in it to be allowed to use cron If the cron.allow file does not exist but the cron.deny file does exist, then a user must not be listed in the cron.deny file in order to use cron. If neither of these files exists, only the super user is allowed to use cron. Another way to restrict access to cron is to use PAM authentication in /etc/security/access.conf to set up users, which are allowed or disallowed to use crontab or modify system cron jobs in the /etc/cron.d/ directory.

关于postgresql - 解决将 pgbackrest 作为 cron 作业运行时发现的权限问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58084901/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com