Der Linux-Desktop kann mehrere Aktionen ausführen, die dem Benutzer sonst nicht zur Verfügung stehen, wenn er von einem Terminal aus angemeldet ist. Aktionen wie das Herunterfahren des Systems und das Ändern der Systemzeit sind nur für einen Sudo-Benutzer nach Eingabe des Kennworts zugänglich. Wie funktioniert das. Wird ein Root-Daemon ausgeführt, der den Befehl des angemeldeten Benutzers entgegennimmt? Bitte führen Sie mich zur richtigen Antwort.
Ich verwende Ubuntu 13.10.
mount
(ing) erläutert wurden , ein wenig zum Verständnis beitragen. Ich persönlich kaue im Moment heftig an ihnenAntworten:
Derzeit auf Ubuntu, die tatsächliche Abschaltung wird durch ausgeführt
console-kit-daemon
, den ConsoleKit - Daemon, der mit Root - Rechten ausgeführt wird . Der ConsoleKit-Dämon empfängt die Anforderung zum Herunterfahren von der Desktop-Panel-Anwendung über D-Bus . Die Richtlinie, mit der nicht privilegierte Prozesse mit privilegierten Prozessen sprechen können, wird von polkit (ehemals PolicyKit) verwaltet. Sie können den ConsoleKit-Aufruf über emulieren,dbus-send
wenn Sie dies wünschen. Um ConsoleKit anzuweisen, ein Herunterfahren durchzuführen, können Sie Folgendes tun:Unter Ubuntu ersetzte ConsoleKit die Hardware Abstraction Layer (HAL), ein Subsystem, mit dem Desktopanwendungen die Hardware des Hostsystems unabhängig vom Typ der zugrunde liegenden Hardware über eine tragbare und abstrakte API erkennen und verwenden können. HAL ist heute in den meisten Linux-Distributionen veraltet. Der äquivalente
dbus-send
Aufruf mit HAL lautet:Derzeit wird ConsoleKit nicht aktiv gewartet. Der Schwerpunkt des freedesktop.org- Projekts hat sich auf das integrierte Sitz- / Benutzer- / Sitzungsmanagement des systemd- init-Systems mit dem Namen systemd-logind verlagert . Wie sich dies auf Distributionen auswirkt, die ihre eigenen Init-Systeme wie Upstart in Ubuntu übernommen haben, bleibt abzuwarten.
quelle