Mi dispiace, vorrei chiedere questo sotto forma di un commento alla risposta selezionata, ma non ho ancora alcun rappresentante su superutente.
La risposta di sicurezza ha senso, ma se si inserisce "." nel tuo PERCORSO come ultima cosa, la shell non dovrebbe cercare nella directory corrente per ultima mentre cerca i file eseguibili e quindi ridurre il rischio per la sicurezza? Se avesse cercato $ PATH in ordine, avrebbe trovato / bin / ls prima di trovarlo ./ls.
Quindi, quanto è insicuro per me mettere "." alla fine della mia variabile d'ambiente $ PATH?
Funziona come suggerisco. Ecco come ho testato:
Innanzitutto, aggiungi "." alla fine della variabile d'ambiente PATH.
Quindi, inserire il seguente file in alcune directory, come ~ / dir1 / dir2 / test_which.rb:
#!/your/path/to/ruby
puts "this file is from the current directory"
E metti questo file in /usr/bin/test_which.rb
#!/your/path/to/ruby
puts "this file is at /usr/bin/test_which.rb"
Assicurati di chmod + x i file in modo che siano eseguibili.
Ora, se cambi directory in ~ / dir1 / dir2 ed esegui test_which.rb, otterrai l'output
this file is at /usr/bin/test_which.rb
Infatti, se esegui "which test_which.rb" da qualsiasi luogo, dovrebbe riportare
/usr/bin/test_which.rb
Puoi comunque eseguire il file nella directory corrente digitando:
./test_which.rb
ls
sarà/usr/bin/ls
e./ls
non lo sarà. C'è anche l'ostacolo di se sai come aggiungere.
alla fine del tuo percorso, probabilmente hai qualche idea su cosa stai facendo. root non dovrebbe mai avere.
nel percorso, molti sistemi non consentono nemmeno al root di accedere.