Rocky Linux Rocky Linux

Rocky Linux: в журнале указан отказ доступа для пользовательской службы

  • Обновлено
  • Чтение ≈ 4 минуты
  • Нужны права администратора

Краткий ответ

Пользовательская служба не может открыть файл или каталог, в журнале Permission denied. Разбираются права на путь, режим пользовательского manager и SELinux, а не глобальное отключение защиты.

В этой статье
  1. Когда возникает проблема и к каким системам относится
  2. Основные причины: как отличить одну от другой
  3. Пошаговая диагностика и устранение неисправности
  4. Как убедиться, что неисправность устранена
  5. Если предложенный способ не сработал

#Когда возникает проблема и к каким системам относится

Пользовательская служба не может открыть файл или каталог, в журнале Permission denied. Разбираются права на путь, режим пользовательского manager и SELinux, а не глобальное отключение защиты. Rocky Linux с пользовательским systemd (systemctl --user); единица запускается от собственного UID, не является системной службой root.

#Основные причины: как отличить одну от другой

Возможная причинаКак узнатьЧто делать
Права в цепочке каталоговНедостаточно x на одном из родительских каталоговnamei показывает недоступный компонент путиУточнить владельца и точечно исправить путь
SELinux запрещает доступОбычные права допускают, но AVC фиксирует отказausearch или журнал показывает denied и контекстИсправить назначение и метку согласно политике
Ограничения unit sandboxProtectHome или ReadOnlyPaths скрывают рабочие каталогиsystemctl --user cat показывает ограниченияСогласовать доступ только требуемому каталогу

#Пошаговая диагностика и устранение неисправности

  1. Шаг 1. Уточните имя и владельца пользовательской службыВ терминале того же пользователя, под которым ожидается работа сервиса, установите UNIT. Не используйте sudo systemctl --user: он обратится не к той пользовательской сессии. При ошибке Failed to connect to bus убедитесь, что вход выполнен от нужного пользователя с работающим пользовательским manager.
  2. Терминал Rocky Linux; административные права не обязательны
    Linux · Терминал (Bash)Команда
    Терминал Rocky Linux; административные права не обязательны. Диагностика или адресная проверка; выполните только при соответствии условиям шага.
    UNIT="имя.service"
    id
    systemctl --user status "$UNIT" --no-pager
  1. Шаг 2. Сохраните точное сообщение отказаПоищите в журнале не только Permission denied, но и исполняемый путь, UID, фазу запуска. Если журнал пустой, уточните время и повторите попытку в той же пользовательской сессии — ошибка может относиться к системной службе с параметром User=.
  2. Терминал Rocky Linux; административные права не обязательны
    Linux · Терминал (Bash)Команда
    Терминал Rocky Linux; административные права не обязательны. Диагностика или адресная проверка; выполните только при соответствии условиям шага.
    UNIT="имя.service"
    journalctl --user -b -u "$UNIT" --no-pager -n 90
  1. Шаг 3. Найдите полный путь, который процессу не разрешёнИз сообщения ошибки скопируйте реальный путь, не используйте демонстрационный буквально. namei -l показывает права на каждый компонент; для каталога необходимо разрешение поиска (x) по всей цепочке. Наличие r на конечном файле недостаточно.
  2. Терминал Rocky Linux; административные права не обязательны
    Linux · Терминал (Bash)Команда
    Терминал Rocky Linux; административные права не обязательны. Диагностика или адресная проверка; выполните только при соответствии условиям шага.
    FILE="/home/пользователь/путь/файл"
    namei -l "$FILE"
    ls -ld "$(dirname "$FILE")"
  1. Шаг 4. Проверьте защитные параметры самого unitОткройте фактический unit и drop-in, сравните User, WorkingDirectory, ProtectHome, ReadWritePaths. Параметры sandbox могут ограничивать доступ независимо от файловых прав. Не отключайте все параметры защиты для одного файла.
    Linux · Терминал (Bash)Команда
    Терминал Rocky Linux; административные права не обязательны. Диагностика или адресная проверка; выполните только при соответствии условиям шага.
    UNIT="имя.service"
    systemctl --user cat "$UNIT"
    systemctl --user show "$UNIT" -p WorkingDirectory -p ProtectHome -p ReadWritePaths
  1. Шаг 5. Проверьте SELinux без его отключенияgetenforce показывает Enforcing/Permissive/Disabled. Если он активен и есть доказанный отказ, изучите AVC через установленный audit; на минимальном образе ausearch может отсутствовать. Не применяйте audit2allow автоматически: сначала проверьте правильность контекста и расположения данных.
    Linux · Терминал (Bash)КомандаНужен sudo
    Терминал Rocky Linux; нужны административные права. Диагностика или адресная проверка; выполните только при соответствии условиям шага.
    getenforce
    ls -Z "$HOME"
    command -v ausearch && sudo ausearch -m AVC,USER_AVC -ts recent | tail -40 || true
  1. Шаг 6. Исправляйте только установленную причинуЕсли каталог принадлежит неправильному пользователю после переноса, согласуйте исправление владельца конкретного файла с администратором и сохраните его права. Для неверно размеченного стандартного пути сначала получите сухой список изменений меток; никаких chmod -R 777 по HOME.
  2. Терминал Rocky Linux; нужны административные права
    Linux · Терминал (Bash)КомандаНужен sudo
    Терминал Rocky Linux; нужны административные права. Диагностика или адресная проверка; выполните только при соответствии условиям шага.
    FILE="/home/пользователь/путь/файл"
    ls -lZ "$FILE"
    sudo restorecon -n -v "$FILE"
  1. Шаг 7. Проверьте запуск в том же сеансеПосле точечной правки вернитесь в исходную пользовательскую сессию, запустите лишь эту единицу и проверьте состояние и журнал. Если причина не ушла, отмените только внесённое изменение и приложите AVC/путь к отчёту.
  2. Терминал Rocky Linux; административные права не обязательны
    Linux · Терминал (Bash)Команда
    Терминал Rocky Linux; административные права не обязательны. Диагностика или адресная проверка; выполните только при соответствии условиям шага.
    UNIT="имя.service"
    systemctl --user restart "$UNIT"
    systemctl --user status "$UNIT" --no-pager
    journalctl --user -u "$UNIT" --no-pager -n 30

#Как убедиться, что неисправность устранена

Пользовательский unit успешно выполняет целевую операцию с файлом, в журнале нет нового Permission denied или AVC; ранее установленная защита остаётся включённой.

#Если предложенный способ не сработал

При отсутствии подтверждённой причины не расширяйте права: сообщите специалисту полный путь, вывод namei -l, unit и AVC, исключив конфиденциальные данные.

Так эту ошибку тоже называют

Источники и обновления

Последнее обновление статьи: 2 ноября 2026. Версии программ и интерфейсы меняются — если шаги не совпадают с вашей версией, сверяйтесь с документацией производителя.