Гайд: Astra Linux: почему не работает sudo su и как получить root-доступ — полное руководство

Astra Linux: почему блокируется sudo su и как получить root-доступ. Диагностика, настройка sudoers, PAM, Parsec для редакций CE и SE.

2026.05.01                  


Гайд: Astra Linux: почему не работает sudo su и как получить root-доступ — полное руководствоГайд: Astra Linux: почему не работает sudo su и как получить root-доступ — полное руководство

1. Почему sudo su может не работать?

Причина Описание
Политика аудита sudo su запускает постоянную root-оболочку. Все последующие команды не логируются через sudo, что нарушает требования ФСТЭК/Минцифры.
PAM или sudoers-ограничения В /etc/pam.d/sudo или /etc/sudoers могут быть правила, запрещающие запуск su, /bin/bash, /bin/sh или *shell*.
Mandatory Access Control (Parsec) В Astra Linux Special Edition мандатный контроль может блокировать непривилегированным пользователям переход в контекст root без явного разрешения.
Пользователь не в группе sudo По умолчанию в Astra (как в Debian) доступ к sudo получают члены группы sudo или wheel.

2. Диагностика

Выполните по очереди:

# 1. Проверьте группы пользователя
groups

# 2. Посмотрите, какие команды разрешены sudo
sudo -l

# 3. Проверьте журналы аутентификации
sudo journalctl -u sudo --since "1 hour ago"
# или
grep sudo /var/log/auth.log | tail -n 20

Типичные ошибки:

  • user is not in the sudoers file → нет в группе или нет правила в sudoers
  • command not allowed by policy / authentication failure → блокировка PAM/Parsec или sudoers
  • молчаливый выход без ошибок → оболочка запущена, но окружение очищено или MAC отклоняет команды

3. Настройка /etc/sudoers

Важно:

  • Никогда не редактируйте /etc/sudoers обычным текстовым редактором. Используйте только visudo.

3.1. Добавление пользователя в группу sudo

# От root или из recovery-режима:
usermod -aG sudo ваш_пользователь
newgrp sudo  # или перелогиньтесь

3.2. Проверка базового правила

В /etc/sudoers должна быть строка (раскомментируйте при необходимости):

%sudo ALL=(ALL:ALL) ALL

3.3. Разрешение запуска su и оболочек (если действительно нужно)

В /etc/sudoers.d/custom (через sudo visudo -f /etc/sudoers.d/custom):

%sudo ALL=(root) /bin/su, /bin/bash, /bin/sh, /usr/bin/sudo

Проверьте синтаксис:

visudo -c

4. Особенности Astra Linux

Редакция Поведение
Common Edition (CE) Работает как Debian. Ограничения только через sudoers/PAM.
Special Edition (SE) Активен Parsec (MAC), мандатные метки, замкнутая программная среда. sudo su часто блокируется политикой безопасности. Требуется sudo -i или явное разрешение в fly-admin-sec.

Проверка уровня защищённости и Parsec

# В SE:
parsec-status
astra-sec-status  # или fly-admin-sec-cli --get-mode

Если включён режим замкнутой среды или высокий уровень изоляции, запуск произвольных оболочек от root запрещён. В этом случае sudo su работать не будет по дизайну.


5. Безопасные альтернативы sudo su

Команда Почему лучше
sudo -i Имитирует полный вход в root-сессию, логируется, загружает профиль root
sudo -s Запускает оболочку с правами root, сохраняет переменные пользователя
su - (с паролем root) Требует установки пароля root: sudo passwd root
pkexec <команда> Запуск GUI/CLI утилит с правами root через PolicyKit (рекомендуется в Astra SE)

Рекомендация:

Используйте sudo -i вместо sudo su. Это соответствует требованиям аудита и штатным политикам Astra Linux.


6. Настройка PAM (если блокировка на уровне аутентификации)

Файл: /etc/pam.d/sudo

Иногда добавляются модули типа pam_exec, pam_limits или кастомные скрипты, блокирующие su.

Проверьте строки:

auth    required    pam_unix.so
account required    pam_unix.so

Если есть строки с pam_succeed_if, pam_listfile или кастомные exec-скрипты → изучите их логику. В Astra SE изменения PAM могут сбрасываться при обновлении политик безопасности.


7. Экстренное восстановление (если заблокированы полностью)

  1. Перезагрузите систему.
  2. В GRUB выберите загрузочную запись, нажмите e.
3. В строке linux замените ro quiet splash на:
   rw init=/bin/bash
  1. Нажмите Ctrl+X или F10.
5. Вы получите root-оболочку без пароля. Исправьте sudoers:
   mount -o remount,rw /
   visudo
   # или
   echo "ваш_пользователь ALL=(ALL:ALL) ALL" > /etc/sudoers.d/temp_fix
   chmod 440 /etc/sudoers.d/temp_fix
  1. Перезагрузитесь: exec /sbin/init

8. Рекомендации по безопасности

  1. Не отключайте Defaults secure_path, Defaults use_pty, Defaults logfile без обоснования.
  2. В Astra SE не отключайте Parsec/MAC ради удобства sudo su — это нарушает сертификационные требования.
3. Включите аудит sudo:
   Defaults logfile="/var/log/sudo.log"
   Defaults log_input, log_output
  1. Используйте sudo -i + exit вместо постоянных root-сессий.
  2. Для GUI-администрирования используйте fly-admin или pkexec.

Итог

Задача Решение
Получить root для администрирования sudo -i
Разрешить sudo su Добавить правило в /etc/sudoers.d/ через visudo, убедиться, что нет блокировки в PAM/Parsec
Работать в Astra SE согласно ФСТЭК Оставить sudo su заблокированным, использовать sudo -i + аудит
Восстановить доступ при блокировке Recovery-режим с init=/bin/bash → правка sudoers