У меня предстоящий тест, и, глядя на прошлые годы, они всегда задают аналогичный вопрос. В основном дыра в безопасности, которая может быть создана, если установить что-то вроде:
PATH=".:/bin:/usr/bin"
Я понимаю, что PATH определяет абсолютные каталоги, в которых будет выполняться поиск исполняемого файла, когда пользователь вызывает команду, такую как «ls». Я просто не уверен, к чему это приведет.
Похоже, что он сначала проверит текущий каталог (на основе '.') На наличие каталога «/ bin», а затем перейдет к абсолютному каталогу «/ usr / bin», если его нет. Проблема заключается в том, что если пользователь с именем «ls» и злоумышленник создал «/ bin» в текущем каталоге, он может содержать версию ls, которая, например, удаляет кучу файлов.
Это на правильном пути, или я неправильно понимаю обозначение PATH?
ПУТЬ = ".: / Bin: / usr / bin"
Вы неправильно понимаете обозначение, двоеточия являются разделителями, поэтому это будет проверяться в следующих местах (по порядку)
Наличие в пути «/ bin» и «/ usr / bin» - это нормально.
имея "." на пути, тем более, что первое место для поиска опасно, потому что текущий каталог часто будет каталогом, который может быть записан одним или несколькими другими пользователями. Эти пользователи могут создавать файлы в каталоге, которые вы, вероятно, непреднамеренно выполняете (например, создав файл с именем «ls»), давая им возможность выполнить свой код вашим пользователем.