![Diferencia en inicios de sesión sudo y visualización de mensajes](https://rvso.com/image/1555402/Diferencia%20en%20inicios%20de%20sesi%C3%B3n%20sudo%20y%20visualizaci%C3%B3n%20de%20mensajes.png)
¿Cuál es la diferencia entre sudo -s
y sudo -i
y por qué me dan conchas diferentes? Parece que -s
me mantiene dentro bash
y -i
me da sh
.
En MacOSX High Sierra 10.13, si escribo sudo -s
en una terminal e ingreso mi contraseña, obtengo root como mi nombre de usuario, pero con un signo de dólar en el mensaje:
user1@mymachine:~$ sudo -s
**root@mymachine:~$**
Pero si escribo sudo -i
, obtengo:
user1@mymachine:~$ sudo -i
Password:<br/>
**mymachine:~ root#**
¿Por qué no se me presenta el signo almohadilla # si soy root en el ejemplo anterior con sudo -s
? ¿No soy verdaderamente root?
¿Las variables de entorno son diferentes entre los dos?
Respuesta1
Lo primero que debes tener en cuenta es que sudo -s
es equivalente a sudo -s root
y sudo -i
es equivalente a sudo -i root
. Siempre que omites a un usuario de sudo, se supone que estás apuntando al usuario raíz.
sudo -s
ejecuta un shell como usuario de destino mientras sudo -i
inicia sesión como usuario de destino.
Cada vez que ejecuta, sudo -s
está cambiando efectivamente su shell al shell de usuario raíz, mientras que cada vez que ejecuta, sudo -i
efectivamente cierra la sesión de su usuario actual e inicia sesión como root. Es importante saber esto porque cada vez que cambia su shell al shell de usuario raíz, aún conserva la información de exportación de su usuario. Cuando ejecuta, sudo -i
cierra la sesión de su usuario e inicia sesión como root. Eso significa que adopta la configuración de shell del usuario root.
Esto no está relacionado, pero debes evitar cambiar tu usuario a root porque podrías romper cosas accidentalmente, simplemente debes sudo cada comando que necesite escalamiento, incluso si se vuelve molesto. Si realmente desea cambiar a un shell raíz, debe ejecutar su
el que le permitirá iniciar sesión como raíz.