Entschuldigung, ich möchte dies in Form eines Kommentars zu der ausgewählten Antwort erfragen, aber ich habe noch keinen Vertreter für den Superuser.
Die Sicherheitsantwort macht Sinn, aber wenn Sie "." Sollte die Shell in Ihrem PATH nicht zuletzt im aktuellen Verzeichnis nach ausführbaren Dateien suchen und damit das Sicherheitsrisiko verringern? Wenn es $ PATH nacheinander durchsucht, findet es / bin / ls, bevor es ./ls findet.
Also, wie unsicher ist es für mich, "." am Ende meiner Umgebungsvariablen $ PATH?
Es funktioniert so, wie ich es vorschlage. So habe ich getestet:
Fügen Sie zuerst "." zum ENDE Ihrer PATH-Umgebungsvariablen.
Fügen Sie dann die folgende Datei in ein Verzeichnis ein, z. B. ~ / dir1 / dir2 / test_which.rb:
#!/your/path/to/ruby
puts "this file is from the current directory"
Und legen Sie diese Datei unter /usr/bin/test_which.rb ab
#!/your/path/to/ruby
puts "this file is at /usr/bin/test_which.rb"
Stellen Sie sicher, dass Sie die Dateien mit der Tastenkombination chmod + x ausführen.
Wenn Sie nun das Verzeichnis in ~ / dir1 / dir2 ändern und test_which.rb ausführen, erhalten Sie die Ausgabe
this file is at /usr/bin/test_which.rb
Wenn Sie "which test_which.rb" von einer beliebigen Stelle aus ausführen, sollte dies tatsächlich gemeldet werden
/usr/bin/test_which.rb
Sie können die Datei weiterhin im aktuellen Verzeichnis ausführen, indem Sie Folgendes eingeben:
./test_which.rb
ls
wird/usr/bin/ls
und./ls
nicht. Es gibt auch die Hürde, wenn Sie wissen, wie Sie.
das Ende Ihres Weges ergänzen können , haben Sie wahrscheinlich eine Vorstellung davon, was Sie tun. root sollte nie haben.
in den Weg, viele Systeme nicht einmal root mehr einloggen können.