Lo siento, me gustaría preguntar esto en forma de un comentario a la respuesta seleccionada, pero todavía no tengo ningún representante en superusuario.
La respuesta de seguridad tiene sentido, pero si pones "." en su RUTA como la última cosa, ¿no debería mirar el shell en el directorio actual al buscar ejecutables, y así reducir el riesgo de seguridad? Si buscara $ PATH en orden, encontraría / bin / ls antes de encontrar ./ls.
Entonces, qué inseguro es para mí poner "." al final de mi variable de entorno $ PATH?
Funciona como sugiero. Así es como lo probé:
Primero, agregue "." al final de su variable de entorno PATH.
Luego, coloque el siguiente archivo en algún directorio, como ~ / dir1 / dir2 / test_which.rb:
#!/your/path/to/ruby
puts "this file is from the current directory"
Y ponga este archivo en /usr/bin/test_which.rb
#!/your/path/to/ruby
puts "this file is at /usr/bin/test_which.rb"
Asegúrese de chmod + x los archivos para que sean ejecutables.
Ahora, si cambia el directorio a ~ / dir1 / dir2 y ejecuta test_which.rb, obtendrá el resultado
this file is at /usr/bin/test_which.rb
De hecho, si ejecuta "which test_which.rb" desde cualquier lugar, debería informar
/usr/bin/test_which.rb
Todavía puede ejecutar el archivo en el directorio actual escribiendo:
./test_which.rb
ls
será/usr/bin/ls
y./ls
no lo será. También existe el obstáculo de que si sabe cómo agregar.
al final de su camino, probablemente tenga alguna idea de lo que está haciendo. root nunca debería tener.
en el camino, muchos sistemas ya ni siquiera permiten que root inicie sesión.