-1 votos

Bash Shell Prompt cambia de color cuando está en modo Root

Mac OS X, ¿cómo puedo configurar el prompt de bash shell (PS1) para que cada vez que el usuario escriba sudo su (modo Root) el prompt del shell cambia del color estándar al color rojo y por supuesto si el usuario sale del modo Root el color vuelve a ser el predeterminado. Básicamente lo que estoy tratando de hacer, es advertir al usuario que él / ella está en modo Root, así que ten cuidado.

Sé que puedo poner la siguiente línea PS1="\e[0;31m[\u@\h \W]\$ \e[m " dentro del personal del usuario .bash_profile pero creo que este no es el enfoque correcto.

1 votos

¿Qué has probado hasta ahora?

0 votos

Hasta ahora sólo vim .bash_profile y he añadido la siguiente línea: PS1=" \e [0;31m[ \u @ \h \W ]\$ \e [m " pero una vez más no ayuda. Quiero que sea de color rojo sólo si el usuario está dentro del Root. Ejemplo si escribo sudo su después de autenticar mi contraseña, quiero que el siguiente sh-3.2# sea de color rojo

0 votos

Mucho Lo más importante es que dejes de hacer cosas como 'sudo su', sobre todo porque crees que es algo llamado "modo Root", que no lo es.

-1voto

Michael Zhou Puntos 167

Una forma de hacerlo es definir el prompt en su .bashrc-

#sudo -s in .bashrc
case $LOGNAME in
root) PS1="\e[0;31m[\u@\h \W]\$ \e[m "
      ;;
   *) PS1="\h:\W \u\$ "
      ;;
esac

y coloque lo siguiente en su .bash_profile-

case $- in
        *i*) . ~/.bashrc ;;
esac

Esto originará .bashrc si su shell es un shell interactivo de inicio de sesión, de lo contrario se leerá .bashrc si su shell es un shell interactivo de no inicio de sesión. Se recomienda a los usuarios que utilicen sudo -s en lugar de sudo su .

La ventaja es que el usuario que invoca mantiene su entorno y su shell con sudo -s .

0 votos

Fd0 mis disculpas. Creo que no me he expresado correctamente. Básicamente cada vez que el usuario escriba (sudo su) en su sistema mac os x quiero que el prompt cambie a color rojo.

0 votos

@Fabio Viola- Bueno, al principio se me pasó lo de su en sudo pero estaba ofreciendo otro enfoque. sudo su producirá un intérprete de comandos interactivo que no es de acceso. El manual indica que sh lee /etc/profile y ~/.profile cuando se invoca como un shell de inicio de sesión, entonces ENV si se establece y un shell interactivo que no sea de inicio de sesión leería el archivo asignado al ENV variable. ENV y ~/.profile también puede ser leído por zsh y ksh por lo que hay que proteger estos archivos de bashism .

0 votos

@fd0 ¿Y el bash_profile y el bashrc de quién va a leer?

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