Posso dizer ao iTerm 2 para mudar de cor quando sou root


2

Gostaria de dizer ao iTerm2 que tenha texto em vermelho sempre que for root quando estiver conectado a um servidor.

Nota:

Não consigo alterar nenhuma configuração no servidor remoto.

Respostas:


3

Não faz parte da configuração do iTerm 2. O iTerm não tem como saber que você fez root em uma sessão remota - não está assistindo o que você está fazendo de perto (e o que você está pedindo para descobrir é realmente muito complicado de programar).

Você pode criar um perfil do iTerm com texto em vermelho na cor de fundo que desejar e sempre usar esse perfil quando for fazer o root em uma máquina. Não requer alterações no ambiente raiz na máquina remota. Mas exige que você lembre-se de usar esse perfil para sua sessão raiz.

Edit: enquanto vasculhava, encontrei este artigo interessante que fala sobre como você pode alterar a imagem de plano de fundo no iTerm para mostrar o nome do host no qual você se hospedou . Observe como tudo se baseia no ambiente no shell do Mac do seu cliente - quando você estiver na máquina remota, o iTerm não poderá fazer muito. A alteração do título de uma guia parece ser controlada $PROMPT_COMMAND, conforme definido no ambiente da sessão remota, mas parece não haver ganchos documentados no iTerm 2 que permitem estender o que o iTerm faz quando altera o título da guia. Pena.

Digo-lhe: adereços malucos, se alguém puder descobrir como fazer isso. Seria útil, com certeza.


Xresources não é apenas para X? Isso soa como uma tarefa puramente de linha de comando.
precisa

Boa pergunta. Eu pensei que as configurações de cores se propagariam se o dispositivo de login remoto dissesse que era do tipo xterm, mas estou tentando agora e não está funcionando. Editou a resposta e obrigado por apontar isso. OP: se você puder fazer o encaminhamento do X, poderá iniciar um Xterm na máquina remota colorida para indicar que é uma sessão raiz do Xterm usando a .Xresourcesabordagem.
Ian C.

1
Bem, o iTerm2 está exibindo o usuário atual @ host em cada guia. Eu esperava que houvesse uma maneira de usar essas informações para modificar o texto.
Nifle

O problema reside no fato de que você deseja que uma ação seja acionada (alterando as cores do terminal). Não acho que o iTerm 2 esteja relacionado a essas coisas. Sim, ele pode alterar o título da barra de guias, mas você não pode estender esse gancho com AppleScript genérico ou algo assim.
Ian C.

1

Realmente não entendo por que você diz que não pode alterar nenhuma configuração, mas pode usar o usuário root ...

Mas, de qualquer forma, você pode executar a seguinte linha sempre que fizer login no servidor remoto, o que mostrará o prompt de vermelho (e mostrará como "root @ hostname | / current / directory", assim que você estiver rooteado com sudo -s:

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

Assumindo que a configuração do sshd do servidor remoto foi PermitUserEnvironmentdefinida como "yes", você pode entregar o PS1 ao instanciar a conexão ssh, algo parecido com (ainda não tentei isso):

ssh user@server -t "SUDO_PS1='$SUDO_PS1'; exec bash"

Bem Incapaz Não é tecnicamente correto. 1. Só porque você pode fazer algo como root, não significa que você deveria. 2. Não sou o único que trabalha nesses servidores e talvez eles não se importem com as mesmas cores que eu. 3. Se eu fizer uma vez no iTerm, não preciso fazê-lo para cada um dos 25 ou mais servidores em que trabalho.
Nifle

1
Espero que você (e seus colegas) não estejam fazendo login como root, mas como usuários (admin) listados no arquivo sudoers; o SUDO_PS1 personalizado estará disponível apenas para você e você poderá colocá-lo no .bash_profile remoto. Mesmo que você faça o ssh diretamente como root, poderá definir SUDO_PS1 temporariamente para esta sessão com o execcomando que eu mencionei acima (e a menos que você e seus colegas trabalhem da mesma forma, screeneles não notarão). Você pode incorporar isso em um alias do bash para facilitar o acesso aos seus mais de 25 servidores.
Asmus
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.