fstab中的nodev和nosuid的解释

当有人介绍如何安装tmpfs或ramfs时,我会看到网上不断提出的两个选项。 通常也与noexec,但我特别感兴趣的nodev和nosuid。 我基本上讨厌盲目重复别人的build议,没有真正的理解。 因为我只看到网上的复制/粘贴说明,所以我在这里问。

这是从文档:
nodev – 不要解释文件系统上的块特殊设备。
nosuid – 阻止suid和sgid位的操作。

但是我想要一个实际的解释,如果我离开这两个,会发生什么。 比方说,我已经configuration了tmpfs或ramfs(没有提到这两个选项集),可以由系统上的特定(非root)用户访问(读写)。 用户可以做什么来伤害系统? 不包括使用ramfs时消耗所有可用系统内存的情况

你不必盲目追随这个硬性规定。 但是更多以安全为重点的情况的推理如下。

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

  • nosuid安装选项指定文件系统不能包含set userid文件。 防止世界可写的文件系统上的setuid二进制文件是有意义的,因为存在根升级或其他可怕的风险。

对于什么是值得的,我不经常使用这些参数……只有在公共系统中有其他兼容性考虑。