Так уж сложилось, что в моей жизни 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, работая под обычным пользователем.

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

  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