Normalerweise startet das Betriebssystem beim Start einen Dienst, der als Root ausgeführt wird und Desktop-Umgebungen einige Möglichkeiten bezüglich des Computers bietet. Normalerweise ist es entweder ConsoleKit oder systemd-logind.
In KDE können Sie beispielsweise Ihren Computer als normaler Benutzer von der Befehlszeile herunterfahren.
qdbus org.kde.ksmserver /KSMServer logout 0 0 0
Dies ist möglich, da der KDE-Sitzungsmanager einen DBus-Dienst kontaktiert, der als Root ausgeführt wird. Wenn er aufgerufen wird, wird der shutdown
Befehl mit Root-Berechtigungen ausgeführt.
Auf Systemen mit ConsoleKit können Sie Folgendes verwenden:
gdbus call -y -d org.freedesktop.ConsoleKit \ -o /org/freedesktop/ConsoleKit/Manager \ -m org.freedesktop.ConsoleKit.Manager.Stop
Auf Systemen, die systemd-logind verwenden, verwendet das shutdown
Dienstprogramm bereits DBus und erfordert keine Berechtigungen.
Zusammenfassend können Sie Ihren Computer als normalen Benutzer herunterfahren, da die Desktop-Umgebung einen Dienst ausführt, der die Möglichkeit bietet, den Befehl shutdown [1] als root auszuführen.
[1] Tatsächlich führt der Dienst andere Maßnahmen aus, um sicherzustellen, dass die Desktop-Umgebung ordnungsgemäß heruntergefahren wird.