¿Cuál es la diferencia entre 'su -', 'sudo bash' y 'sudo sh'?


29

Me gustaría saber cuál es la diferencia entre

  • su -
  • sudo bash
  • sudo sh

No puedo iniciar sesión como root su -porque no tengo la contraseña de root. Quiero decir que tengo mi contraseña de usuario con la que puedo sudo "command" pero esta contraseña no funciona. su - Puedo iniciar sesión como root sudo bashcon mi contraseña de usuario y puedo iniciar sesión mientras haciendo sudo shpero luego recibo un símbolo del sistema en este formulario #

Respuestas:


27

Fondo

En Linux (y Unix en general), hay un Superusuario llamado Root . El Superusuario puede hacer cualquier cosa y, por lo tanto, hacer el trabajo diario ya que el Superusuario puede ser peligroso. Podría escribir un comando incorrectamente y destruir el sistema. Idealmente, se ejecuta como un usuario que solo tiene los privilegios necesarios para la tarea en cuestión. En algunos casos, esto es necesariamente Root, pero la mayoría de las veces es un usuario habitual.

su -

Este comando se utiliza para iniciar sesión en la cuenta raíz.
Por defecto, la contraseña de la cuenta raíz está bloqueada en Ubuntu. Esto significa que no puede iniciar sesión como Root directamente o usar el comando su para convertirse en el usuario Root. Sin embargo, dado que la cuenta raíz existe físicamente, aún es posible ejecutar programas con privilegios de nivel raíz. Aquí es donde entra en juego sudo: permite a los usuarios autorizados (normalmente usuarios "administrativos") ejecutar ciertos programas como Root sin tener que conocer la contraseña de root.

Consulte Cómo habilitar la cuenta raíz .

sudo sh

Este comando ejecuta "sh" como un superusuario.
La utilidad sh es un intérprete de lenguaje de comandos que ejecutará comandos leídos desde una cadena de línea de comando, la entrada estándar o un archivo especificado.

sudo bash

Este comando ejecuta "bash" como un superusuario.
Bash es el intérprete de shell o lenguaje de comando. Bash es un shell compatible con sh que incorpora características útiles del shell Korn (ksh) y el shell C (csh). Está destinado a cumplir con el estándar IEEE POSIX P1003.2 / ISO 9945.2 Shell y herramientas. Ofrece mejoras funcionales sobre sh para programación y uso interactivo. Además, Bash puede ejecutar la mayoría de los scripts sh sin modificaciones.

Referencias: 1 , 2 , 3 .


77
Vale la pena señalar que puede iniciar sesión como superusuario ejecutando sudo su -sin una contraseña de root. Como sudo ejecuta el su -comando con permisos de root, solo se le pedirá la contraseña del usuario. Esto tiene la ventaja de configurar el entorno del usuario root, lo que no se puede hacer simplemente ejecutando un shell con sudo.
Aaron D

6

su -:

Esto cambiará su identificador de usuario y heredará las variables de entorno como si hubiera iniciado sesión con ese usuario. Normalmente usaría el formato su - <userid>para iniciar sesión como usuario. Si suelta el "userid", se supone que está intentando iniciar sesión como root, cosa que no puede hacer (a menos que cambie la contraseña de root).

sudo bash& sudo sh:

Cualquier cosa después del sudo es un programa para ejecutar, por lo que en estos casos está solicitando ejecutar un par de shells: bash y dash respectivamente. uso man bashy man shpara más detalles sobre las diferentes conchas.


Preguntas relacionadas:


Ok, gracias por responder, pero ¿cuál es la contraseña predeterminada para root? Dónde puedo encontrarlo ?
Patryk

@lordmonkey root no tiene una contraseña y no la necesita. sudo -ile dará un shell de inicio de sesión como lo su -haría, excepto que sudo le pide su contraseña, no la raíz.
geirha
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.