Parâmetro SSH para ignorar o script .bashrc

6

Eu tenho um servidor que, quando é iniciado, uma linha em .bashrc executa o seguinte comando /bin/watch ~/checker.bash , que, conforme esperado, assiste a esse comando no início do servidor.

Eu também tenho um cliente que faz o login nessa máquina, mas eu não quero que as sessões do cliente executem o mesmo comando do .bashrc .

Eu olhei para AcceptEnv para passar env vars, embora isso requeira configuração do servidor, o que eu quero evitar.

Eu também não quero ter duas contas de usuário diferentes para diferentes .bashrc 's.

Existe outro ângulo para abordar isso?

    
por WP2Static.com 03.11.2013 / 19:59

3 respostas

4

você pode ativar partes de seu .bashrc somente se ele não for invocado via ssh .

por exemplo. algo como:

# within an SSH-session, ${SSH_TTY} will be set
if [ "x${SSH_TTY}" = "x" ]; then
  /bin/watch ~/checker.bash
fi
    
por 03.11.2013 / 20:24
10

Duas maneiras:

Não use bash para esta sessão, tente dash (ou / bin / sh):

ssh 127.0.0.1 /bin/dash

Use bash com opções de comando para desativar o processamento de arquivos de inicialização:

ssh 127.0.0.1 "bash --noprofile --norc"
    
por 03.11.2013 / 20:17
2

Você pode substituir a linha / bin / watch .... por

 if ps ax | grep /bin/watch | grep -v grep  > /dev/null 2>&1
 then
    echo "Nothing to do"
 else
    /bin/watch ~/checker.bash
 fi

ou algo assim.

    
por 03.11.2013 / 20:26

Tags