Debootrap: неинтерактивная переменная расширения оболочки PATH
Я установил debian с помощью debootstrap (debootstrap --arch = amd64 stretch / target http://httpredir.debian.org/debian). Когда я проверяю переменную PATH, я получаю:
ssh git@srv 'echo $PATH'
/usr/bin:/bin
Как я могу расширить его и включить, например, / usr / local / bin?
/ И т.д. / пароль:
git:x:108:112:git version control,,,:/home/git:/bin/sh
Я уже попробовал следующие подходы, но безуспешно, потому что эти файлы читаются только для интерактивных оболочек. Спасибо за советы.
echo 'export PATH="/usr/a1:$PATH"' >> /etc/profile
echo 'PATH="/usr/a2:$PATH"' >> /etc/environment
echo 'export PATH="/usr/a3:$PATH"' >> /home/git/.profile
chown git:git /home/git/.profile
echo 'export PATH="/usr/a4:$PATH"' >> /home/git/.bashrc
chown git:git /home/git/.bashrc
echo 'PATH="/usr/a5:$PATH"' >> /home/git/.ssh/rc
chown git:git /home/git/.ssh/rc
echo 'export PATH="/usr/a6:$PATH"' >> /home/git/.ssh/environment
chown git:git /home/git/.ssh/environment
2 ответа
Подобные команды SSH не зависят от переменных входа в систему или интерактивной среды.
Этот вопрос похож на заданный здесь: https://unix.stackexchange.com/questions/332532/how-to-set-path-when-running-a-ssh-command
Попробуйте вот так:
echo "export PATH=$PATH:/usr/local/bin" >> ~/.ssh/environment
Вы можете выполнять команды в оболочке входа на удаленном хосте, которая будет обрабатывать ваши файлы конфигурации оболочки (например, ~/.profile
, так далее):
ssh user@host 'exec $SHELL -l -c "echo $PATH; commmand; another-command"'
В зависимости от того, что вы пытаетесь сделать, может потребоваться сказать ssh
создать псевдо-тты:
ssh user@host -t 'exec $SHELL -l -c "command-that-needs-tty"'