LinuxВысокая

Исправляем Polkit permission denied в Linux — пошаговое решение

Ошибка Polkit permission denied блокирует выполнение привилегированных операций в Linux. Вы узнаете причины и получите пошаговые способы решения для восстановления корректных прав доступа.

Обновлено 28 апреля 2026 г.
5-10 мин
Средняя
FixPedia Team
Применимо к:Ubuntu 22.04+Debian 11+Fedora 36+systemd 249+

Что означает ошибка Polkit permission denied

Ошибка Polkit permission denied возникает, когда подсистема PolicyKit (polkit) отклоняет запрос на выполнение привилегированного действия. Это может происходить в терминале, системных службах или графических утилитах администрирования. Типичные сообщения включают:

  • Failed to start: Polkit permission denied
  • Error registering authentication agent: Polkit permission denied
  • polkit.error-quark: Not authorized

Ошибка появляется, когда polkit не может сопоставить пользователя с разрешающим правилом или обнаруживает конфликт, отсутствие файлов правил или некорректные права доступа.

Причины возникновения

  • Отсутствуют или повреждены .rules файлы в /etc/polkit-1/rules.d/ или /usr/share/polkit-1/rules.d/
  • Некорректный JavaScript-синтаксис в пользовательских правилах polkit
  • Неверные права доступа или владелец на каталоги и файлы polkit
  • Конфликт между локальными и дистрибутивными политиками (локальные правила переопределяют или блокируют системные)
  • Отключённая или неактивная служба polkitd (или systemd-logind в связке с polkit)
  • Попытка выполнения действия без соответствующего действия (action ID) в /usr/share/polkit-1/actions/

Способы решения

Способ 1: Проверка и восстановление правил Polkit

Убедитесь, что правила существуют и содержат корректный синтаксис. Создайте или исправьте файл в /etc/polkit-1/rules.d/, если его нет:

sudo nano /etc/polkit-1/rules.d/10-fix-permissions.rules

Добавьте простое разрешающее правило для группы sudo (подстройте под нужную группу или пользователя):

polkit.addRule(function(action, subject) {
    if (subject.isInGroup("sudo")) {
        return polkit.Result.YES;
    }
});

Сохраните файл и проверьте, что он не содержит синтаксических ошибок.

Способ 2: Исправление прав доступа к файлам и каталогам

Некорректные права могут приводить к игнорированию правил. Восстановите стандартные:

sudo chown -R root:root /etc/polkit-1/
sudo chmod -R 755 /etc/polkit-1/
sudo find /etc/polkit-1/ -name "*.rules" -exec chmod 644 {} \;

Повторите для системных каталогов, если в них есть локальные изменения:

sudo chown -R root:root /usr/share/polkit-1/
sudo chmod -R 755 /usr/share/polkit-1/

Способ 3: Перезапуск служб и проверка через pkexec

Перезапустите связанные службы, чтобы polkit перечитал правила:

sudo systemctl restart polkit
sudo systemctl restart systemd-logind

Проверьте, разрешено ли действие, с помощью pkexec:

pkexec --user root systemctl status NetworkManager

Если команда выполняется без ошибки доступа, проблема решена.

Способ 4: Устранение конфликтов между правилами

Если ошибка сохраняется, сравните локальные и дистрибутивные правила. Удалите или переименуйте конфликтующие файлы:

sudo mv /etc/polkit-1/rules.d/10-custom.rules /etc/polkit-1/rules.d/10-custom.rules.bak

Проверьте, не дублируются ли действия в /usr/share/polkit-1/actions/. При необходимости создайте минимальный локальный .rules файл с явным разрешением нужного действия:

polkit.addRule(function(action, subject) {
    if (action.id === "org.freedesktop.systemd1.manage-units" &&
        subject.isInGroup("sudo")) {
        return polkit.Result.YES;
    }
});

Профилактика

Чтобы избежать повторения ошибки Polkit permission denied, соблюдайте несколько простых правил:

  • Всегда создавайте локальные правила в /etc/polkit-1/rules.d/, а не изменяйте файлы в /usr/share/
  • Перед сохранением .rules файлов проверяйте JavaScript-синтаксис (можно использовать node -c для проверки)
  • Следите за правами доступа: каталоги должны быть 755, файлы .rules644, владелец — root:root
  • Избегайте дублирования action ID в разных файлах правил — используйте один приоритетный файл
  • После редактирования правил перезапускайте polkitd или systemd-logind, чтобы изменения вступили в силу

⚠️ Важно: не отключайте polkit или не заменяйте его вызовы на прямое использование sudo в системных службах и графических утилитах — это снижает безопасность и может привести к непредсказуемым отказам в работе системы.

Часто задаваемые вопросы

Почему polkit permission denied возникает при запуске графических утилит администрирования?
Безопасно ли редактировать polkit правила вручную?
Можно ли временно обойти polkit permission denied для диагностики?
Влияет ли отсутствие active > 0 в polkit на возникновение ошибки?

Полезное

Проверка наличия и синтаксиса правил Polkit
Проверка системных политик и их приоритетов
Исправление прав на каталоги и файлы Polkit
Перезапуск служб и проверка через pkexec

Эта статья помогла вам решить проблему?