Parametro SSH per ignorare lo script .bashrc


8

Ho un server che quando si avvia, una riga .bashrcesegue il seguente comando /bin/watch ~/checker.bashche come previsto controlla quel comando all'avvio del server.

Ho anche un client che accede a quella macchina, ma non voglio che le sessioni del client eseguano lo stesso comando dal .bashrc.

Ho cercato AcceptEnvdi passare attraverso vari aspetti, anche se richiede la configurazione del server, che voglio evitare.

Inoltre non voglio avere 2 account utente diversi per quelli diversi .bashrc.

C'è un'altra prospettiva per avvicinarsi a questo?


perché non vuoi due account diversi? tutti i "clienti" (che sembrano essere terze parti non correlate) dovrebbero essere isolati (anche da te stesso)
umläute,

Risposte:


5

potresti attivare parti del tuo .bashrcsolo se non invocato tramite ssh.

ad esempio qualcosa del tipo:

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

ha funzionato come un incantesimo e tutte le risposte qui mi hanno insegnato molto. Molto apprezzato!
ljs.dev,

13

Due strade:

Non usare bash per questa sessione, prova trattino (o / bin / sh):

ssh 127.0.0.1 /bin/dash

Usa bash con le opzioni di comando per disabilitare l'elaborazione dei file di avvio:

ssh 127.0.0.1 "bash --noprofile --norc"

hai provato le tue vie? (esp. # 2)?
umläute,

1
Il secondo metodo si blocca solo per me.
slm

5
Il secondo metodo funziona perfettamente per me. Non viene visualizzato un prompt poiché PS1 non è impostato, il che è un effetto collaterale dell'esecuzione come richiesto.
Dan Garthwaite,

entrambi appendono per me
Aditya Mittal il

@AdityaMittal Entrambi sembrano bloccarsi se si sta invocando una sessione interattiva perché non è presente alcun prompt PS1. Prova a digitare "ls /"
Dan Garthwaite il

2

È possibile sostituire la linea / bin / watch .... con

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

o qualcosa del genere.


ok fantastico. In questo caso, potrei avere più shell che eseguono il watchcomando, ma mi piace la soluzione.
ljs.dev,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.