Проблема возникает с PostgreSQL 9.4 в Astra Linux Special Edition 1.5 при попытке подключения созданным пользователем:

«СБОЙ: ошибка получения мандатных атрибутов на сервере для пользователя»

    0

    Ошибка возникает при использовании локальных пользователей, без настроенного ALD.

    Нужно добавить права на чтение к БД мандатных атрибутов для Postgre:

    $ sudo setfacl -mR u: postgres:rx /etc/parsec/macdb
    $ sudo setfacl -mR u: postgres:rx /etc/parsec/capdb

      2

      Для версии 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 пользователь

        редакт.
        0

        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:0×1) и как-то не захотело оно, применил вот этот, обсуждаемый рецепт, теперь надо наш deb-пакет править. Туда что, вот всю эту пачку команд загонять? Это нормально для Astra? А то выглядит костылём.

          редакт.
          Есть способ короче: usermac -z user. А делать это надо один раз после установки PostgreSQL. – Администрация
          0

          Проблему удалось решить. Файл /etc/parsec/mswitch.conf, параметр zero_if_notfound установить в yes.

          В этом случае все пользователи БД, для которых не удалось получить мандатные атрибуты, получат нулевую метку.

            редакт.
            0

            Настройка «установить в файле /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 возвратил ошибку -1 765 328 378
            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»

            Как в таком случае заставить постгрес вести себя согласно доке и разрешить подключать пользователей, которые есть только в самом постгресе?

              ×

              выполните вход