2017-02-14 10 views
0

Я уже решил эту проблему, но я не знаю, почему это решает проблему, и мне не нравится не знать, что пошло не так. Я использую терминал на UbuntuКоманда без sudo работает, но требует sudo

Здесь был вопрос ...

  1. Если я бегу $ ngm -args он работает, но не потому, что он требует SUDO

  2. Если я бегу $ sudo ngm -args я получаю ошибка, как ngm не найден

  3. Если я запустил $ sudo /usr/local/lib/ngm -args, он работает с sudo и отлично работает.

Я не понимаю, почему 3 работы и 2 не работают.

ответ

2

При попытке запустить $ ngm -args оболочка будет искать исполняемый файл в своей переменной $PATH, и он найдет его. При попытке запустить исполняемый файл он обнаруживает, что он должен быть sudo и выходит.
Когда вы запустите $ sudo ngm -args, оболочка будет искать исполняемый файл в среде $PATH пользователя Root, и он не сможет его найти.
При запуске, как и в последнем случае, оболочке не нужно искать в $PATH пользователя root, потому что он находит его в указанном вами пути /usr/local/lib/ngm, поэтому обе проблемы исчезли.

This might be a starting point in order to understand the PATH