Comportamento estranho quando sudo -u

0

Estou tentando configurar backups diários do meu banco de dados postgres. Para esse fim, criei um diretório / home / backups e, dentro dele, o diretório / home / backups / postgres. O proprietário de /home/backups/postgres é postgres , que também é o grupo do diretório.

Agora eu tento executar pg_dumpall > /home/backups/postgres/database.bak .

Quando executo sudo -u postgres pg_dumpall ... , recebo um erro de permissão negada. No entanto, quando executo sudo su postgres e, em seguida, pg_dumpall ... , isso funciona bem.

O que está acontecendo?

    
por zmbq 22.11.2014 / 23:35

1 resposta

1

Se você executar:

sudo -u postgres pg_dumpall > /home/backups/postgres/database.bak

Então pg_dumpall está sendo executado como esse usuário. Mas o redirecionamento ainda está sendo executado como você. É provavelmente de onde vem o permission denied , e não o comando. Se você redirecionar para /tmp/dump.out , isso funciona?

Caso contrário, você pode precisar fazer

sudo -u postgres bash -c "pg_dumpall > /home/backups/postgres/database.bak"
    
por 22.11.2014 / 23:53