5 ответов
Для версии 1.6 это выглядит так.
Если возникает ошибка:
ошибка получения мандатных атрибутов на сервере для пользователя «replicator», ошибка 13 — Отказано в доступе
Значит не хватает прав доступа к каталогам. Нужно:
usermod -a -G shadow postgres
setfacl -d -m u:postgres:r /etc/parsec/macdb
setfacl -R -m u:postgres:r /etc/parsec/macdb
setfacl -m u:postgres:rx /etc/parsec/macdb
setfacl -d -m u:postgres:r /etc/parsec/capdb
setfacl -R -m u:postgres:r /etc/parsec/capdb
setfacl -m u:postgres:rx /etc/parsec/capdb
Если возникает ошибка:
ошибка получения мандатных атрибутов на сервере для пользователя «replicator», ошибка 2 — Нет такого файла или каталога
Нужно инициализировать мандатные права у вашего пользователя:
usermac -z пользователь
Настройка «установить в файле /etc/parsec/mswitch.conf, параметр zero_if_notfound в yes» работает только для астры без домена ald. Если на астре настроена авторизаиця через домен, то после parsec запрашивается ald, если там одноименного пользователя тоже нет — то запрашивается kerberos, а поскольку он не настроен — то в postgres возвращается ошибка, и пользователь не подключается. В логе постгреса ошибки:
2020-10-07 18:32:03 MSK [3665-1] my_user@my_user СООБЩЕНИЕ: Kerberos krb5_get_init_creds_keytab возвратил ошибку -1765328378
postgres: Client not found in Kerberos database while getting server initial credentials keytab «FILE:/etc/postgresql-common/krb5.keytab»
2020-10-07 18:32:03 [2684] АУДИТ: ОТКАЗ, Подключение, [local], «my_user», SU = «неопределено» (0), CU = «неопределено» (0): ошибка получения мандатных атрибутов на сервере для пользователя «my_user», ошибка 25 — Неприменимый к данному устройству ioctl
2020-10-07 18:32:03 MSK [3665-2] my_user@my_user СБОЙ: ошибка получения мандатных атрибутов на сервере для пользователя «my_user»
Как в таком случае заставить постгрес вести себя согласно доке и разрешить подключать пользователей, которые есть только в самом постгресе?
setfacl -d -m u:postgres:r /etc/parsec/macdb
Вот это всё да, только без пробела — «u:postgres:r». Спасибо за ответ! Убивался с этими правами на каталоги довольно долго сейчас при переходе на новую версию.
И тем не менее. Господа, а, видимо, кто-то уже сталкивался со всем этим делом на Astra Linux 1.6 Smolensk?
На Astra Linux 1.5 при желании назначить пользователя, ассоциированного с ролью входа для PostgreSQL работало вот так:
pdp-ulbls -l 0:0 my_db_user
setfacl -R -m u:postgres:rx /etc/parsec/macdb
setfacl -R -m u:postgres:rx /etc/parsec/capdb
А теперь даже pdpl-user я вызывал (pdp-ulbls -l 0:0 -c 0:0x1) и как-то не захотело оно, применил вот этот, обсуждаемый рецепт, теперь надо наш deb-пакет править. Туда что, вот всю эту пачку команд загонять? Это нормально для Astra? А то выглядит костылём.