`sudo reboot` vs` reboot` - ¿cuál es la diferencia?

60

Recientemente descubrí que rebootfunciona tan bien como sudo reboot, por lo que puedo decir. Sin embargo, en muchos casos, veo gente diciéndole sudo reboot. ¿Por qué es esto? ¿Son iguales y solo preferencias personales? ¿O son diferentes? ¿Hace sudo rebootmás que reboot?

Zeke Egherman
fuente
1
El reinicio del sistema por parte del usuario habitual ni siquiera suena lógico. El cambio del nivel de ejecución del proceso raíz (init) debería ser posible por el usuario root y solo el usuario root. Ni siquiera puede acceder a los accesos directos de sysrq de sistemas de archivos por ningún otro usuario. PERO ! Puede reiniciar su Linux con las sysrq teclas , no requiere sudo:)
Svetlana Linuxenko
sudoes la abreviatura de "Superusuario Do". No tiene ningún efecto en el comando en sí (este ser reboot), simplemente hace que se ejecute como el superusuario y no como usted. Se usa para hacer cosas que de otro modo no tendrías permiso para hacer, pero no cambia lo que se hace. Si ya tiene permiso para ejecutar reboot, está bien, solo ejecute reboot.
Lee Crocker
Esto tradicionalmente necesita raíz para hacer. Los viejos hábitos se rompen con fuerza.
Thorbjørn Ravn Andersen
66
@SvetlanaLinuxenko> El sistema de reinicio por parte del usuario normal ni siquiera suena lógico. El usuario que está sentado en la consola puede simplemente presionar el botón de encendido o desconectarlo si no dejamos que se reinicie limpiamente.
Kaz
Muchas otras distribuciones no te permitirán reiniciar si no eres root.
user253751

Respuestas:

113

En Ubuntu 14.10 y anteriores, sudose requiere.

La introducción de Systemd en 15.04 cambió la forma en que Ubuntu maneja shutdowny reboot:

  1. Cuando un solo usuario inicia sesión, sudono es necesario. Cuando más de un usuario está conectado, sudose requiere.

  2. Las aplicaciones pueden inhibir shutdowny reboot. Anula estas inhibiciones con sudo.

  3. Un solo usuario conectado a través de sshtodavía requiere sudo.

usuario535733
fuente
Creo que esto incluye a un solo usuario que inició sesión varias veces también.
mckenzm
66
No tiene nada que ver con la cantidad de usuarios conectados. La capacidad de reiniciar sin usar sudodepende de estar en la consola de la máquina. Si ssh en una máquina, aún no podrá reiniciar sin ella sudo, incluso si usted es el único usuario conectado. Por el contrario, si está en la consola, puede reiniciar sin sudoincluso si otros usuarios están conectado de forma remota.
Dave Sherohman
1
@DaveSherohman: Eso no es necesariamente cierto: systemd todavía usa acciones de polkit separadas dependiendo de si usted es la única persona que inició sesión o si hay varias. Es decir, la distribución (o el administrador del sistema) podría fácilmente hacer que se comporten de manera diferente.
Grawity
21

En mi máquina 14.04, cuando escribo (como usuario normal) reboot, obtengo

reboot: Need to be root

Esa es la diferencia.

Como Terrance señaló en los comentarios, funciona de manera diferente en sistemas posteriores que el mío. Por lo tanto, es probable que esté viendo viejos escritos y / o usuarios (como yo) que se han habituado a escribir sudo reboot.

Mármol orgánico
fuente
¡Interesante! Lo que me pregunto ahora es si algo cambió entre 14.04 y 17.10 para hacer que no sea necesario que sea root reboot, o si hay otros factores en juego en mi sistema que cambian eso.
Zeke Egherman
3
@ZekeEgherman Realmente creo que la diferencia ocurrió cuando cambiaron de Upstart a Systemd para los comandos. Cuando miro mi comando de reinicio apunta a un enlace /bin/systemctl. Puedes consultar el tuyo escribiendo ls -al $(which reboot).
Terrance
@terrance, también veo el enlace a /bin/systemct1, ¿qué versión tienes?
Zeke Egherman
¡Eso es interesante! Acabo de probarlo en mi máquina virtual de prelanzamiento 18.04, y funciona como usted dice. @Terrance, creo que deberías escribir la respuesta real.
Mármol orgánico
@ZekeEgherman 16.04. Ubuntu cambió a Systemd a las 15.04. Entonces, 14.04 todavía sería Upstart o initd si eso es lo que quieres llamarlo.
Terrance
8

sudo rebootse usa en tutoriales / procedimientos por razones de compatibilidad

Si bien reboot podría funcionar

  • si eres root o
  • si estás en un host con systemd y
  • si ninguna aplicación está bloqueando un reinicio

sudo reboot" siempre " * funcionará, independientemente de

  • si eres root
  • si hay otros usuarios conectados
  • si hay aplicaciones bloqueando
  • si init es systemd, System V, Upstart, lo que sea

* Bueno, ciertamente lo intentará, salvo que haya algunos procesos del kernel que lo bloqueen / comporten mal, debería funcionar.

Robert Riedl
fuente
Siempre * funcionará ... si sudo está instalado.
Ave
7

Muchas veces, si escribo reboot, no me dejará debido a los inhibidores de Chrome cuando veo YouTube y otras pestañas abiertas. Así que me veo obligado a usar sudo rebootun martillo más grande.

Esto en Ubuntu 16.04

WinEunuuchs2Unix
fuente
4

Gracias por la discusión, ¡me alegra entender esto ahora!

Como mencionó Terrance , en la versión 15.04, cambiaron de Upstart a Systemd para los comandos. Este cambio significa que rebootya no requiere privilegios de root.

En cuanto a por qué la comunidad * nix lo instruye sudo reboot, hay algunas razones potenciales:

  • Hábito: las personas estaban tan acostumbradas a tener que sudo rebootreiniciar que continúan haciéndolo a pesar de que no es necesario
  • Usuarios no actualizados: las personas que sudo rebootreciben instrucciones están en versiones de Ubuntu inferiores a 15.04 u otras distribuciones que usan Upstart para los comandos.

  • Compatibilidad: esto es lo que me parece más plausible: la gente está dando instrucciones sudo rebootporque se garantiza que se reiniciará en todos los sistemas * nix, pase lo que pase.

Nota adicional: desde user535733 's respuesta :

La introducción de systemd en 15.04 cambió la forma en que Ubuntu maneja el apagado y el reinicio:

  1. Cuando un solo usuario inicia sesión, sudono es necesario. Cuando más de un usuario está conectado, sudose requiere.

  2. Las aplicaciones pueden inhibir el apagado y el reinicio. Anula estas inhibiciones con sudo.

Zeke Egherman
fuente