Saya memiliki dua server Linux yang harus dikonfigurasi secara identik, namun perintah ssh ke salah satunya gagal untuk perintah yang memerlukan jalur yang ditentukan dalam ~ / .bashrc. Sebagai contoh, saya dapat menggunakan perintah seperti pwd
keduanya secara interaktif dan melalui ssh, tetapi jika saya mencoba menjalankan program yang terletak di folder bin aplikasi, itu hanya bekerja di shell interaktif untuk salah satu server.
File / etc / profile dan / etc / environment pada kedua server identik, namun $ BASH_ENV diatur ke ~ / .bashrc pada server yang berfungsi dengan baik. Saya ingin menetapkan $ BASH_ENV pada server yang tidak berfungsi, tapi saya lebih suka mengaturnya di lokasi yang sama seperti yang diatur di server yang berfungsi. Apa saja tempat yang akan dijalankan Linux pada saat login non-interaktif, seperti perintah ssh dari komputer lain?
sunting: Baris di / etc / passwd untuk pengguna menentukan / bin / bash di kedua server. File ~ / .bash_profile untuk kedua server identik, dan berisi if [ -f ~/.bashrc ]; then . ~/.bashrc; fi
. Satu-satunya perbedaan antara sistem adalah $ BASH_ENV adalah string nol pada server yang tidak berfungsi, dan saya tidak dapat menemukan di mana pengaturannya di server yang berfungsi.
edit 2: File ~ / .ssh / environment di kedua server memiliki BASH_ENV = ~ / .bashrc
if [ -f ~/.bashrc ]; then . ~/.bashrc; fi