拥有 SSD - 建议安装/tmp
为tmpfs
.
例子:
- https://askubuntu.com/questions/550589/best-way-to-mount-tmp-in-fstab
- https://yktoo.com/en/blog/post/233
- https://askubuntu.com/questions/173094/how-can-i-use-ram-storage-for-the-tmp-directory-and-how-to-set-a-maximum-amount
每个示例中的安装选项都不同 - 为什么???
默认的 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
)。 - 和
uid
是gid
因为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 且全局可写,并且设置了组粘性位,那么堵塞这些漏洞可能为时已晚。