Гайд: 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→ нет в группе или нет правила вsudoerscommand 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. Экстренное восстановление (если заблокированы полностью)
- Перезагрузите систему.
- В GRUB выберите загрузочную запись, нажмите
e.
3. В строке linux замените ro quiet splash на:
rw init=/bin/bash
- Нажмите
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
- Перезагрузитесь:
exec /sbin/init
8. Рекомендации по безопасности
- Не отключайте
Defaults secure_path,Defaults use_pty,Defaults logfileбез обоснования. - В Astra SE не отключайте Parsec/MAC ради удобства
sudo su— это нарушает сертификационные требования.
3. Включите аудит sudo:
Defaults logfile="/var/log/sudo.log"
Defaults log_input, log_output
- Используйте
sudo -i+exitвместо постоянных root-сессий. - Для 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 |