PolicyKit

Installation

apt-get install policykit-1

Konfiguration

ermögliche dem angemeldeten Benutzer doedel das Starten/Stoppen von allen Diensten ohne Passwortabfrage

erstelle eine Datei /etc/polkit-1/localauthority/50-local.d/services.pkla

services.pkla
[handle all services for a user]
Identity=unix-user:doedel
Action=org.freedesktop.systemd1.manage-units
ResultAny=yes
ResultInactive=yes
ResultActive=yes
ermögliche dem angemeldeten Benutzer doedel nur das Starten/Stoppen vom RSYSLOG-Dienst ohne Passwortabfrage

erstelle eine Datei /usr/share/polkit-1/actions/org.freedesktop.systemd1.rsyslog.policy

org.freedesktop.systemd1.rsyslog.policy
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE policyconfig PUBLIC
 "-//freedesktop//DTD PolicyKit Policy Configuration 1.0//EN"
 "http://www.freedesktop.org/software/polkit/policyconfig-1.dtd">
<policyconfig>
  <action id="org.freedesktop.systemd1.rsyslog">
    <description>Handle the rsyslogdaemon. this is /usr/share/polkit-1/actions/org.desktop.systemd1.rsyslog.policy</description>
    <message>Please create a /etc/polkit-1/localauthority/50-local.d/rsyslog.pkla</message>
    <vendor>Richard Borwinius / richard@borwinius.de</vendor>
    <defaults>
      <allow_any>auth_admin</allow_any>
      <allow_inactive>auth_admin</allow_inactive>
      <allow_active>auth_admin</allow_active>
    </defaults>
    <annotate key="org.freedesktop.policykit.exec.path">/etc/init.d/rsyslog</annotate>
  </action>

erstelle dann eine Datei /etc/polkit-1/localauthority/50-local.d/rsyslog.pkla

rsyslog.pkla
[rsyslog service]
Identity=unix-user:doedel
Action=org.freedesktop.systemd1.rsyslog
ResultAny=yes
ResultInactive=yes
ResultActive=yes

teste dann als Benutzer Doedel:

pkexec /etc/init.d/rsyslog restart


Tips und Tricks

 pkaction
 pkaction --verbose
 pkexec myprog