临时目录名称中的尾随字符串

临时目录名称中的尾随字符串

我发现 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 允许给定数量的输入字符(通常是字母数字加下划线)有多少个潜在文件。

相关内容