Parâmetro SSH para ignorar o script .bashrc

8

Eu tenho um servidor que, quando é iniciado, uma linha .bashrcexecuta o seguinte comando /bin/watch ~/checker.bashque, como esperado, observa esse comando no início do servidor.

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

Eu procurei AcceptEnvpassar env vars, embora exija a configuração do servidor, o que eu quero evitar.

Também não quero ter duas contas de usuário diferentes para diferentes .bashrc.

Existe outro ângulo para abordar isso?

ljs.dev
fonte
por que você não quer duas contas diferentes? todos os "clientes" (que parece ser um não relacionados 3 partes) deve ser isolado (também de si mesmo)
trema

Respostas:

5

você pode ativar partes do seu .bashrcsomente se não for chamado 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
umläute
fonte
funcionou como um encanto e todas as respostas aqui me ensinaram muito. Muito apreciado!
Ljs.dev 3/11
13

Dois caminhos:

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

ssh 127.0.0.1 /bin/dash

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

ssh 127.0.0.1 "bash --noprofile --norc"
Dan Garthwaite
fonte
você já tentou seus caminhos? (esp. # 2)?
trema
1
O segundo método apenas trava para mim.
slm
5
O segundo método funciona perfeitamente para mim. Você não vê um prompt, pois o PS1 não está definido, o que é um efeito colateral do desempenho conforme solicitado.
Dan Garthwaite
os dois simplesmente ficam pendurados para mim
Aditya Mittal
@AdityaMittal Ambos parecerão travar se você estiver chamando uma sessão interativa porque não há um prompt do PS1. Tente digitar 'ls /'
Dan Garthwaite
2

Você pode substituir a linha / caixa / relógio .... 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.

MariusMatutiae
fonte
OK ótimo. Nesse caso, posso ter vários shells executando o watchcomando, mas gosto da solução.
Ljs.dev 3/11