pg_probackup icon indicating copy to clipboard operation
pg_probackup copied to clipboard

Можно ли реализовать опцию установки прав на каталоги бэкапа?

Open cherts opened this issue 4 years ago • 12 comments

Григорий, добрый день.

На текущий момент pg_probackup при создании каталогов ставит права 0700, а файлов 0600. Это конечно хорошо в плане безопасности, но есть такие user case при которых такие права вставляют палки в колеса, вот примеры:

  1. На бэкап-сервере все работает под юзером pgprobackup и группой pgprobackup и есть zabbix-agent, который работает под юзером zabbix, хочется чтобы zabbix-agent собирал данные о суммарном размере каталогов бэкапов, но увы он этого не может в виду отсутствия прав на каталоги. Вариант запуска zabbix-agent под юзером pgprobackup выглядит не секурным, думаю это понятно.
  2. На бэкап-сервере все работает под юзером pgprobackup и группой pgprobackup, есть группа юзеров которым хочется дать права на работу с бэкапом конкретного репа, но увы при текущих правах это не реально, приходиться делать костыль в виде смены прав вслед за пройденным бэкапом.

Выставление umask 0007 не дает результата.

Возможно ли реализовать в pg_probackup опцию которой можно регулировать права на создаваемые каталоги и файлы?

Спасибо.

cherts avatar Feb 20 '21 13:02 cherts

Добрый день. Вы хотите иметь возможность задавать маску доступа к файлам при создании бэкапа, верно?

gsmolk avatar Feb 20 '21 13:02 gsmolk

Добрый день. Вы хотите иметь возможность задавать маску доступа к файлам при создании бэкапа, верно?

Да, все верно. Реализацию umask, по сути.

cherts avatar Feb 20 '21 13:02 cherts

Либо чтобы учитывалась текущая umask. Наверное так будет правильней.

cherts avatar Feb 20 '21 13:02 cherts

umask - это ограничитель, мы не можем не принимать его во внимание, за нас это делает libc, когда мы зовём mkdir.

gsmolk avatar Feb 20 '21 14:02 gsmolk

umask - это ограничитель, мы не можем не принимать его во внимание, за нас это делает libc, когда мы зовём mkdir.

То есть после создания каталога через mkdir или файла Вы меняете на нем права, так? Тогда логично предусмотреть механизм отключения принудительной установки прав и дать возможность полагаться на umask.

cherts avatar Feb 20 '21 15:02 cherts

То есть после создания каталога через mkdir или файла Вы меняете на нем права, так?

Мы при создании директории задаем права: int mkdir(const char *pathname, mode_t mode); https://linux.die.net/man/2/mkdir

дать возможность полагаться на umask.

Каким образом? По умолчанию создавать директории и файлы с правами 777 и 666 ?

gsmolk avatar Feb 20 '21 15:02 gsmolk

Каким образом? По умолчанию создавать директории и файлы с правами 777 и 666 ?

Я не программист, но что-то мне подсказывает, что заданные в pg_probackup.h

#define DIR_PERMISSION		(0700)
#define FILE_PERMISSION		(0600)

можно вынести в настройки командной строки или в файл конфигурации или поменять их на более дружественные

#define DIR_PERMISSION		(0770)
#define FILE_PERMISSION		(0660)

cherts avatar Feb 20 '21 18:02 cherts

можно вынести в настройки командной строки

Да, так и планируем сделать.

gsmolk avatar Feb 20 '21 18:02 gsmolk

Я к тому, что umask - это про отрезание нежелательных прав, а не про добавление.

gsmolk avatar Feb 20 '21 18:02 gsmolk

можно вынести в настройки командной строки

Да, так и планируем сделать.

Чудесно, буду очень ждать. Спасибо!

cherts avatar Feb 20 '21 18:02 cherts

@gsmol приветствую, не подскажите когда планируется данный функционал? Очень страдаем, что аж стали использовать свою кастомную версию, в которой права на заархивированные wal ставятся 660 Пофиксили тут Спасибо.

cherts avatar Apr 21 '22 19:04 cherts

Добрый день! Задача не выглядит сложной, постараемся поднять приоритет

gsmolk avatar Jun 18 '22 15:06 gsmolk