/tmp 安装选项作为 tmpfs:兼容性和安全性

/tmp 安装选项作为 tmpfs:兼容性和安全性

拥有 SSD - 建议安装/tmptmpfs.

例子:

每个示例中的安装选项都不同 - 为什么???

默认的 Ubuntu 16 安装将 root ( ) 的安装选项设置/为(来自/etc/mtab):

/dev/sda1 / ext4 rw,relatime,errors=remount-ro,data=ordered 0 0

因此,不应应用所有其他选项(如示例/链接中所建议的)。
网络上各种示例中的一些安装选项包括:

defaults,noatime,mode=1777

或者:

defaults,noatime,nosuid,nodev,noexec,mode=1777,size=512M

但:

  • 感觉noatime没什么用,因为数据存储在 RAM 中,无论如何速度都很快。
  • 为什么nosuid,nodev,noexec
    他们如何知道软件是否依赖于某些选项?

我认为最好坚持安装应用的默认权限,这意味着:

rw,relatime,mode=1777,uid=0,gid=0

为了保证各软件的正常运行:

  • 权限为 1777,因为默认权限/tmp也是drwxrwxrwt(请参阅 参考资料stat -c "%a %n" /tmp)。
  • uidgid因为root具有/tmp相同的。

我在这里缺少什么吗?

答案1

系统,标准激活方式临时文件系统/tmp是激活它/etc/default/tmpfs并设置RAMTMP=yes(即使几乎每个人都在编辑 /etc/fstab)。这样您就可以看到默认选项是什么。在我的 Devuan Ascii 上,安装选项有:

$ mount -l | grep "/tmp"
tmpfs on /tmp type tmpfs (rw,nosuid,nodev,relatime,size=3293980k)

大小默认为 20% 物理内存 + 交换空间。

所以我猜你在 /etc/fstab 中使用相同的选项不会出错。

答案2

建议将 /tmp 挂载为 tmpfs

不。

可能如果您不关心重新启动时丢失文件,请在 /tmp 挂载 tmpfs 设备(tmpfs 在内存中实现)。

因此,不应应用所有其他选项(如示例/链接中所建议的)。

呃?您不想要这些选项吗?或者您认为操作系统会忽略它们?对于前者,选择您确实想要的选项 - 它们将被尊重/它们不会被继承。

没有时间感觉没用

是的,在这里拥有 atime 或 relatime 的成本可以忽略不计。

为什么使用 nosuid、nodev、noexec ?

因为这些可以在 /tmp 中被利用。然而,粘性位的使用还可以缓解使用这些向量的(所有?)攻击。

rw,关系时间,模式=1777,uid=0,gid=0

rw - 这对于临时文件系统有点有用 - 但它也是默认行为,因此您不需要明确说明这一点。

relatime - 由您决定 - 但同样是默认值。

mode=1777,uid=0,gid=0 - 如果在挂载时,您的 /tmp 不属于 root 且全局可写,并且设置了组粘性位,那么堵塞这些漏洞可能为时已晚。

相关内容