Почему разные командные сценарии используются для одной и той же команды при выполнении от имени обычного пользователя и при выполнении от имени корневого пользователя?

Кроме того, что сказал Джейсон, еще одно менее элегантное решение, при котором вам не нужно изменять конфигурацию и можно вводить другие параметры ssh, такие как -t и -Y:

ssh -tY user@server1 "ssh -tY user@server2; bash -s"
0
28.09.2018, 18:21
2 ответа

Если which dateдает разные результаты для rootи другого пользователя, вероятно, у них разные значения для PATH. Обычный пользователь имеет /binраньше, чем/usr/bin(или вообще без /usr/bin), а rootимеет /usr/bin/до/bin(или вообще без /bin).

Вы можете проверить это, запустив:

echo ${PATH}

и как root, и как не -пользователь root.

Переменная PATHпредставляет собой разделенный двоеточием -список каталогов, в которых оболочка ищет команды, если не указан абсолютный путь. Оболочка будет искать эти каталоги слева направо в порядке их перечисления. Если оболочка находит команду в каталоге, она выполняет ее. Команда whichвыполняет аналогичный обход и сообщает о первом найденном совпадении.

1
28.01.2020, 02:42

Это зависит от переменной $PATHпользователя, под которым вы в данный момент вошли. Если скрипт находится более чем в одном каталоге, используется первый найденный, в этом случае $PATHroot должен быть чем-то вроде

PATH="/usr/bin:/bin:... 

и для пользователя должно быть что-то вроде

 PATH="/bin...
0
28.01.2020, 02:42

Теги

Похожие вопросы