Pregunta

Me gustaría decirle a ITERM2 que tenga un texto rojo cuando sea root cuando me inicie sesión en un servidor.

Nota:

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

¿Fue útil?

Solución

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 es ver lo que estás haciendo de cerca (y lo que estás pidiendo que descubra que es realmente complicado de programar).

Puede crear un perfil de ITerm que tenga texto rojo en cualquier color de fondo que desee y siempre usa ese perfil cuando vaya a ir a la raíz en una máquina. No requiere cambios en el entorno raíz en la máquina remota. Pero requiere que recuerde usar ese perfil para su sesión enraizada.

EDITAR: Mientras cavo alrededor 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 anfitrión en el que se ha ssh.. 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 ITERM pueda hacer. El cambio de un título de pestaña parece estar controlado por $PROMPT_COMMAND, como se establece en el entorno de la sesión remota, pero parece que no hay ganchos documentados en ITERM 2 que le permitan extender lo que hace ITERM cuando cambia el título de pestaña. Lástima.

Te digo: accesorios locos si alguien puede descubrir cómo hacer esto. Sería útil, seguro.

Otros consejos

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

Pero de todos modos, podrías ejecutar la siguiente línea cada vez Inicie sesión en su servidor remoto, que coloreará su aviso rojo (y lo muestra como "root@hostname | /actual /directorio", una vez que esté roer " 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 Establezca en "Sí", podría entregar la PS1 cuando instanciará la conexión SSH, algo en la línea de (aunque no lo intentó):

ssh user@server -t "SUDO_PS1='$SUDO_PS1'; exec bash"
Licenciado bajo: CC-BY-SA con atribución
No afiliado a apple.stackexchange
scroll top