`sudo reboot` vs` reboot` - qual è la differenza?


60

Di recente ho scoperto che rebootfunziona altrettanto bene sudo reboot, da quello che posso dire. Tuttavia, in molti casi, vedo persone che lo dicono sudo reboot. Perchè è questo? Sono uguali e solo preferenze personali? O sono diversi? Fa di sudo rebootpiù reboot?


1
Il riavvio del sistema da parte dell'utente normale non sembra nemmeno logico. La modifica del runlevel del processo di root (init) dovrebbe essere possibile sia per l'utente root che per l'utente root. Non è nemmeno possibile accedere alle scorciatoie dei file system di sysrq da nessun altro utente. MA ! Puoi riavviare il tuo Linux con le sysrq chiavi , non è necessario sudo:)
Svetlana Linuxenko

sudoè l'abbreviazione di "Super-user Do". Non ha alcun effetto sul comando stesso (questo essere reboot), lo fa semplicemente eseguire come superutente piuttosto che come te. È usato per fare cose che altrimenti non potresti avere il permesso di fare, ma non cambia ciò che viene fatto. Se hai già il permesso di correre reboot, allora bene, corri reboot.
Lee Crocker,

Questo ha tradizionalmente bisogno di root da fare. Le vecchie abitudini si rompono duramente.
Thorbjørn Ravn Andersen,

6
@SvetlanaLinuxenko> Il riavvio del sistema da parte dell'utente normale non sembra nemmeno logico L'utente che è seduto sulla console può semplicemente premere il pulsante di accensione o staccare la spina se non gli permettiamo di riavviare in modo pulito.
Kaz,

Molte altre distribuzioni non ti permetteranno di riavviare se non sei root.
user253751

Risposte:


113

Su Ubuntu 14.10 e precedenti, sudoè richiesto.

L'introduzione di Systemd nel 15.04 ha cambiato il modo in cui Ubuntu gestisce shutdowne reboot:

  1. Quando un singolo utente ha effettuato l'accesso, sudonon è necessario. Quando è registrato più di un utente, sudoè necessario.

  2. Le applicazioni possono inibire shutdowne reboot. Sostituisci queste inibizioni con sudo.

  3. Un singolo utente connesso via sshrichiede ancora sudo.


Penso che questo includa anche un singolo utente che ha effettuato l'accesso più volte.
mckenzm,

6
Non ha nulla a che fare con il numero di utenti connessi. La possibilità di riavviare senza utilizzare sudodipende dall'essere sulla console della macchina. Se usi un computer, non potrai ancora riavviarlo senza sudo, anche se sei l'unico utente connesso. Al contrario, se sei sulla console, puoi comunque riavviare senza sudoanche se altri utenti lo sono connesso in remoto.
Dave Sherohman,

1
@DaveSherohman: Questo non è necessariamente vero - systemd utilizza ancora azioni polkit separate a seconda che tu sia l'unica persona che ha effettuato l'accesso o se ce ne siano più. Significato, la distro (o l'amministratore di sistema) potrebbe facilmente farli comportare diversamente.
gravità

21

Sulla mia macchina 14.04, quando digito (come utente normale) reboot, ottengo

reboot: Need to be root

Questa è la differenza

Come ha sottolineato Terrance nei commenti, funziona in modo diverso sui sistemi successivi rispetto al mio. Quindi probabilmente stai vedendo vecchi scritti e / o utenti (come me) che sono stati abituati a scrivere sudo reboot!


Interessante! Quello che mi chiedo ora è se qualcosa è cambiato tra il 14.04 e il 17.10 per far sì che non sia necessario essere root reboot, o se ci sono altri fattori in gioco nel mio sistema che lo cambiano.
Zeke Egherman,

3
@ZekeEgherman In realtà penso che la differenza sia avvenuta quando sono passati da Upstart a Systemd per i comandi. Quando guardo il mio comando di riavvio, indica un collegamento a /bin/systemctl. Puoi controllare il tuo digitando ls -al $(which reboot).
Terrance

@terrance, vedo anche il link a /bin/systemct1, quale versione sei?
Zeke Egherman,

È interessante! L'ho appena provato sulla mia macchina virtuale pre-release 18.04 e funziona come dici tu. @Terrance, penso che dovresti scrivere la vera risposta.
Marmo organico

@ZekeEgherman 16.04. Ubuntu è passato a Systemd al 15.04. Quindi, 14.04 sarebbe comunque Upstart allora o initd se questo è quello che vuoi chiamarlo.
Terrance,

8

sudo rebootviene utilizzato nei tutorial / how-to per motivi di compatibilità

Mentre reboot potrebbe funzionare

  • se sei root o
  • se sei su un host con systemd e
  • se nessuna applicazione blocca un riavvio

sudo rebootfunzionerà " sempre " *, indipendentemente da

  • se sei root
  • se ci sono altri utenti connessi
  • se ci sono blocchi di applicazioni
  • se init è systemd, System V, Upstart, qualunque cosa

* Beh, ci proverà sicuramente - a meno che non ci siano alcuni processi del kernel che stanno bloccando / comportandosi male, dovrebbe funzionare.


Funzionerà sempre * se ... sudo è installato.
Ave,

7

Per quanto mi riguarda, molte volte se scrivo rebootnon mi lascerà a causa degli inibitori di Chrome quando guardo YouTube e altre schede aperte. Quindi sono costretto a usare sudo rebootun martello più grande.

Questo in Ubuntu 16.04


4

Grazie per la discussione, sono felice di capirlo adesso!

Come accennato da Terrance , nella versione 15.04, sono passati da Upstart a Systemd per i comandi. Questa modifica significa che rebootnon richiede più i privilegi di root.

Per quanto riguarda il motivo per cui la community * nix viene istruita sudo reboot, ci sono alcuni potenziali motivi:

  • Abitudine: le persone erano così abituate a dover sudo rebootriavviare, continuano a farlo nonostante non sia necessario
  • Utenti non aggiornati: le persone incaricate di utilizzare sudo rebootversioni di Ubuntu precedenti alla 15.04 o altre distribuzioni che utilizzano Upstart per i comandi.

  • Compatibilità - Questo è ciò che mi sembra più plausibile: le persone lo stanno istruendo sudo rebootperché è garantito il riavvio su tutti i sistemi * nix, qualunque cosa accada.

Nota aggiuntiva: da user535733 's risposta :

L'introduzione di systemd nel 15.04 ha cambiato il modo in cui Ubuntu gestisce l'arresto e il riavvio:

  1. Quando un singolo utente ha effettuato l'accesso, sudonon è necessario. Quando più di un utente ha effettuato l'accesso, sudoè necessario.

  2. Le applicazioni possono inibire l'arresto e il riavvio. Sostituisci queste inibizioni con sudo.

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.