
我發現 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,儘管理想的數字取決於文件系統、攻擊者在創造所有可能性方面的勤奮程度(如果他們可以創造大部分或全部可能性,那麼這可能是拒絕服務) ,以及檔案系統允許的inode 數量,以及監控有問題的目錄是否存在荒謬數量的檔案(或inode 耗盡)的努力程度。使用數學組合找出給定數量的 X 允許給定數量的輸入字元(通常是字母數字加下劃線)有多少個潛在檔案。