2017-02-14 10 views
0

Ich habe dieses Problem bereits gelöst, aber ich weiß nicht, warum dies das Problem löst, und ich mag es nicht zu wissen, was schief gelaufen ist. Ich bin mit dem Terminal auf UbuntuBefehl ohne Sudo funktioniert, erfordert aber sudo

Hier war das Problem ...

  1. Wenn ich $ ngm -args laufen läuft es aber nicht, weil es sudo erfordert

  2. Wenn ich laufen $ sudo ngm -args ich die Fehler wie ngm nicht gefunden

  3. Wenn ich $ sudo /usr/local/lib/ngm -args ausführen läuft es mit Sudo und funktioniert einwandfrei.

Ich verstehe nicht, warum die 3 funktioniert und 2 nicht funktioniert.

Antwort

2

Wenn Sie versuchen, $ ngm -args auszuführen, sucht die Shell nach der ausführbaren Datei in ihrer $PATH Variable, und sie findet es. Beim Versuch, die ausführbare Datei auszuführen, wird festgestellt, dass es sudo sein muss und beendet wird.
Wenn Sie $ sudo ngm -args ausführen, sucht die Shell nach der ausführbaren Datei in der $PATH-Umgebung des Root-Benutzers und kann sie nicht finden.
Wenn es wie die letzte Option ausgeführt wird, muss die Shell nicht in der $PATH des Benutzers root suchen, da es in dem Pfad findet, den Sie /usr/local/lib/ngm angegeben haben, so sind beide Probleme verschwunden.

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