sudo -u 时出现奇怪的行为

sudo -u 时出现奇怪的行为

我正在尝试设置我的 postgres 数据库的每日备份。为此,我创建了一个 /home/backups 目录,并在其中创建了 /home/backups/postgres 目录。 的所有者/home/backups/postgrespostgres,也是目录的组。

现在我尝试跑步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"

相关内容