对于那些运行 “systemd-tmpfiles –purge “命令并认为该命令只是删除临时文件的用户,请再三考虑并小心。实际上,它会删除由 tmpfiles.d 条目创建的所有文件和目录…包括由 systemd-tmpfiles 的 home.conf 创建的 /home。最近几天,用户在期待删除 tmp 文件时被这种行为咬了一口,systemd 256.1 现已发布,其中一项更改可避免无意中删除重要的 home 目录。
在 Mastodon 和一份 systemd bug 报告中,用户惊讶地发现运行 “systemd-tmpfiles –purge” 会删除所有由 tmpfiles.d 配置文件创建的文件/文件夹,即使默认情况下 /home 也是由该文件创建的。因此,那些试图在不阅读手册页面的情况下进行系统维护的用户可能会发现自己的/home数据被删除了。
最初,微软的 systemd 开发人员卢卡-博卡西(Luca Boccassi)拒绝了这份错误报告:
所以,一个在文档中写明 “由 tmpfiles.d/ 条目创建的所有文件和目录都将被删除 “的选项,而你对此一无所知,听起来像是个 “好主意”?你有没有事先查看过你有哪些 tmpfiles.d 条目?
也许不要随意运行你一无所知的命令,而忽略了文档告诉你的东西?只是个想法
经过这几天的讨论,systemd-tmpfiles 的行为最终得到了改进。昨天合并的补丁让 systemd-tmpfiles 在运行清除时接受一个配置文件。这样,用户就必须在知情的情况下提供他们最终希望删除的配置文件。文档也得到了改进,使行为更加清晰。
该补丁已在昨天的 systemd 256.1 点版本中发布。
转自 Systemd 256.1 Fixes “systemd-tmpfiles” Unexpectedly Deleting Your /home Directory – Phoronix