我刚刚在我的 Ubuntu PC 上发现了这些目录。它们是怎么来的?
/var/tmp/systemd-private-762c8e6ced154b18ac76720c2c05f2aa-colord.service-fcAgPb
/var/tmp/systemd-private-762c8e6ced154b18ac76720c2c05f2aa-rtkit-daemon.service-iVKzv4
/var/tmp/systemd-private-809e24ac9abd4087b9941b3590575e64-colord.service-KlzdX8
/var/tmp/systemd-private-809e24ac9abd4087b9941b3590575e64-rtkit-daemon.service-mNk1of
每个目录仅包含另一个tmp
始终为空的子目录。
我的意思是文件名有点不言自明。systemd可能创造了它们,并且它们与RTKit和彩色服务/恶魔。
但为什么systemd 会创建它们吗?这些服务是否配置错误?
有些目录比较旧,有些目录有上次启动时的修改时间。
我可以删除它们吗?
答案1
PrivateTmp
这些是服务单元中设置的效果。您会发现您的rtkit-daemon.service
和colord.service
单元正是采用该设置。为什么那是,您必须咨询编写这些服务单元文件的人。 PrivateTmp
毕竟,这只是一个用来掩盖某些程序使用方式所留下的安全漏洞的创可贴/tmp
(/var/tmp
过度特权使用、无法避免符号链接攻击、覆盖任何人的现有文件、容易预测的名称、过度开放的权限等等)。也许安全漏洞已经修复。
PrivateTmp
是在底层实现的,systemd 在目标临时目录下创建一个 nonce 目录,然后将其挂载到原始目录的位置,作为仅服务进程可见的私有挂载点。
将这些目录随意放置曾经是 systemd 的一个错误,人们用tmpfiles.d
自己的代码片段来解决这个问题。据称,您的 systemd 版本已经修复了这个问题。当然,这些目录还因不正常的关机而留下。
当然,您可以删除相关服务当前未使用的那些。
进一步阅读
/var/tmp/systemd-private-*
目录累积。 Fedora 错误 #884344。- 安德烈·博尔津科夫(2015-02-23)。 也许解决方案,回到“修复这个永远损坏的临时文件清理服务”的争论. OpenSUSE 邮件列表。
答案2
就我而言,systemd-private-*
目录可以追溯到安装日期。准确地说是 1,313 个目录。
$ sudo ll /var/tmp/systemd* | wc -l
1313
要查看最古老的:
$ sudo find /var/tmp/systemd*/ -maxdepth 1 -type d -printf "%T@ %Tc %p\n" | sort -n | head -n10
1533569244.0956004300 Mon 06 Aug 2018 09:27:24 AM MDT /var/tmp/systemd-private-832d96941700493c839693111456977a-systemd-timesyncd.service-KcGCS0/
1533569244.0956004300 Mon 06 Aug 2018 09:27:24 AM MDT /var/tmp/systemd-private-832d96941700493c839693111456977a-systemd-timesyncd.service-KcGCS0/tmp
1533854792.8651238050 Thu 09 Aug 2018 04:46:32 PM MDT /var/tmp/systemd-private-8cbe510abc7145faad0ac1066893402d-systemd-timesyncd.service-kcbYN9/
1533854792.8651238050 Thu 09 Aug 2018 04:46:32 PM MDT /var/tmp/systemd-private-8cbe510abc7145faad0ac1066893402d-systemd-timesyncd.service-kcbYN9/tmp
1533854792.9731238090 Thu 09 Aug 2018 04:46:32 PM MDT /var/tmp/systemd-private-8cbe510abc7145faad0ac1066893402d-colord.service-wAL2zb/
1533854792.9731238090 Thu 09 Aug 2018 04:46:32 PM MDT /var/tmp/systemd-private-8cbe510abc7145faad0ac1066893402d-colord.service-wAL2zb/tmp
1533854797.7731240070 Thu 09 Aug 2018 04:46:37 PM MDT /var/tmp/systemd-private-8cbe510abc7145faad0ac1066893402d-rtkit-daemon.service-gWFNlM/
1533854797.7731240070 Thu 09 Aug 2018 04:46:37 PM MDT /var/tmp/systemd-private-8cbe510abc7145faad0ac1066893402d-rtkit-daemon.service-gWFNlM/tmp
1538476157.7205560490 Tue 02 Oct 2018 04:29:17 AM MDT /var/tmp/systemd-private-93ebca0a53c949e7ba1c49e225a5d366-systemd-timesyncd.service-ndLBbW/
1538476157.7205560490 Tue 02 Oct 2018 04:29:17 AM MDT /var/tmp/systemd-private-93ebca0a53c949e7ba1c49e225a5d366-systemd-timesyncd.service-ndLBbW/tmp
我每个工作日暂停/恢复两次,节假日暂停/恢复几次。我还从事软件开发,这可能会导致系统死机。一周左右后系统不可避免地会崩溃。Systemd 留下了 8 个目录,每个服务有 2 个目录:
- systemd-timesyncd.service
- colord.服务
- rtkit-daemon.service
- fwupd.服务
要查看最新内容:
$ sudo find /var/tmp/systemd*/ -maxdepth 1 -type d -printf "%T@ %Tc %p\n" | sort -n | tail -n10
1629682894.7751521600 Sun 22 Aug 2021 07:41:34 PM MDT /var/tmp/systemd-private-e1e62fd4795745429b7b84e298dc220e-fwupd.service-OEmxk6/
1629682894.7751521600 Sun 22 Aug 2021 07:41:34 PM MDT /var/tmp/systemd-private-e1e62fd4795745429b7b84e298dc220e-fwupd.service-OEmxk6/tmp
1631968966.2887179850 Sat 18 Sep 2021 06:42:46 AM MDT /var/tmp/systemd-private-e0e32f86f4874cb0907775645f048900-systemd-timesyncd.service-cej24b/
1631968966.2887179850 Sat 18 Sep 2021 06:42:46 AM MDT /var/tmp/systemd-private-e0e32f86f4874cb0907775645f048900-systemd-timesyncd.service-cej24b/tmp
1631968966.4487179920 Sat 18 Sep 2021 06:42:46 AM MDT /var/tmp/systemd-private-e0e32f86f4874cb0907775645f048900-colord.service-kLXvIV/
1631968966.4487179920 Sat 18 Sep 2021 06:42:46 AM MDT /var/tmp/systemd-private-e0e32f86f4874cb0907775645f048900-colord.service-kLXvIV/tmp
1631968972.2567182310 Sat 18 Sep 2021 06:42:52 AM MDT /var/tmp/systemd-private-e0e32f86f4874cb0907775645f048900-rtkit-daemon.service-y3n0R5/
1631968972.2567182310 Sat 18 Sep 2021 06:42:52 AM MDT /var/tmp/systemd-private-e0e32f86f4874cb0907775645f048900-rtkit-daemon.service-y3n0R5/tmp
1631968990.9967190020 Sat 18 Sep 2021 06:43:10 AM MDT /var/tmp/systemd-private-e0e32f86f4874cb0907775645f048900-fwupd.service-ybbQ3L/
1631968990.9967190020 Sat 18 Sep 2021 06:43:10 AM MDT /var/tmp/systemd-private-e0e32f86f4874cb0907775645f048900-fwupd.service-ybbQ3L/tmp
请注意,这些是 2021 年 9 月 18 日的最后一次启动时间:
$ uptime
11:48:31 up 8 days, 5:05, 1 user, load average: 0.60, 1.18, 1.25
Zenity 滚动框
查看终端中的列表非常耗时,因此使用以下方法zenity
会很有帮助:
$ sudo find /var/tmp/systemd*/ -maxdepth 1 -type d -printf "%T@ %Tc %p\n" | sort -n | zenity --text-info --title "Systemd files...$(uptime)" --width 1900 --height 900
最后一步是找到比上次启动更旧的目录(在我的情况下是 8 天前)并将输出传送到rm
命令。