Страница 1 из 1

Запрет пользователям управлять питанием через KDE Plasma

Добавлено: 22 янв 2026, 13:12
treenew
Всех приветствую!!! Возникла необходимость запретить пользователям завершать работу, перезагружать пк, отправлять в сон и в гибернацию из KDE Plasmа или скрыть кнопки управлением этим функционалом. Перелопатил уже кучу информации в инете. Что только не пробовал... И конфиги sddm правил, и команды всякие пробовал, и kiosk пробовал... Никак не могу добраться до истины..

Re: Запрет пользователям управлять питанием через KDE Plasma

Добавлено: 22 янв 2026, 13:26
irton
кнопку выключения на системном блоке выкорчевали уже?

Re: Запрет пользователям управлять питанием через KDE Plasma

Добавлено: 22 янв 2026, 13:50
treenew
))))) Нет! Кнопка как раз-то и не интересует! Мне нужно, что бы программно из графической оболочки невозможно было управлять питанием! Из консоли тоже нет необходимости лочить.

Re: Запрет пользователям управлять питанием через KDE Plasma

Добавлено: 22 янв 2026, 14:07
av179120
Кнопки можно убрать из меню через ПКМ на каждую кнопку "убрать из избранного"...если устроит вас

Re: Запрет пользователям управлять питанием через KDE Plasma

Добавлено: 22 янв 2026, 14:45
treenew
Не совсем понимаю... Из какого меню? Нажимаю "пуск" и у меня там кнопки заблокировать, перезагрузить, выключить. Если нажимаю пкм на них, ничего не происходит...

Re: Запрет пользователям управлять питанием через KDE Plasma

Добавлено: 22 янв 2026, 15:28
av179120
Да. они.
Меню Классическое.
На 2-я плазмах5 именно так работает :unknown:

Re: Запрет пользователям управлять питанием через KDE Plasma

Добавлено: 22 янв 2026, 15:31
irton
Кнопки поди не убрать без правки кода,
но интернет советует
"юзеров из группы power убрать поробуй ты."
Настройка Polkit (для Linux):

Создайте файл /etc/polkit-1/localauthority/50-local.d/disable-shutdown.pkla.
Добавьте правило, запрещающее действие org.freedesktop.consolekit.system.stop или org.freedesktop.login1.power-off для обычных пользователей.

Блокировка действий: В настройках KDE перейдите в «Поведение рабочей области» -> «Экран блокировки» и убедитесь, что действия выключения недоступны.

Re: Запрет пользователям управлять питанием через KDE Plasma

Добавлено: 22 янв 2026, 15:41
av179120
Извиняюсь. Это у меня кнопки ещё и в избранном добавлены.
А так-то это поломка системы, как недавно про Вин11 пишут

Re: Запрет пользователям управлять питанием через KDE Plasma

Добавлено: 22 янв 2026, 15:58
treenew
Группы power не обнаружил. Polkit тоже не сработал... Возможно, я что-то не так делаю... Не опытен в линуксах...

Re: Запрет пользователям управлять питанием через KDE Plasma

Добавлено: 22 янв 2026, 16:04
treenew
av179120 писал(а): 22 янв 2026, 15:41 Извиняюсь. Это у меня кнопки ещё и в избранном добавлены.
А так-то это поломка системы, как недавно про Вин11 пишут
Система только установленнная... Если только из коробки сломаная не идет))

Re: Запрет пользователям управлять питанием через KDE Plasma

Добавлено: 22 янв 2026, 16:24
av179120
Недавнее обноаление Вин11 привело некоторые ПК к поломке, когда ОС не реагировала на кнопки!
А вы пытаетесь САМИ добться такого результата???
Ну и irton сказал - кнопку на системнике вы же выламывать не станете?

СМЫСЛ?

Re: Запрет пользователям управлять питанием через KDE Plasma

Добавлено: 23 янв 2026, 09:51
treenew
av179120 писал(а): 22 янв 2026, 16:24 Недавнее обноаление Вин11 привело некоторые ПК к поломке, когда ОС не реагировала на кнопки!
А вы пытаетесь САМИ добться такого результата???
Ну и irton сказал - кнопку на системнике вы же выламывать не станете?

СМЫСЛ?
Объясню. Роса будет использоваться на виртуальной машине. К ней будут подключаться несколько пользователей одновременно по RDP(то-есть физическая кнопка выкл меня не интересует). Пользователи не особо взрослые и обязательные. И если по RDP нажать в Plasma выключение или перезагрузку, то виртуальная машина не выключается, а выключается KDE и у пользователя черный экран навсегда! Что бы вернуть все обратно необходимо физически перезагрузить виртуальную машину, или под другим пользователем из консоли коммандой. Для этого мне и необходимо скрыть или обездействовать данный функционал KDE. В винде в любой все это без проблем 100500-ми способами...

Re: Запрет пользователям управлять питанием через KDE Plasma

Добавлено: 23 янв 2026, 14:03
va9(2)
treenew писал(а): 22 янв 2026, 15:58 Polkit тоже не сработал... Возможно, я что-то не так делаю...
Гопота такой вариант выдал:
Подходит, если это корпоративная машина / киоск / общий ноутбук.
Пример: запретить power-off обычному пользователю

Код: Выделить всё

sudo nano /etc/polkit-1/rules.d/49-disable-power.rules

Код: Выделить всё

polkit.addRule(function(action, subject) {
    if (
        action.id.indexOf("org.freedesktop.login1.power-off") >= 0 ||
        action.id.indexOf("org.freedesktop.login1.reboot") >= 0 ||
        action.id.indexOf("org.freedesktop.login1.suspend") >= 0
    ) {
        return polkit.Result.NO;
    }
});
Перезайди в сессию.

✔️ Кнопки могут исчезнуть полностью
❌ Но выключение станет невозможно даже через терминал

Re: Запрет пользователям управлять питанием через KDE Plasma

Добавлено: 23 янв 2026, 14:50
treenew
va9(2) писал(а): 23 янв 2026, 14:03
treenew писал(а): 22 янв 2026, 15:58 Polkit тоже не сработал... Возможно, я что-то не так делаю...
Гопота такой вариант выдал:
Подходит, если это корпоративная машина / киоск / общий ноутбук.
Пример: запретить power-off обычному пользователю

Код: Выделить всё

sudo nano /etc/polkit-1/rules.d/49-disable-power.rules

Код: Выделить всё

polkit.addRule(function(action, subject) {
    if (
        action.id.indexOf("org.freedesktop.login1.power-off") >= 0 ||
        action.id.indexOf("org.freedesktop.login1.reboot") >= 0 ||
        action.id.indexOf("org.freedesktop.login1.suspend") >= 0
    ) {
        return polkit.Result.NO;
    }
});
Перезайди в сессию.

✔️ Кнопки могут исчезнуть полностью
❌ Но выключение станет невозможно даже через терминал

Вау!!! Почти годнота!!! Пропало всё!!! Кроме перезагрузки... Хотя, вроде, она в правиле тоже прописана...

Re: Запрет пользователям управлять питанием через KDE Plasma

Добавлено: 23 янв 2026, 15:18
va9(2)
treenew писал(а): 23 янв 2026, 14:50 Вау!!! Почти годнота!!! Пропало всё!!! Кроме перезагрузки... Хотя, вроде, она в правиле тоже прописана...
✅ Правильное и полное правило (рекомендую)
Открой правило:

Код: Выделить всё

sudo nano /etc/polkit-1/rules.d/49-disable-power.rules
И замени **целиком** на это:

Код: Выделить всё

polkit.addRule(function(action, subject) {
    if (
        action.id.startsWith("org.freedesktop.login1.power-off") ||
        action.id.startsWith("org.freedesktop.login1.reboot") ||
        action.id.startsWith("org.freedesktop.login1.suspend") ||
        action.id.startsWith("org.freedesktop.login1.hibernate") ||
        action.id.startsWith("org.freedesktop.systemd1.power-off") ||
        action.id.startsWith("org.freedesktop.systemd1.reboot")
    ) {
        return polkit.Result.NO;
    }
});
💡 `startsWith()` — ключевой момент.
Он **перехватывает все варианты**, включая `*-multiple-sessions`.

---

🔄 Применение

Код: Выделить всё

systemctl restart polkit
или просто **перелогинься**.

---

Если хочешь убедиться на 100%

Можно посмотреть, какое именно действие дергает KDE, так:

Код: Выделить всё

journalctl -u polkit -f
И нажать «Перезагрузка» в меню.
В логах будет точный `action.id`.

---

Важное предупреждение

⚠️ После этого:

* **перезагрузка не будет работать нигде**
* ни через меню
* ни через `reboot`
* ни через `systemctl reboot`

Вернуть можно **только удалив правило** или загрузившись под root.

---

Итог

* `login1` — корректно
* проблема была **в неполном списке action.id**
* `reboot` ≠ `reboot-multiple-sessions`
* `startsWith()` — правильное решение

Re: Запрет пользователям управлять питанием через KDE Plasma

Добавлено: 26 янв 2026, 10:47
treenew
Спасибо всем откликнувшимся!!! Особенная благодарность Va9(2)!!! Все заработало согласно ТЗ! Все супер!!!!