Perché sudo è necessario per riavviare nel terminale ma non dalla GUI?


10

Quando accendo la macchina e accedo al mio account, posso fare quello che voglio e persino spegnere la macchina o dire riavvio.

Ma se apro il terminale e provo ad eseguire il comando rebooto shutdownallora devo avere l'accesso come root. Perché è così?

Riesco a pensare ad alcune ragioni per cui questo tipo di comportamento come per te potrebbe trovarlo desiderabile, sshma non ne sono sicuro, o mi manca del tutto.


Controlla dbuse il tuo ambiente grafico (es. KDE o gnome).
Hennes,

Penso che tu possa farlo su tutti gui, voglio solo sapere perché tale caratteristica del design è lì.
Aman Deep Gautam,

Risposte:


7

È una caratteristica di sicurezza.

Quando si utilizza la GUI, ci si trova (in genere) davanti al computer su cui si sta lavorando. Tuttavia, quando si utilizza un terminale, è possibile trovarsi fisicamente su una macchina e in remoto su un'altra. Potresti avere molte finestre del terminale aperte su molte macchine diverse. Cosa succede se si digita accidentalmente il riavvio in quello sbagliato? Tale azione potrebbe variare da un inconveniente a un disastro completo.

Usando sudo ti costringe a usare una password. Se si digita la password errata, si ottiene un errore e si spera che ci si rende conto di trovarsi nel terminale sbagliato. Ecco perché è buona norma avere una password di root diversa su ogni server.


Ho anche pensato lo stesso, ma volevo solo assicurarmi che non mi mancasse qualcosa .. :)
Aman Deep Gautam,

1
Ho visto più di alcuni amministratori Unix rimuovere il nome del computer dai loro prompt della shell perché ha impiegato molto spazio e in seguito si è pentito di quella decisione.
Keltari,

Si noti che non è esattamente una caratteristica di sicurezza nel senso inteso qui. All'avvio di Unix, hai solo console (nessuna GUI). E solo l'utente root aveva l'autorizzazione per arrestare / riavviare. È ancora così. La GUI ignora utilizzando il bit + s nei file. Sebbene sia possibile rimuovere quelli nel menu utilizzando questi comandi: askubuntu.com/questions/53308/…
Alexis Wilke,

Ho appena visto la mia macchina virtuale CentOS affermare che il "riavvio" non era un comando quando ero stato suroot. Ho scritto sudo rebootlì e ha funzionato. Quando eseguo direttamente SSH come root, rebootfunziona bene. È strano.
Steven Lu,

@StevenLu Controlla i tuoi percorsi. ("echo $ {PATH}") È possibile che in alcuni casi non sia presente una directory "sbin". In tal caso, la stranezza potrebbe non essere con il comando reboot. L'uso di "quale riavvio" potrebbe anche aiutare a spiegare.
TOOGAM,

0

Di solito è possibile riavviare dal terminale premendo Ctrl + Alt + Canc. Non funziona in remoto. (Anche il riavvio in remoto dalla GUI senza privilegi non funziona.)

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.