Решение проблемы возврата к логину при Integrity level 63 в fly-dm в Astra Linux
Проблема с циклическим возвратом к экрану входа в fly после ввода логина, пароля и Integrity level: 63 типична для Astra Linux Special Edition (SE) и связана с механизмом мандатного контроля доступа (Parsec/MAC). Уровень целостности 63 зарезервирован для системных процессов и ядра. Запуск пользовательского графического сеанса с этим уровнем нарушает политики безопасности, из-за чего fly-dm (менеджер сессий) аварийно завершает сессию и возвращает пользователя на экран входа.
Шаг 1. Переход в консольный режим (TTY)
Если графический интерфейс зациклился:
- Нажмите
Ctrl + Alt + F2(илиF3–F6). - Войдите под учётной записью с правами
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 не предназначен для пользовательских графических сессий.
Стандартные значения:
0–15– обычные пользователи31– администраторы/аудиторы63– системные процессы (только для демонов, ядра, служб)
Вариант А: Изменение в конфигурации fly-dm
1. Откройте конфиг:
sudo nano /etc/fly/fly-dm.conf
2. Найдите секцию [X-*-Core] или [X-Default-Session] и закомментируйте/измените параметр:
# IntegrityLevel=63
IntegrityLevel=0
- Сохраните (
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