Кроме того, что сказал Джейсон, еще одно менее элегантное решение, при котором вам не нужно изменять конфигурацию и можно вводить другие параметры ssh, такие как -t и -Y:
ssh -tY user@server1 "ssh -tY user@server2; bash -s"
Если which date
дает разные результаты для root
и другого пользователя, вероятно, у них разные значения для PATH
. Обычный пользователь имеет /bin
раньше, чем/usr/bin
(или вообще без /usr/bin
), а root
имеет /usr/bin/
до/bin
(или вообще без /bin
).
Вы можете проверить это, запустив:
echo ${PATH}
и как root
, и как не -пользователь root.
Переменная PATH
представляет собой разделенный двоеточием -список каталогов, в которых оболочка ищет команды, если не указан абсолютный путь. Оболочка будет искать эти каталоги слева направо в порядке их перечисления. Если оболочка находит команду в каталоге, она выполняет ее. Команда which
выполняет аналогичный обход и сообщает о первом найденном совпадении.
Это зависит от переменной $PATH
пользователя, под которым вы в данный момент вошли. Если скрипт находится более чем в одном каталоге, используется первый найденный, в этом случае $PATH
root должен быть чем-то вроде
PATH="/usr/bin:/bin:...
и для пользователя должно быть что-то вроде
PATH="/bin...