3

Я прочитал одно объяснение, в котором говорится, что он может позволить вредоносным исполняемым файлам, находящимся в cwd, работать вместо встроенных утилит и основных утилит с аналогичными именами.

Для того, чтобы что-то разрушить, разве это не относится только к root? И в любом случае, если '.' были добавлены к PATH вместо предварительно добавленных, не должно ли это обойти эту "замену" атаки, так как каталоги PATH сканируются по порядку? (Разве они не отсканированы по порядку?)

Есть ли другие проблемы, кроме этой?

4 ответа4

10

Это зависит от того, что вы определяете как хаос. Если вы считаете потерю всех ваших личных файлов хаосом, то я бы сказал да, даже если у вас есть резервная копия.

Что касается добавления, да, это безопаснее, но если ваш набор текста не намного лучше моего, опечатки могут вызвать такую же проблему.

3

Имея "." в пути приводят к магическим появлению и исчезновению команд. CD где-нибудь, и ваша команда начинает или перестает работать. Очевидно, что у вас кончились слова "." если команда "./doit", чем если команда "doit". Та же проблема относится к ".." и любым путям, начинающимся с "./" или "../" и любым другим относительным путям.

Для личных команд я рекомендую $ HOME/bin. Оттуда они могут мигрировать в /usr /local /bin, если они достаточно полезны.

РЕДАКТИРОВАТЬ: Как указано в принятом ответе, исполняемые файлы (программы) в текущем каталоге могут сделать ужасные вещи для вашей системы. Если они имеют то же имя, что и обычно используемая команда, их относительно легко вызвать, перейдя в каталог, содержащий их. Известно, что злые люди пишут такие программы с целью причинения вреда. Случайное выполнение таких программ можно уменьшить, поместив запись относительного пути в конец списка PATH. Программы, названные с помощью общих орфографических ошибок общих команд, могут по-прежнему запускаться.

3

Да, переменные пути обрабатываются по порядку, и ваше решение гарантирует, что известные исполняемые файлы будут обработаны первыми.

Однако вы по-прежнему оставляете место для запуска вредоносных исполняемых файлов. Например, если я вставлю где-нибудь скрипт bash, который запускает 'rm -fr ~/' или что-то еще более неприятное, а затем назвал исполняемый файл 'sl' (обычная опечатка для 'ls'), вы можете оказаться в любой ситуации!

Не говори мне, что ты никогда не запускаешь команды typo'd;)

0

Его просто набрать ./sl, который довольно специфичен:"Я хочу выполнить файл с именем" sl "в CWD. Там нет ошибки, чтобы сделать это из-за $ PATH. :-)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .