Путь, в котором Ваш двоичный файл, вероятно, добавляется к $PATH
переменная на входе в систему. И когда Вы выполняете представленную команду, она выполняется через оболочку невхода в систему. Самое легкое (и безопасный) способ решить это должно указать полный путь в этом случае.
Сообщение от оболочки начинается -sh
. Это дает два важного ключа к разгадке:
-
указывает, что это - оболочка входа в систему. Условно, программа входа в систему (программа, где Вы вводите свое имя пользователя и пароль, которое может быть login
, gdm, sshd, …), запускает оболочку с набора названия программы для начала с дополнительного -
. Таким образом, оболочка знает, что это - оболочка входа в систему и чтения ~/.profile
или другая сессия запускает файл.sh
. Таким образом, оболочка входа в систему пользователя установлена на /bin/sh
, а не колотить. Также /bin/sh
символьная ссылка состоит в том, чтобы колотить, или это - некоторая другая оболочка, такая как тире. Когда удар вызывается под именем sh
, это не читает свои конфигурационные файлы, только стандартные файлы (~/.profile
и /etc/profile
в оболочках входа в систему, ничем в оболочках невхода в систему), для совместимости. Так так или иначе ~/.bashrc
не читается.При явном вызове удара он будет читать .bashrc
. Необходимо будет передать -t
флаг к ssh
сказать этому открывать терминал даже при том, что Вы указали команду.
ssh -t testuser@nameofhost bash
Можно хотеть переключить оболочку входа в систему пользователя, чтобы быть ударом вместо /bin/sh
. Как testuser
, выполните команду
chsh -s /bin/bash
Измените путь к /usr/local/bin/bash
или везде, где удар расположен. Если Вы вызываете chsh
без аргументов Вы получите меню, показывающее, что окружает, Вам разрешают выбрать.
Можно проверить/etc/bashrc в масштабе всей системы и/или/etc/profile файлы. Также можно добавить что-то вроде этого к файлам:
if [ `whoami` == "testuser" ]
then
alias x='echo x' # alias list..
fi