新的默认设置:/tmp 上的 tmpfs

2020年7月27日 | Thorsten Kukuk | 无许可

简介

我们对我们的容器宿主机操作系统 openSUSE MicroOS 进行了重要更改,我们的 Kubernetes 平台 openSUSE Kubic 将会继承此更改,因为它基于 openSUSE MicroOS:我们现在使用 tmpfs 来挂载 /tmp

tmpfs 是一个驻留在内存中的临时文件系统。将目录挂载为 tmpfs 可以有效地加速对文件的访问,并确保在重启时自动清除其内容。

全新安装将默认使用 tmpfs 来挂载 /tmp。旧安装需要手动转换为此设置,但仍然可以切换回使用磁盘空间来挂载 /tmp。如果 /tmp 中存储了大型文件,这尤其有用且重要。

如果需要在 /tmp 下方创建临时文件或目录,可以在启动时使用 tmpfiles.d 来创建。但切勿在 /tmp 中存储重要文件,它们将无法在下次重启后幸存。

将旧安装转换为使用 tmpfs

由于 tmpfs 将被挂载在 /tmp 之上,因此现有文件将不再可访问。以下步骤将清理 /tmp 并启用 /tmpfs

  1. 备份当前存储在 /tmp 中的所有重要文件!
  2. 从 /etc/fstab 中删除 /tmp 的行
  3. 删除 /tmp 中的所有文件
  4. 重启

重启后,应该使用 tmpfs 来挂载 /tmp

使用磁盘空间来挂载 /tmp

在为 /tmp 创建新的 btrfs 子卷并将其添加到 /etc/fstab 后,tmpfs 将不再用于挂载 /tmp

实现此目的最简单的方法是使用 snapper 0.8.12 或更高版本的 mksubvolume

# transactional-update shell
transactional update # mksubvolume /tmp
transactional update # exit
# systemctl reboot

之后,所有文件将再次存储在磁盘上,并在重启后幸存。

未来计划

未来,我们计划默认情况下进一步加强系统安全性,例如通过使用 noexec 标记 /tmp 和文件系统的其他可写部分。

类别: 博客

标签

分享这篇文章