Kann die PATH-Variable beschädigt sein?

Kann die PATH-Variable beschädigt sein?

Ich habe rbenv installiert, ein Ruby-Versionsverwaltungsprogramm. Ich habe in der .bashrc-Datei nachgesehen und festgestellt, dass die Pfadvariable wie folgt geändert wurde:

export PATH="$HOME/.rbenv/bin:$PATH"

Ich denke, der Teil ":$PATH" wurde eingefügt, um den alten Pfadinhalt einzuschließen. Ich würde gerne wissen, was passieren würde, wenn ein Programm, das die Pfadvariable ändert, den Teil ":$PATH" nicht einschließt. Könnte ich einige Programme nicht über die Befehlszeile ausführen, da die Bin-Verzeichnisse, in denen sie sich befinden, nicht mehr in der neuen Pfadvariable enthalten sind?

Antwort1

Sie haben Recht. Pakete von Drittanbietern sollten daher den aktuellen Pfad nur erweitern und nicht einschränken.

Antwort2

PATHist eine durch Doppelpunkte getrennte Liste von Verzeichnissen, die Ihre Shell ( bash,,,,, usw. ) verwendet, um etwas zum Ausführen zu finden. Wenn das erste Wort der Zeile, die Sie in die Shell eingeben, kein Shell-Builtin oder Alias ​​ist, durchsucht die Shell die Liste der Verzeichnisse in und fishsucht nach einer ausführbaren Datei mit demselben Namen wie das erste Wort des von Ihnen eingegebenen Befehls. kshsh$PATH

command not foundFehler bei allgemeinen Befehlen ( da/media/w3/0123-4567/PODCASTS/2016-Nov-27/loe-wildlife-decline.mp3te, ls, ...) deuten auf einen fehlerhaften hin PATH. Ein Notfall PATH(der ausreicht, um das Problem zu beheben) kann mit festgelegt werden export PATH=/usr/bin:/bin:/usr/local/bin:/snap/bin.

Viele PATHFehler sind Shell-Syntaxfehler ( Spacevor oder nach =. Es ist PATH=value, keine Leerzeichen).

Was die „Pfadbeschädigung“ betrifft: Wenn ich eine „spezielle“ Version von erstellt habe ls, die in gespeichert ist /.evil/bin/ls, UND ich Ihren Pfad beschädigen kann, sodass er/.evil/bin VOR /bin, wenn Sie eingeben ls, wird die Shell /.evil/bin/lsanstelle von ausgeführt /bin/ls. Ein bekanntes Problem, aber bis es nützlich wird, ist Ihr System bereits vollständig durchdrungen.

Antwort3

Sie können sie ausführen, Sie müssen nur den vollständigen Pfad angeben. Durch die Änderung PATHwerden die zugehörigen Berechtigungen nicht geändert.

verwandte Informationen