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

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

Winreview.ru можно найти в Вконтакте, Facebook и Twitter. Присоединяйтесь!

Комментарии

  1. Ролан

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

  2. Сергей Ткаченко

    @Ролан
    Полагаю, в этом случае надо писать правила в /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;

    }

    });

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

Написать комментарий