Diferencia en inicios de sesión de sudo y visualización rápida

0

¿Cuál es la diferencia entre sudo -sy sudo -ipor qué me dan diferentes conchas? Parece que -sme mantiene dentro bashy -ime da sh.

En MacOSX High Sierra 10.13, si escribo sudo -sen una terminal e ingreso mi contraseña, obtengo root como mi nombre de usuario, pero con un signo de dólar en el indicador:

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 hash # si soy root en el ejemplo anterior con sudo -s? ¿No soy realmente root?
¿Las variables de entorno son diferentes entre los dos?

DrKumar
fuente

Respuestas:

0

Lo primero que debe darse cuenta es que sudo -ses equivalente sudo -s rooty sudo -ies equivalente a sudo -i root. Cada vez que omite un usuario de sudo, se supone que está apuntando a la raíz del usuario.

sudo -sejecuta un shell como el usuario objetivo mientras sudo -iinicia sesión como el usuario objetivo.

Cada vez que ejecuta sudo -s, está cambiando efectivamente su shell al shell del usuario root, mientras que cada vez que ejecuta sudo -iestá desconectando efectivamente de su usuario actual e iniciando sesión como root. Es importante saber esto porque cada vez que cambia su shell al shell de usuario raíz, aún mantiene la información de exportación de su usuario. Cuando ejecuta sudo -i, está saliendo de su usuario e iniciando sesión como root. Eso significa que adopta la configuración de shell del usuario root.

Esto no está relacionado, pero debe evitar cambiar su usuario a root porque podría romper accidentalmente las cosas, simplemente debe sudo cada comando que necesita escalar, incluso si se vuelve molesto. Si realmente desea cambiar a un shell raíz, debe ejecutar lo suque le permitirá iniciar sesión como root.

Inconexo
fuente
Veo. Entonces, con sudo -smantener mi exportación, export PS1="\[\033[m\]\u\[\033[m\]@\[\033[m\]\h:\[\033[31m\]\W\[\033[m\]\$ " ¿por qué no recibo un #? Del manual: "\ $ Si no es root, inserta un" $ "; si es root, obtiene un" # "(root uid = 0)"
DrKumar
No puedo explicar eso porque no tengo ninguna experiencia con Mac, tal vez es porque su exportación solo usa $ en lugar de #. Esa es mi mejor suposición y podría estar equivocado.
Desultory
Lo descubrí: necesitaba agregar uno más \ para escapar. Ahora muestra un en #consecuencia. ¡¡Gracias!!
DrKumar