LINUX.ORG.RU
решено ФорумAdmin

Правильный способ бэкапа PostgreSQL (или sudo без пароля для юзера А команды Б от имени Д)

 ,


1

1

Исходная проблема - получить на локальной машине полный дамп баз удаленного сервера.

Вариант решения: разрешить непривилегированному пользователю подключение по ssh, далее выполнить pg_dumpall.

И тут два варианта:

  1. Создать текущему пользователю что-то вроде безопасного read-only аккаунта на Postgres
  2. Разрешить ему выполнить pg_dumpall от имени postgres

Так как администрировать Postgres не умею, решил попробовать вариант 2 и добавить в visudo строку:

manager ALL= NOPASSWD: su -c pg_dumpall postgres

Но visudo ругается на некорректный синтаксис.

Посему вопрос: если описанные метод корректен, в чем синтаксическая ошибка правила для sudo и каков должен быть правильный вариант? если описанные метод некорректен, то поделитесь советом как правильно подойти к решению данной задачи.

Разреши manager делать sudo -u postgres pg_dumpall, это будет как-то так:

<user> ALL=(postgres) /usr/bin/pg_dumpall
Для пользователя postgres в pg_hba.conf должно быть прописано
local all postgres trust

selivan ★★★
()

manager ALL=(ALL) NOPASSWD:/bin/su -c pg_dumpall postgres

DRVTiny ★★★★★
()
Ответ на: комментарий от selivan

Благодарю! «<user> ALL=(postgres)» - как раз то, что надо!

omegatype ★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.