Возможно ли, чтобы размер каталога превышал размер одного блока?

Мне ничего не известно о том, что на самом деле используются или ожидаются строки окружения, не содержащие =. Как правило, это патологические случаи.

GNU envили printenvточно напечатает их.

Для некоторых языков эти строки будут недоступны. Например, если вы вызываете perlсо строкой env foo, она не будет отображаться в keys(%ENV), хотя perlвсе равно будет передавать ее вместе с выполняемыми командами (, если вы не сбросите весь %ENVхэш ).

Таким образом, можно было бы использовать это, чтобы обойти некоторую очистку среды (, хотя надлежащая санация среды должна начинаться с пустой среды ).

Некоторые инструменты (, такие как некоторые оболочки ), удаляют их из среды, которую они получают, и не передают их вместе с выполняемыми ими командами, так что в целом не стоит полагаться на это.

Помимо=-меньшего количества строк env, к другим патологическим случаям относятся строки env с дублирующимся именем переменной (, такие как foo=goodи foo=bad, переданные в envp), которые уже рассматривались как вызывающие уязвимости (например CVE -2016 -2381 ), и строки env типа=foo(пустое имя переменной; обратите внимание, что POSIX putenv()/getenv()может устанавливать/получать эту переменную, но неsetenv()).

0
01.03.2020, 22:25
1 ответ

Система *nix не делает различий между файлом и каталогом, при этом каталог — это просто файл, содержащий имена других файлов (и номера инодов ). Следовательно, по мере того, как содержимое каталога растет вместе с количеством содержащихся в нем файлов, размер блоков (), используемых для хранения этого содержимого, также будет расти. Насколько мне известно. он будет не уменьшаться при удалении файлов в этом каталоге.

2
28.04.2021, 23:21

Теги

Похожие вопросы