3 votos

¿Por qué mi terminal de MacBook Air usa sh-3.2# en lugar de mi username#?

En mi Terminal de MacBook Air, tengo el siguiente indicador:

Zoos-MacBook-Air:~ zdm$

Cuando escribo sudo su y luego ingreso mi contraseña de root, generalmente obtengo el mismo indicador con el signo # de la siguiente manera:

Zoos-MacBook-Air:~ zdm#

Recientemente noté que cuando escribí sudo su y luego ingresé mi contraseña de root, el indicador cambió a:

sh-3.2# 

¿Cómo puedo cambiarlo de vuelta a lo habitual?

1 votos

¿Tiene habilitada la cuenta de usuario root? ¿O ha tenido la cuenta de usuario root habilitada y ahora ha deshabilitado la cuenta de usuario root?

0 votos

Creo que nunca fue habilitado.

1 votos

Es probable que tu indicador de shell root no fuera Zoos-MacBook-Air:~ zdm# ya que cuando estás en una shell root, el nombre de usuario siempre es root.

2voto

No sé por qué cambió, pero puedes anular sh-3.2# u otros indicadores de shell predeterminados cambiando la variable $PS1. Para hacerlo, simplemente ejecuta el siguiente comando (incluyendo el espacio después del signo de dólar):

export PS1='\h:\w \u\$ '

Esto reemplazará tu indicador de shell con Zoos-MacBook-Air:~ root$. Sin embargo, este cambio no es persistente y desaparecerá cuando hagas exit o cierres la Terminal. Puedes hacerlo persistente editando el archivo .bash_profile del root. Ejecuta el siguiente comando mientras estás en un shell de root para modificar ese archivo:

echo 'export PS1='"'"'\h:\w \u\$ '"'" >> ~/.bash_profile
echo 'export PS1='"'"'\h:\w \u\$ '"'" >> ~/.profile

o

echo "export PS1='\\h:\\w \\u\\\$ '" >> ~/.bash_profile
echo "export PS1='\\h:\\w \\u\\\$ '" >> ~/.profile

Esto hará que el cambio sea persistente.

Las pruebas se realizaron en iOS 11 con un shell de root, pero todo en esta respuesta funciona en macOS también.

2 votos

La shell de root es sh y no bash y sh no lee .bash_profile. Todo esto se centra en si la shell es una shell interactiva de inicio de sesión o una shell interactiva no de inicio de sesión y qué archivos de configuración se leen.

0 votos

@fd0 Edité la respuesta para incluir .perfil

0 votos

Un poco más cerca de una respuesta correcta. Te sugiero que leas la sección INVOCATION en el manual de bash. Presta particular atención al párrafo sobre sh. Cuando su es invocado como sudo su creará un shell interactivo sin inicio de sesión con el shell de root, sh. sh no leerá ningún archivo de configuración a menos que establezcas un archivo en la variable de entorno ENV. Ahora, esto se vuelve un poco complicado al declarar variables y escribir un nuevo archivo de configuración...etc. Simplemente, en lugar de usar sudo su, usa sudo su -l.

0voto

goodyonsen Puntos 1

sudo su solicita sh-3.2# en mi Mac también, a diferencia de los núcleos de Linux.
Es sudo -i el que te lleva al blah-blah-Air:~ root#.

Cuando usas ls en ambos, notarás que sh-3.2# lista muchos más directorios y archivos que tu :~ root#.

Prueba sudo -s o sudo -i si quieres el :~ root#.

Escuché que -s es para "mantener el entorno", -i es para tener un "nuevo shell de inicio de sesión". Obtén más información sobre los comandos de sudo escribiendo man sudo en tu terminal.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X