Астра 1.8 не пускает под postgres через sudo

Рейтинг: 0Ответов: 1Опубликовано: 11.08.2025

Дано: свежая ВМ с Astra Linux 1.8 (Смоленск), установлен астровский postgresql-15 из интернет-репо самой Астры. При попытке выполнить начальную настройку Postgres с помощью sudo -u postgres psql получаем ошибку:

user@host:~$ sudo -u postgres psql
sudo: PAM account management error: Доступ запрещен
sudo: a password is required

Конфиги sudo, PAM стоковые. На 1.7 проблем не было. Почему вылезает ошибка?

Ответы

▲ 0

Проблема оказалась в том, что в Астре 1.8 СУБД Postgres с встроенными метками целостности и секретности данных (mac levels), и для пользователя postgres как для обычного системного пользователя установлен уровень целостности 0 или "Низкий" (то есть, пользователь не может администрировать ОС). А при подключении для установки пакетов требуется задать пользователю уровень целостности "Высокий" или 63, после чего PAM-модуль pam_sudo ругается в логах /var/log/auth.log вот таким сообщением:

sudo[3698]: pam_sudo(sudo:account): Permission denied because the current task label: 0:63:0:0.0 is out of available to the user labels. User postgres has min MAC label: 0:0, max MAC label: 0:0 and MIC level: 0.

Postgres в астре-1.7 с МКЦ есть, но 11й версии, чего стало мало для современного ПО, а установка postgresql-13 из расширенного репозитория astra-ce делает postgres системным пользователем с разрешением работы на высоком уровне целостности.

Решение: войти на консоль с низким уровнем целостности (либо выбрав "Низкий" в GUI-диалоге, либо введя 0 при консольном входе), подключиться к СУБД через sudo -u postgres psql, настроить пароль для пользователя СУБД postgres, после чего войти с высоким уровнем целостности, добавить возможность сетевого входа для postgres по паролю (если нет) в файл pg_hba.conf, и перезапустить сервис postgresql. После чего управлять СУБД через подключение по IP-адресу 127.0.0.1 (или IPv6 ::1) с указанием пользователя postgres и пароля.

Альтернативное решение: задать пользователю ОС postgres разрешенный уровень целостности 63 с помощью pdpl-user: sudo pdpl-user -i 63 postgres.