fstab 中 nodev 和 nosuid 的解释

fstab 中 nodev 和 nosuid 的解释

当有人描述如何挂载 tmpfs 或 ramfs 时,我经常在网上看到这两个选项。通常也使用 noexec,但我特别感兴趣的是 nodev 和 nosuid。我讨厌盲目地重复别人的建议,而没有真正理解。而且由于我在网上只看到关于此的复制/粘贴说明,所以我在这里提问。

这是来自文档:
节点- 不要解释文件系统上的块特殊设备。
诺苏伊德- 阻止 suid 和 sgid 位的操作。

但我希望得到一个实际的解释,如果我忽略这两个会发生什么。假设我配置了 tmpfs 或 ramfs(没有设置这两个提到的选项),系统上的特定(非 root)用户可以访问(读取+写入)。该用户可以做什么来损害系统?排除 ramfs 消耗所有可用系统内存的情况

答案1

您不必盲目地遵循这一硬性规定。但在更注重安全性的情况下,理由如下。

  • mount选项nodev指定文件系统不能包含特殊设备:这是一项安全预防措施。您不希望像这样的用户可访问文件系统有可能创建字符设备或访问随机设备硬件。

  • mount选项nosuid指定文件系统不能包含设置用户 ID 的文件。阻止setuid在可全局写入的文件系统上运行二进制文件是有意义的,因为存在 root 升级或其他可怕情况的风险。

不管怎样,我并不经常使用这些参数......只在有其他合规性考虑的面向公众的系统上才使用。

相关内容