Выключение и перезагрузка в Debian Jessie под обычным пользователем

Так уж сложилось, что в моей жизни Linux стало больше: сегодня на работе поставил Debian "Jessie", есть такая необходимость. Хотя обычно я предпочитаю и использую fluxbox, на этот раз было нужно окружение Mate. После запуска Mate я обнаружил, что среда запрашивает пароль root всякий раз, когда я пытаюсь выключить или перезагрузить компьютер. Хочу поделиться простым рецептом, как от этого избавиться, и включить возможность перезагрузки и выключения компьютера под обычным пользователем.

Сначала стоит убедиться, что у нас установлены следующие пакеты:

# apt-get install policykit-1 mate-polkit consolekit

После этого необходимо подправить соответствующую политику polkit. В любимом редакторе (мой любимый - mcedit) откройте файл org.freedesktop.login1.policy, вот так

# mcedit /usr/share/polkit-1/actions/org.freedesktop.login1.policy

Он имеет структуру XML. Найдите в нем блок <action id="org.freedesktop.login1.power-off">

Измените содержимое секции <defaults>, чтобы получилось что-то такое:

        <action id="org.freedesktop.login1.power-off"> 
                <description>Power off the system</description> 
                <message>Authentication is required for powering off the system.</message> 
                <defaults> 
                        <allow_any>yes</allow_any> 
                        <allow_inactive>yes</allow_inactive> 
                        <allow_active>yes</allow_active> 
                </defaults> 
        </action>

Таким же образом измените содержимое блоков defaults в следующих секциях:

<action id="org.freedesktop.login1.power-off-multiple-sessions"> 
<action id="org.freedesktop.login1.reboot"> 
<action id="org.freedesktop.login1.reboot-multiple-sessions"> 
<action id="org.freedesktop.login1.suspend"> 
<action id="org.freedesktop.login1.suspend-multiple-sessions"> 
<action id="org.freedesktop.login1.hibernate"> 
<action id="org.freedesktop.login1.hibernate-multiple-sessions">

debian policyЗавершите сеанс Mate, если он у вас был запущен, и запустите снова. Теперь вы сможете выключить, перезагрузить или загнать в сон Debian, работая под обычным пользователем.

💡Узнавайте о новых статьях быстрее. Подпишитесь на наши каналы в Telegram и Twitter.

Судя по тому, что вы читаете этот текст, вы дочитали эту статью до конца. Если она вам понравилась, поделитесь, пожалуйста, с помощью кнопок ниже. Спасибо за вашу поддержку!

Автор: Сергей Ткаченко

Сергей Ткаченко создал этот сайт в далёком 2009 году, и с тех пор продолжает над ним работать, публикуя новые материалы о Windows и её приложениях практически каждый день.

Выключение и перезагрузка в Debian Jessie под обычным пользователем: 2 комментария

  1. Эти правила же будут действовать только до первого обновления polkit. Что нужно сделать для того, чтобы они не были перезаписаны правилами из обновлённого пакета?

    1. Полагаю, в этом случае надо писать правила в /etc/polkit-1/rules.d
      Что-нибудь типа:
      /etc/polkit-1/rules.d/99-shutdown.rules
      polkit.addRule(function(action, subject) {
      if (action.id == "org.freedesktop.login1.power-off" ||
      action.id == "org.freedesktop.login1.power-off-multiple-sessions" ||
      action.id == "org.freedesktop.login1.reboot" ||
      action.id == "org.freedesktop.login1.reboot-multiple-sessions") {
      return polkit.Result.YES;
      }
      });

      Должно прокатить.

Обсуждение закрыто.

css.php