Cambiar indicador de comando de terminal para usuario root en Sierra

0

Puedo cambiar el indicador de comandos de bash para el Terminal para un usuario normal sin problemas. (En mi caso, modifiqué la variable $ PS1 en / etc / bashrc). Sin embargo, ese cambio no modifica el indicador de comando cuando uno eleva los privilegios a la raíz usando sudo -s .

¿Alguien sabe dónde se almacena la preferencia del símbolo del sistema en una máquina macOS Sierra (10.12.5) para un usuario administrador que ha elevado sus privilegios a la raíz usando sudo -s ?

He intentado modificar los siguientes archivos ...

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

También he intentado usar el comando export PS1="Some prompt here# " , que cambia el indicador de raíz de forma temporal, pero no se atasca cuando finaliza la sesión y se inicia una nueva.

    
pregunta Tim Dearborn 13.07.2017 - 21:46

3 respuestas

1

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 usuario invocando .bashrc . Entonces, 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 .

    
respondido por el fd0 15.07.2017 - 14:10
1

Supongo que en realidad no estás iniciando sesión en tu Mac como root , ya que habilitar el inicio de sesión de root es una cosa realmente mala .

Por lo tanto, está utilizando el comando sudo -s para abrir un shell raíz desde su propio inicio de sesión. En esas circunstancias, el perfil que se está ejecutando es el suyo. La mejor manera de realizar cambios, como el aviso, es utilizar un if en su perfil, por ejemplo

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

En este ejemplo, la PS1 superior es para root y establece el indicador en rojo y la segunda PS1 es para cualquier otro usuario, por ejemplo. tú. También puede realizar cualquier otro cambio de entorno que desee en if .

    
respondido por el Tony Williams 14.07.2017 - 06:35
1

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

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

Sin embargo, tenga en cuenta que esto solo cambiará el indicador de raíz tal como aparece después de que haya elevado sus derechos a través de sudo .

Puede encontrar una buena lista de prompt variables aquí.

    
respondido por el da4 13.07.2017 - 23:34

Lea otras preguntas en las etiquetas