Решение проблемы возврата к логину при Integrity level 63 в fly-dm в Astra Linux

Решение проблемы возврата к логину при Integrity level 63 в fly-dm. Пошаговая настройка MAC/Parsec, исправление PAM и прав доступа в Astra Linux SE.

2026.04.13    


Решение проблемы возврата к логину при Integrity level 63 в fly-dm в Astra LinuxРешение проблемы возврата к логину при Integrity level 63 в fly-dm в Astra Linux Проблема с циклическим возвратом к экрану входа в fly после ввода логина, пароля и Integrity level: 63 типична для Astra Linux Special Edition (SE) и связана с механизмом мандатного контроля доступа (Parsec/MAC). Уровень целостности 63 зарезервирован для системных процессов и ядра. Запуск пользовательского графического сеанса с этим уровнем нарушает политики безопасности, из-за чего fly-dm (менеджер сессий) аварийно завершает сессию и возвращает пользователя на экран входа.

Шаг 1. Переход в консольный режим (TTY)

Если графический интерфейс зациклился:

  1. Нажмите Ctrl + Alt + F2 (или F3F6).
  2. Войдите под учётной записью с правами sudo или под root.

3. Если TTY недоступен, перезагрузитесь, в GRUB нажмите e, добавьте в строку linux:

   systemd.unit=multi-user.target

Нажмите Ctrl+X для загрузки в консольный режим.

Шаг 2. Сбор и анализ логов

Выполните команды для поиска причины отказа сессии:

# Логи дисплей-менеджера fly
sudo journalctl -u fly-dm -b --no-pager | tail -n 50

# Аутентификация и Parsec
sudo grep -iE 'parsec|mac|fly-dm|pam' /var/log/auth.log | tail -n 30

# Ошибки запуска сессии пользователя
cat ~/.xsession-errors 2>/dev/null || sudo cat /root/.xsession-errors 2>/dev/null

Что искать:

  • Integrity level mismatch, MAC policy violation, Permission denied, session closed
  • Сообщения от pam_parsec.so или fly-dm

Шаг 3. Корректировка уровня целостности

Уровень 63 не предназначен для пользовательских графических сессий.

Стандартные значения:

  • 015 – обычные пользователи
  • 31 – администраторы/аудиторы
  • 63 – системные процессы (только для демонов, ядра, служб)

Вариант А: Изменение в конфигурации fly-dm

1. Откройте конфиг:

   sudo nano /etc/fly/fly-dm.conf

2. Найдите секцию [X-*-Core] или [X-Default-Session] и закомментируйте/измените параметр:

   # IntegrityLevel=63
   IntegrityLevel=0
  1. Сохраните (Ctrl+O, Enter, Ctrl+X).

Вариант Б: Корректировка через PAM

Если уровень задаётся в PAM:

sudo nano /etc/pam.d/fly-dm

Найдите строку с pam_parsec.so и убедитесь, что нет принудительной установки уровня 63.

Обычно достаточно:

auth    required    pam_parsec.so

Без параметров integrity_level= или set_integrity=.

Шаг 4. Проверка контекста безопасности домашнего каталога

Parsec проверяет метки целостности файлов. Если домашний каталог или .Xauthority имеют неверный контекст, сессия не стартует.

# Проверить текущие метки
getmac /home/ваш_пользователь
getmac /home/ваш_пользователь/.Xauthority

# Восстановить стандартные метки (если не используются жёсткие политики)
sudo chmac -i 0 /home/ваш_пользователь
sudo chmac -i 0 /home/ваш_пользователь/.Xauthority

В корпоративных развёртываниях с ролевым доступом не меняйте метки вручную. Обратитесь к администратору безопасности.

Шаг 5. Проверка свободного места и прав

Часто сессия падает из-за:

  • Заполненного раздела (/ или /home)
  • Неверных прав на /tmp, /run/user/$UID, ~/.cache
df -h
ls -ld /tmp /run/user/$(id -u) ~/.cache

Исправление:

sudo chmod 1777 /tmp
sudo chown -R $USER:$USER ~/.cache ~/.local ~/.config

Шаг 6. Временный обходной путь (если срочно нужен доступ)

1. В TTY остановите fly-dm:

   sudo systemctl stop fly-dm

2. Запустите сессию вручную без принудительного IL 63:

   startx /usr/bin/fly-session -- :1

3. Либо переключитесь на альтернативный DM (если установлен):

   sudo systemctl disable fly-dm
   sudo systemctl enable lightdm   # или sddm/gdm3
   sudo reboot

Шаг 7. Профилактика и рекомендации

Действие Зачем
Не назначать IL 63 пользователям Нарушает политику MAC, блокирует запуск GUI
Использовать macctl/rolectl для назначения уровней Только через штатные утилиты Astra Linux SE
Регулярно проверять /var/log/auth.log Раннее обнаружение конфликтов PAM/Parsec
Делать бэкап /etc/pam.d/ и /etc/fly/ перед правками Быстрый откат при ошибке

Официальные источники

  • man pam_parsec, man macctl, man fly-dm.conf
  • Техническая поддержка: support@astralinux.ru (для лицензионных редакций)

Если после выполнения шагов проблема сохраняется, пришлите вывод в Техническую поддержку Astra Linux:

sudo journalctl -u fly-dm -b --no-pager
cat ~/.xsession-errors
getmac /home/$USER