Конечная строка в имени временных каталогов

Конечная строка в имени временных каталогов

Я обнаружил, что имена частных каталогов systemd заканчиваются строкой, например:

systemd-private-3108aa34ce664b6dbb374430ba5f0592-mariadb.service-Q78z1I

Что означает такая строка?

решение1

Копаясь вИсточникраскрывает

./src/core/namespace.c:        x = strjoin(prefix, "/systemd-private-", sd_id128_to_string(boot_id, bid), "-", id, "-XXXXXX", NULL);

который можно было бы в конечном итоге преследовать как отношение кmktemp(3)вызов, который создает (надеюсь) уникальный файл, который локальному злоумышленнику с правами записи в родительский каталог будет сложно угадать или создать заранее.

Шесть X можно считать коротким числом; разработчики OpenBSD вместо этого рекомендуют 10 X, хотя идеальное число зависит от файловой системы, от того, насколько усердным может быть злоумышленник в создании всех возможностей (если он может создать большинство или все возможности, то это может быть отказом в обслуживании), от того, сколько инодов позволяет файловая система, и насколько усердно отслеживается рассматриваемый каталог на предмет абсурдного количества файлов (или исчерпания инодов). Используйтематематическая комбинациячтобы выяснить, сколько потенциальных файлов допускает заданное количество X для заданного количества входных символов (обычно буквенно-цифровых плюс подчеркивание).

Связанный контент