一時ディレクトリ名の末尾の文字列

一時ディレクトリ名の末尾の文字列

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)親ディレクトリへの書き込みアクセス権を持つローカル攻撃者が推測したり事前に作成したりすることが困難な (うまくいけば) 一意のファイルを作成する呼び出しです。

6 つの X は少ないと思われるかもしれません。OpenBSD 開発者は 10 個の X を推奨していますが、理想的な数はファイルシステム、攻撃者があらゆる可能性をどれだけ熱心に作成できるか (可能性のほとんどまたはすべてを作成できる場合、サービス拒否になる可能性があります)、ファイルシステムが許可する inode の数、および問題のディレクトリが不合理な数のファイル (または inode の枯渇) に対してどれだけ熱心に監視されているかによって異なります。数学的組み合わせ指定された数の X によって、指定された数の入力文字 (通常は英数字とアンダースコア) に対して許可されるファイルの数を計算します。

関連情報