Когда вы sudo
, вы получаете предварительно сконфигурированный $PATH
, который (должен быть) что-то вроде пути по умолчанию пользователя root . Ваша программа не находится в этом списке каталогов, определенных $PATH
.
Смотри например
sudo пытается быть в безопасности при выполнении внешних команд.
Есть два разных способа работы с переменными среды. По умолчанию
опция env_reset
sudoers включена. Это приводит к тому команды должны быть выполнены с минимальной средой , содержащей TERM
,
PATH
, HOME
, SHELL
, LOGNAME
, USER
и USERNAME
в дополнение к переменным из процесса вызывающего это допускается env_check
и env_keep
sudoers вариантов. Существует фактически белый список для переменных среды.
Если вы не можете настроить sudo
сохранение $PATH
, обычно обходной путь - указать полный путь к программе. Это может плохо работать со сценариями, которые вызывают другие исполняемые файлы в (недоступном) каталоге.
cd
. Используяdzdo cd
возврат "команда не найдена". Конечно , позже я понял , чтоcd
ING в каталог, у меня нет разрешения на, не поможет очень много, так что я либо нужен корневой оболочки или необходимостьdzdo ls
,dzdo mv
и т.д. содержимое из - за пределов , что реж.