Ho due server Linux che dovrebbero essere configurati in modo identico, tuttavia i comandi ssh a uno di essi non riescono per i comandi che richiedono un percorso specificato in ~ / .bashrc. Ad esempio, posso usare un comando come pwd
interattivamente e tramite ssh, ma se provo a eseguire un programma che si trova in una cartella bin dell'applicazione, funziona solo in una shell interattiva per uno dei server.
Il file / etc / profile e / etc / environment su entrambi i server sono identici, tuttavia $ BASH_ENV è impostato su ~ / .bashrc sul server che funziona correttamente. Voglio impostare $ BASH_ENV sul server che non funziona, ma preferirei impostarlo nella stessa posizione in cui è impostato nel server funzionante. Quali sono i luoghi in cui Linux verrà eseguito al momento di un accesso non interattivo, come un comando ssh da un altro computer?
modifica: la riga in / etc / passwd per l'utente specifica / bin / bash su entrambi i server. Il file ~ / .bash_profile per entrambi i server è identico e contiene if [ -f ~/.bashrc ]; then . ~/.bashrc; fi
. L'unica differenza tra i sistemi è che $ BASH_ENV è una stringa nulla sul server che non funziona e non riesco a trovare dove è stato impostato nel server che funziona.
modifica 2: il file ~ / .ssh / environment su entrambi i server ha BASH_ENV = ~ / .bashrc
if [ -f ~/.bashrc ]; then . ~/.bashrc; fi