In che modo il desktop Linux esegue le azioni di sistema?


8

Il desktop Linux può eseguire diverse azioni che altrimenti non sono disponibili per l'utente quando si accede da un terminale. Azioni come l'arresto del sistema e la modifica dell'ora del sistema sono accessibili solo a un utente sudo dopo aver inserito la password. Come funziona. Esiste un demone root in esecuzione che prende il comando dall'utente di login. Per favore guidami alla risposta giusta.

Sto eseguendo Ubuntu 13.10.


1
Non esiste "il desktop Linux". Quale ambiente desktop stai usando?
Mat

Sto usando Ubuntu 13.10 Unity (ubuntu-desktop). Ho pensato che l'idea fosse la stessa in tutte le distribuzioni, quindi ho chiesto qui invece di askubuntu.
cnvzmxcvmcx,

Non è una questione di distro, è una questione di ambiente desktop che usi - KDE potrebbe non farlo allo stesso modo di Gnome, né di Unity. (Potrebbero comunque usare tutti la stessa tecnica.)
Mat

Probabilmente le risposte / i commenti su " come funzionano le cose sotto il cofano (aka GUI)" qui -> unix.stackexchange.com/questions/101074/… , spiegate sull'esempio di mount(ing) potrebbero aiutare un po 'a capire. Personalmente, al momento li
mordo pesantemente

@Mat AFAIK ora sono tutti standardizzati su D-Bus.
Gilles 'SO- smetti di essere malvagio' il

Risposte:


6

Attualmente su Ubuntu, l'arresto effettivo viene eseguita console-kit-daemon, il ConsoleKit demone eseguito con privilegi di root. Il daemon ConsoleKit riceve la richiesta di arresto dall'applicazione del pannello desktop tramite D-Bus . La politica che consente ai processi senza privilegi di parlare a processi privilegiati è gestita da polkit (precedentemente PolicyKit). dbus-sendSe lo desideri, puoi emulare l'invocazione di ConsoleKit . In particolare, per dire a ConsoleKit di eseguire uno spegnimento è possibile:

dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" \
/org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Stop

Su Ubuntu, ConsoleKit ha sostituito Hardware Abstraction Layer (HAL), un sottosistema volto a consentire alle applicazioni desktop di rilevare e utilizzare l'hardware del sistema host attraverso un'API portatile e astratta, indipendentemente dal tipo di hardware sottostante. HAL è oggi deprecato nella maggior parte delle distribuzioni Linux. La dbus-sendchiamata equivalente che utilizza HAL è:

dbus-send --print-reply --system --dest=org.freedesktop.Hal \ 
/org/freedesktop/Hal/devices/computer/org.freedesktop.Hal.Device.SystemPowerManagement.Shutdown

Attualmente, ConsoleKit non è gestito attivamente. Il focus del progetto freedesktop.org si è spostato verso la gestione integrata di postazioni / utenti / sessioni del sistema systemd init chiamato systemd-logind . Resta da vedere come questo influenzerà le distribuzioni che hanno adottato i propri sistemi init, come l' avvio in Ubuntu.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.