我正在尝试设置我的 postgres 数据库的每日备份。为此,我创建了一个 /home/backups 目录,并在其中创建了 /home/backups/postgres 目录。 的所有者/home/backups/postgres
是postgres
,也是目录的组。
现在我尝试跑步pg_dumpall > /home/backups/postgres/database.bak
。
当我运行时,sudo -u postgres pg_dumpall ...
出现权限被拒绝错误。但是,当我运行sudo su postgres
然后时pg_dumpall ...
,它运行正常。
到底是怎么回事?
答案1
如果你运行:
sudo -u postgres pg_dumpall > /home/backups/postgres/database.bak
然后pg_dumpall
以该用户身份运行。但重定向仍以您的身份运行。这可能是您的来源permission denied
,而不是命令。如果您重定向到,/tmp/dump.out
这有效吗?
否则你可能需要做
sudo -u postgres bash -c "pg_dumpall > /home/backups/postgres/database.bak"