
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 によって、指定された数の入力文字 (通常は英数字とアンダースコア) に対して許可されるファイルの数を計算します。