Postgresql 解决作为cron作业运行pgback时发现的权限问题
我在一台ubuntu主机上的cron作业设置中有一个权限错误,无法使用pgbackback进行数据库备份 错误[041]::无法打开/var/lib/postgresql/10/main/global/pgu控件 cron作业已设置为在我的管理员帐户下运行。我看到的唯一解决方法是将目录权限更改为/var/lib/postgresql/10/main,以允许我的管理员帐户进入,我不想这样做 显然,只有postgres用户可以访问这个目录,我发现不可能使用该用户设置cron作业。 i、 ePostgresql 解决作为cron作业运行pgback时发现的权限问题,postgresql,ubuntu,cron,Postgresql,Ubuntu,Cron,我在一台ubuntu主机上的cron作业设置中有一个权限错误,无法使用pgbackback进行数据库备份 错误[041]::无法打开/var/lib/postgresql/10/main/global/pgu控件 cron作业已设置为在我的管理员帐户下运行。我看到的唯一解决方法是将目录权限更改为/var/lib/postgresql/10/main,以允许我的管理员帐户进入,我不想这样做 显然,只有postgres用户可以访问这个目录,我发现不可能使用该用户设置cron作业。 i、 e 我还能做
我还能做什么?本手册中没有关于这方面的更多信息。仅允许PostgreSQL OS用户(
postgres
)及其组访问PostgreSQL数据目录。请从以下位置查看此代码:
/*
*检查目录是否具有正确的权限。如果没有,拒绝。
*
*仅允许两种可能的模式,0700和0750。后一种模式
*指示应允许在所有新的服务器上执行组读取/执行
*创建文件和目录。
*
*XXX在Windows上时暂时禁止检查,因为可能没有
*适当支持Unix-y文件权限。需要想出一个解决办法
*适用于Windows的合理检查。
*/
#如果!已定义(WIN32)&!已定义(uuu CYGWIN_uuuu)
if(统计模式和PG模式屏蔽组)
电子报告(致命,
(errcode(errcode\u对象\u未处于\u先决条件\u状态),
errmsg(“数据目录\%s\”具有无效权限”,
数据目录),
errdetail(“权限应该是u=rwx(0700)或u=rwx,g=rx(0750)”);
#恩迪夫
如果数据目录允许该组进入,则该组通常还具有pg_control
的权限
因此,如果您为该用户指定了postgres
”主用户组,则可以允许该用户进入
postgres
允许创建crontab
,前提是系统已相应配置
从man crontab
:
对于不同的用户,可以允许或不允许运行cron
作业。为此,请使用cron.allow
和cron.deny
文件。如果cron.allow
文件存在,则
必须在其中列出用户才能允许使用cron
如果cron.allow
文件不存在,但cron.deny
文件存在,则不能在中列出用户
cron.deny
文件以使用cron
。如果这两个文件都不存在,则只允许超级用户使用cron
。限制访问cron
是在/etc/security/access.conf
中使用PAM身份验证来设置用户,允许或不允许用户在中使用crontab
或修改系统cron
作业
/etc/cron.d/
目录
如果您能够在提示下
sudo-u postgres
,那么您也可以在cron
作业中执行此操作
您的问题并没有显示您试图运行的实际命令,而是简单地以postgres
的形式运行thiscondmand
sudo -u postgres thiscommand
如果您有su
但没有sudo
,则自适应是次要的,但并非完全微不足道:
su -c thiscommand postgres
使用
sudo
可以对作为另一个用户可以做的事情设置细粒度的限制,因此从这个意义上说,它比完全无限制su
更安全。在cron中添加了'postgres'。
su -c thiscommand postgres