¿Puedo decirle a iTerm 2 que cambie el color cuando soy root?

2

Me gustaría decirle a iTerm2 que tenga un texto en rojo siempre que esté root cuando inicie sesión en un servidor.

Nota:

No puedo cambiar ninguna configuración en el servidor remoto.

    
pregunta Nifle 07.03.2011 - 11:35

2 respuestas

3

No como parte de la configuración de iTerm 2. iTerm no tiene forma de saber que has ido a la raíz en una sesión remota, no está observando lo que estás haciendo tan de cerca (y lo que estás pidiendo que averigüe es realmente muy complicado de programar).

Puedes crear un perfil de iTerm que tenga texto rojo en el color de fondo que quieras y siempre usarás ese perfil cuando vayas a la raíz de una máquina. No requiere cambios en el entorno raíz en la máquina remota. Pero sí requiere que recuerde usar ese perfil para su sesión rooteada.

Edit: mientras hurgaba, encontré este interesante artículo que habla sobre cómo puede cambiar la imagen de fondo en iTerm para mostrar el nombre de host del host al que ha accedido . Observe cómo todo se basa en el entorno en el shell Mac de su cliente: una vez que esté en la máquina remota, no hay mucho que pueda hacer iTerm. El cambio del título de una pestaña parece estar controlado por $PROMPT_COMMAND , según lo establecido en el entorno de la sesión remota, pero parece que no hay ganchos documentados en iTerm 2 que le permiten ampliar lo que hace iTerm cuando cambia el título de la pestaña. Lástima.

Te digo: apoyos locos si alguien puede descubrir cómo hacer esto. Seguro que sería útil.

    
respondido por el Ian C. 07.03.2011 - 16:23
1

Realmente no entiendo por qué dices que no puedes cambiar ninguna configuración, pero puedes usar el usuario root ...

Pero de todos modos, puede ejecutar la siguiente línea cada vez que inicie sesión en su servidor remoto, lo que coloreará su indicador rojo (y lo mostrará como "root @ hostname | / current / directory" , una vez que estés rooteado con sudo -s :

export SUDO_PS1='\[\e[41m\]\u @ \H | \[\e[7m\] $PWD \[\e[0m\] \n > \[\e[0m\] ' 

Suponiendo que la configuración sshd del servidor remoto tiene PermitUserEnvironment configurado a "sí", podría entregar el PS1 cuando cree una instancia de la conexión ssh, algo así como (no he intentado esto, sin embargo):

ssh user@server -t "SUDO_PS1='$SUDO_PS1'; exec bash"
    
respondido por el Asmus 07.03.2011 - 16:50

Lea otras preguntas en las etiquetas