У меня есть доступ администратора к удаленному компьютеру с Debian Linux. Сначала все работало хорошо. Я попытался определить некоторые переменные глобально, чтобы все пользователи могли запускать определенный код. Теперь я не могу отправлять файлы scp на этот сервер. Когда я запускаю команду scp, она говорит:
bash: scp: command not found
lost connection
scp
доступен как на моем локальном ПК, так и на сервере. Я могу подключиться к удаленному компьютеру с помощью ssh. но когда я подключаюсь, он говорит:
-bash: id: command not found
-bash: [: : integer expression expected
но когда я запускаю эту команду:
which id
выходной сигнал:
/usr/bin/id
И я думаю, что путь к базовым кодам определен для системы. Также удаленный компьютер знает проход к scp и вывод в which scp
:
/usr/bin/scp
Все, что я помню о том, что я сделал, это создал файл в , /etc/profile.d
а затем удалил его. Я также проверил и убедился, что нет неправильных спецификаций PATH в ~/.bashrc
, ~/.profile
и /etc/profile
.
Кто-нибудь знает, что не так с удаленным компьютером?
решение1
Вы можете использовать следующую команду, чтобы проверить, имеет ли пользователь доступ к scp
команде или нет:
echo $PATH
Пример вывода:
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin
Это отобразит пути команд, к которым у пользователя есть доступ.
Предположим, если вы проверяете scp
команду, scp
команда будет расположена в /usr/bin/
. Если вывод echo $PATH
не содержит /usr/bin/
, то отображается сообщение «команда не найдена».
Чтобы устранить проблему, выполните
export PATH=$PATH:/usr/bin/
Для постоянных изменений добавьте указанное выше в свой.bash_profile
решение2
В вашем файле есть ошибка .bashrc
. Используйте следующую команду для восстановления версии по умолчанию, а затем переподключитесь.
$ cp /etc/skel/.bashrc ~/
решение3
Проблема решена. Я добавил неправильное определение PATH в /etc/environment
. Исправление этой ошибки решило проблему.