同じように構成する必要があるツインLinuxサーバーがありますが、それらの1つに対するsshコマンドは、〜/ .bashrcで指定されたパスを必要とするコマンドに対して失敗します。たとえば、pwd
対話型とsshの両方のようなコマンドを使用できますが、アプリケーションbinフォルダーにあるプログラムを実行しようとすると、いずれかのサーバーの対話型シェルでのみ機能します。
両方のサーバーの/ etc / profileファイルと/ etc / environmentファイルは同じですが、$ BASH_ENVは適切に動作しているサーバーで〜/ .bashrcに設定されます。動作していないサーバーに$ BASH_ENVを設定したいのですが、動作中のサーバーに設定したのと同じ場所に設定したいです。別のコンピューターからのsshコマンドなど、非対話型ログイン時にLinuxが実行される場所は何ですか?
編集:ユーザーの/ etc / passwdの行は、両方のサーバーで/ bin / bashを指定しています。両方のサーバーの〜/ .bash_profileファイルは同一であり、が含まれていますif [ -f ~/.bashrc ]; then . ~/.bashrc; fi
。システム間の唯一の違いは、$ BASH_ENVが機能していないサーバー上のNULL文字列であり、機能しているサーバーのどこに設定されているかが見つからないことです。
編集2:両方のサーバーの〜/ .ssh / environmentファイルにはBASH_ENV =〜/ .bashrcがあります
if [ -f ~/.bashrc ]; then . ~/.bashrc; fi