Подробный гайд: Ошибка su: невозможно выполнить /bin/bash: отказано в доступе в Astra Linux

Решение ошибки «отказано в доступе» при su postgres в Astra Linux. Разбор блокировок PARSEC, проверка прав и правильные методы работы с sudo и базами данных.

2026.10.31                  


Подробный гайд: Ошибка su: невозможно выполнить /bin/bash: отказано в доступе в Astra LinuxПодробный гайд: Ошибка su: невозможно выполнить /bin/bash: отказано в доступе в Astra Linux Ошибка su: невозможно выполнить /bin/bash: отказано в доступе в Astra Linux (особенно в редакции Special Edition / SE) при такой последовательности действий — это не баг, а штатная работа системы безопасности.


Почему возникает эта ошибка?

Astra Linux (в отличие от классического Ubuntu/Debian) использует систему мандатного разграничения доступа (MAC / PARSEC). Каждому пользователю и процессу присваивается уровень целостности и секретности.




  1. Когда вы выполняете sudo su - postgres, вы попадаете в контекст пользователя postgres. У него нулевой уровень привилегий (MAC level 0).

  1. Когда вы находитесь внутри сессии postgres и вводите просто su (что по умолчанию означает su root), система пытается повысить ваши привилегии до root (MAC level 3).

  1. Модуль ядра PARSEC блокирует запуск оболочки /bin/bash от имени root, так как процесс с низким уровнем доверия (postgres) не имеет права порождать процесс с высоким уровнем доверия (root).

Именно поэтому su выдает ошибку «отказано в доступе» при попытке выполнить (execve) целевую оболочку.


Решение 1: Правильный рабочий процесс (Рекомендуется)

В Astra Linux (и в Linux в целом) не рекомендуется использовать цепочки вложенных su. Переключение сверху вниз (от root к пользователю) работает штатно, а снизу вверх (от пользователя к root) блокируется политиками безопасности.

Как работать правильно:

  1. Выйдите из зависшей сессии postgres, набрав exit или нажав Ctrl+D.

2. Чтобы получить права суперпользователя, находясь под своей учетной записью, используйте:

   sudo -i
   # или
   sudo su -

3. Если вам нужно выполнить команду от имени postgres, находясь под root или своим пользователем, используйте флаг -u:

   sudo -u postgres psql
   # или
   su - postgres -c "ваша_команда"

Решение 2: Если ошибка возникает сразу при sudo su - postgres

Если ошибка отказано в доступе появляется сразу при попытке зайти в postgres (то есть вы не можете даже попасть в эту учетную запись), значит, проблема не в повышении прав, а в правах на сам файл оболочки или профилях безопасности.

Шаг 1. Проверьте права на /bin/bash

Выполните от имени root:

ls -l /bin/bash

Ожидается:

-rwxr-xr-x. Если прав на выполнение нет, исправьте: sudo chmod 755 /bin/bash.


Шаг 2. Проверьте неизменяемые атрибуты

lsattr /bin/bash

Ожидается:

-------------e-- /bin/bash. Если стоит флаг i (immutable), снимите его: sudo chattr -i /bin/bash.


Шаг 3. Проверка AppArmor

В Astra Linux профили AppArmor могут блокировать запуск bash для сервисных учетных записей.

sudo aa-status

Если /bin/bash находится в списке enforce и вызывает конфликты, можно временно перевести его в режим жалоб (complaining) для диагностики:

sudo aa-complain /bin/bash

Решение 3: Ослабление политик PARSEC (Только для тестовых сред!)

Внимание:

Если это боевой сервер (контур безопасности "Смоленск" или "Орел"), настоятельно не рекомендуется отключать эти механизмы. Данный шаг применим только для тестовых виртуальных машин.


Если вам критично необходимо, чтобы команда su работала без ограничений MAC-уровней:

  1. Откройте конфигурацию PAM для su:
   sudo nano /etc/pam.d/su
  1. Найдите строки, связанные с модулем pam_parsec.so (например, auth required pam_parsec.so или session required pam_parsec.so) и закомментируйте их, добавив # в начало.
  2. Сохраните файл и попробуйте выполнить su снова.

Важно:

  1. Нажмите exit, чтобы выйти из postgres.
  2. Используйте sudo -i для получения прав root.
  3. В Astra Linux всегда используйте sudo -u <user> <command> для запуска команд от других пользователей, это избавит вас от конфликтов с системой мандатного контроля доступа (PARSEC).

Информация предоставлена в ознакомительных целях. Применение описанных настроек в системах, должно осуществляться только после согласования с ответственными за информационную безопасность и в соответствии с требованиями ФСТЭК, ФСБ и иных уполномоченных органов.


Статью подготовил: Аверко Денис Сергеевич @Nymexis г. Омск (специалист по ЗИ)

Комментарии

Загрузка...
Если комментарии не загружаются, можете попробовать отключить блокировщик рекламы для этого сайта