1

Я установил 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 ответа2

0

Подобные команды 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

0

Вы можете выполнять команды в оболочке входа на удаленном хосте, которая будет обрабатывать файлы конфигурации вашей оболочки (например, ~/.profile и т.д.):

ssh user@host 'exec $SHELL -l -c "echo $PATH; commmand; another-command"'

В зависимости от того, что вы пытаетесь сделать, может потребоваться указать ssh для создания псевдо-tty:

ssh user@host -t 'exec $SHELL -l -c "command-that-needs-tty"'

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .