|
|||||||
Решение проблемы "PostgreSQL: ошибка получения мандатных атрибутов"
Время создания: 11.06.2024 16:34
Текстовые метки: astra, linux, астра, postgresql, ошибка, мандатные, атрибуты, права, доступа
Раздел: Компьютер - Linux - Дистрибутив Astra Linux
Запись: xintrea/mytetra_syncro/master/base/1718112859wk4rx4se88/text.html на raw.github.com
|
|||||||
|
|||||||
Вопрос: Проблема возникает с PostgreSQL 9.4 в Astra Linux Special Edition 1.5 при попытке подключения созданным пользователем: «СБОЙ: ошибка получения мандатных атрибутов на сервере для пользователя» Ответ 1: Для версии 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 пользователь Ответ 2 (это уточнение?): Настройка «установить в файле /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» Как в таком случае заставить постгрес вести себя согласно доке и разрешить подключать пользователей, которые есть только в самом постгресе? Ответ 3: Проблему удалось решить. Файл /etc/parsec/mswitch.conf, параметр zero_if_notfound установить в yes. В этом случае все пользователи БД, для которых не удалось получить мандатные атрибуты, получат нулевую метку. Ответ 4: 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? А то выглядит костылём. Ответ 5: Ошибка возникает при использовании локальных пользователей, без настроенного ALD. Нужно добавить права на чтение к БД мандатных атрибутов для Postgre: $ sudo setfacl -mR u:postgres:rx /etc/parsec/macdb $ sudo setfacl -mR u:postgres:rx /etc/parsec/capdb |
|||||||
Так же в этом разделе:
|
|||||||
|
|||||||
|