У меня есть два Linux-сервера, которые должны быть настроены одинаково, однако команды ssh для одного из них не работают для команд, которым требуется путь, указанный в ~ / .bashrc. Например, я могу использовать команду как в pwd
интерактивном режиме, так и через ssh, но если я попытаюсь запустить программу, расположенную в папке bin приложения, она будет работать только в интерактивной оболочке для одного из серверов.
Файлы / etc / profile и / etc / environment на обоих серверах идентичны, однако $ BASH_ENV установлен на ~ / .bashrc на сервере, который работает правильно. Я хочу установить $ BASH_ENV на сервере, который не работает, но я бы предпочел установить его в том же месте, что и на рабочем сервере. В каких местах Linux будет работать во время неинтерактивного входа в систему, например команды ssh с другого компьютера?
edit: строка в / etc / passwd для пользователя указывает / bin / bash на обоих серверах. Файл ~ / .bash_profile для обоих серверов идентичен и содержит if [ -f ~/.bashrc ]; then . ~/.bashrc; fi
. Единственная разница между системами заключается в том, что $ BASH_ENV - это пустая строка на сервере, которая не работает, и я не могу найти, где она была установлена на сервере, который работает.
edit 2: файл ~ / .ssh / environment на обоих серверах имеет BASH_ENV = ~ / .bashrc
if [ -f ~/.bashrc ]; then . ~/.bashrc; fi