Я пытаюсь отладить проблему среды оболочки на машине, на которой работает lucid.
И root, и пользователь имеют /bin /bash в качестве оболочки в /etc /passwd. Когда я использую «sudo su - user», мой PATH включает в себя следующий каталог: /usr/local/rvm/rubies/ruby-1.9.3-p194 /bin /ruby, когда я "ssh user @ machine" имеет: /usr/local/rvm/rubies/ruby-1.9.2-p290/bin/ruby
Теперь, вероятно, здесь есть несколько конкретных ответов по ruby/rvm - это не то, что я ищу, я пытаюсь понять, это общая проблема того, где искать, чтобы найти то, что определяет путь , Я знаю, что /etc /profile выполняется, но он выполняется в обоих случаях, поэтому я не уверен, в чем проблема - есть ли другие файлы, которые также загружаются при входе в систему - в 1 случае, но не в другом ? / что-нибудь еще, что загружается, что может быть установка PATH?
Похоже, что-то происходит до загрузки /etc /profile. Я повторил окружение в первой строке /etc /profile, а в случае ssh путь уже включал ссылку на /usr/local/rvm/rubies/ruby-1.9.2-p290/bin - в Судо su - дело это не так. Похоже, что /etc /environment используется в случае ssh, но не sudo su - case ...
Еще одна вещь, которую я недавно обнаружил, также актуальна:какая разница между "су" с дефисом и без него?
файл /etc/login.defs используется при выполнении su, а параметр PATH /etc /environment перезаписывается там ENV_PATH или ENV_SUPATH ...
одно пояснение /etc /profile используется для оболочек входа в систему, но не для оболочек без входа в систему - так, например, sudo env не показывает переменные, которые установлены только в /etc /profile
при входе в учетную запись не будут отображаться переменные, которые установлены только в /etc /environment