Поскольку текущий каталог не входит в переменную окружения PATH
по умолчанию, а исполняемые файлы без указания пути ищутся только внутри каталога, указанного в PATH
. Вы можете изменить это поведение, добавив .
в конец PATH
, но это не обычная практика, вы просто привыкнете к этому UNIXism.
Идея, лежащая в основе этого, заключается в том, что если поиск исполняемых файлов сначала выполняется в текущем каталоге, злоумышленник может поместить в свой домашний каталог исполняемый файл с именем, например ls
или grep
или какая-либо другая часто используемая команда, обманывая администратора, чтобы использовать ее, возможно, с полномочиями суперпользователя. С другой стороны, эта проблема не особенно чувствуется, если вы поставите .
в конце PATH
, так как в этом случае системные каталоги ищутся первыми.
Но : наш злонамеренный пользователь все еще может создавать свои опасные сценарии, называемые общими опечатками часто используемых команд, например, sl
для ls
(Подсказка: привяжите его к Steam Locomotive , и вы все равно не будете обмануты :D
).
Итак, вы видите, что все же лучше быть в безопасности, если вы вводите имя исполняемого файла без указания пути, вы уверены, что запускаете что-то из системных каталогов (и, следовательно, предположительно безопасно).