0 votos

Cambiar terminal de comandos para el usuario root en Sierra

Puedo cambiar el comando de bash prompt de la Terminal para un usuario normal sin problema. (En mi caso, he modificado el $variable PS1 en /etc/bashrc.) Sin embargo, este cambio no modifica el símbolo del sistema cuando uno eleva privilegios de root usando sudo -s.

¿Alguien sabe en donde el símbolo del sistema de preferencias se almacenan en un macOS Sierra (10.12.5) de la máquina de un usuario administrador que ha elevado sus privilegios de root usando sudo -s?

He intentado modificar los siguientes archivos...

  • /var/root/.bash_profile
  • /var/root/.bash_rc
  • /var/root/bash_rc
  • /var/root/.perfil
  • ~/.perfil

También he intentado usar el comando export PS1="Some prompt here# ", lo que cambia el superusuario temporalmente, pero que no se pegue cuando la sesión termina y uno nuevo que se inicia.

3voto

Darren Puntos 46

Agregue la variable de entorno SUDO_PS1 a su ~/.bash_profile ya export la variable, como:

export SUDO_PS1="\[\h:\w\] \u\\$ "

Sin embargo, esto solo cambiará el indicador root tal como aparece después de haber elevado sus derechos a través de sudo .

Una buena lista de prompt variables se puede encontrar aquí.

1voto

Tony Williams Puntos 4903

Estoy asumiendo que usted no está realmente iniciar sesión en tu Mac como root ya que al habilitar el inicio de sesión root es una cosa muy mala.

Así que usted está utilizando el comando sudo -s a abrir un shell de root desde su propio inicio de sesión. Bajo estas circunstancias, el perfil que se va a ejecutar es su propio. La mejor manera de hacer los cambios, tales como el símbolo del sistema, es el uso de un if en su perfil, por ejemplo

# color prompt and make root red
if [ `id -u` = 0 ]
then
    PS1="\[\033[31m\]\h:\W \u\$\[\033[0m\] "
else
    PS1="\[\033[34m\]\h:\w \u\$\[\033[0m\] "
fi

En este ejemplo la parte superior de PS1 es la root y se establece el sistema para el rojo y el segundo PS1 es para cualquier otro usuario, por ejemplo. Usted puede hacer cualquier otro entorno de los cambios que desee en la if como bueno.

1voto

Michael Zhou Puntos 167

Del manual sudo

 -s, --shell    Run the shell specified by the SHELL environment variable if it is set or the shell
               specified by the invoking user's password database entry.  If a command is specified, it
               is passed to the shell for execution via the shell's -c option.  If no command is
               specified, an interactive shell is executed.
 

Un shell interactivo leería el .bashrc del usuario invocador. Por lo tanto, la solución de Tony Williams funcionaría si está en su .bashrc . Pero la solución de da4 también debería funcionar si se coloca en su .bash_profile .

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