GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Perché dobbiamo essere root nel terminale per l'arresto e il riavvio?

Quando installiamo/rimuoviamo/aggiorniamo pacchetti o apportiamo modifiche che richiedono privilegi di amministratore, ci viene richiesta la password dell'utente amministratore che ha il sudo privilegi – questo avviene sia tramite GUI che terminale.

Tuttavia, se proviamo a spegnere e riavviare tramite terminale, si lamenta che dobbiamo essere root :

$ reboot
reboot: Need to be root

$ shutdown now
shutdown: Need to be root

Ma non ci viene mai chiesta una password quando eseguiamo queste azioni tramite la ruota dentata in alto a destra.

Perché c'è questa discrepanza?

Migliore risposta

L'arresto sulla ruota dentata controlla se è consentito spegnere la macchina. Questo viene fatto tramite PolicyKit. In caso di spegnimento questa istruzione nel file /usr/share/polkit-1/actions/org.freedesktop.consolekit.policy è selezionato:

<action id="org.freedesktop.consolekit.system.stop">
  <description>Stop the system</description>
  <message>System policy prevents stopping the system</message>
  <defaults>
    <allow_inactive>no</allow_inactive>
    <allow_active>yes</allow_active>
  </defaults>
</action>

Il PolicyKit attiva un dbus-send comando. In caso di spegnimento sarebbe:

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

C'è un demone in esecuzione in background con privilegi di root che invoca il comando di spegnimento per te.

Quando vuoi essere in grado di spegnere la macchina "alla vecchia maniera" tramite riga di comando (shutdown, reboot, halt, ... ), quindi è necessario aggiungere il suid-Bit a quei comandi. Ma tieni presente che chiunque sul tuo sistema abbia accesso alla shell potrebbe quindi spegnere la tua macchina.


Ubuntu
  1. Perché il mio bisogno di controllo mi ha fatto passare a Linux

  2. Perché è necessario eliminare ifconfig per ip

  3. Spazio riservato per il root su un filesystem:perché?

  4. Perché l'utente root ha bisogno dell'autorizzazione Sudo?

  5. Perché usiamo su - e non solo su?

Apri il terminale come root su Ubuntu 20.04 Focal Fossa

13 suggerimenti per l'ottimizzazione e l'ottimizzazione dei database MySQL e Mariadb

Installa e usa Guake:un emulatore di terminale a discesa per Ubuntu

Ubuntu - Terminale vintage per Ubuntu?

Strumento Gui per la visualizzazione e la gestione della coda di stampa?

shell diversa per utente root e non root