Tôi có hai máy chủ Linux cần được cấu hình giống hệt nhau, tuy nhiên các lệnh ssh cho một trong số chúng không thành công đối với các lệnh yêu cầu đường dẫn được chỉ định trong ~ / .bashrc. Ví dụ: tôi có thể sử dụng một lệnh như pwd
cả tương tác và thông qua ssh, nhưng nếu tôi thử chạy một chương trình nằm trong thư mục bin ứng dụng, nó chỉ hoạt động trong một vỏ tương tác cho một trong các máy chủ.
Tệp / etc / profile và / etc / môi trường trên cả hai máy chủ giống hệt nhau, tuy nhiên $ BASH_ENV được đặt thành ~ / .bashrc trên máy chủ đang hoạt động đúng. Tôi muốn đặt $ BASH_ENV trên máy chủ không hoạt động, nhưng tôi muốn đặt nó ở cùng vị trí với máy chủ đang hoạt động. Những nơi mà Linux sẽ chạy tại thời điểm đăng nhập không tương tác, chẳng hạn như lệnh ssh từ một máy tính khác?
chỉnh sửa: Dòng trong / etc / passwd cho người dùng chỉ định / bin / bash trên cả hai máy chủ. Tệp ~ / .bash_profile cho cả hai máy chủ là giống hệt nhau và chứa if [ -f ~/.bashrc ]; then . ~/.bashrc; fi
. Sự khác biệt duy nhất giữa các hệ thống là $ BASH_ENV là một chuỗi null trên máy chủ không hoạt động và tôi không thể tìm thấy nơi nó được đặt trong máy chủ đang hoạt động.
chỉnh sửa 2: Tệp ~ / .ssh / môi trường trên cả hai máy chủ có BASH_ENV = ~ / .bashrc
if [ -f ~/.bashrc ]; then . ~/.bashrc; fi