mount -o nodev可禁用挂载点下设备文件的解析与创建,防止提权攻击;需配合noexec、nosuid使用,并通过/etc/fstab持久化配置。

mount -o nodev 可以阻止在挂载点下解析或创建设备文件(如 /dev/sda、/dev/zero),这对非系统分区(比如数据盘、U盘、Web上传目录)非常关键——能有效防止攻击者通过伪造设备节点提权或破坏系统。
nodev 的作用很直接:它让内核忽略该文件系统中所有字符设备和块设备文件。即使用户有写权限、甚至成功写入一个 fake_sda 文件,内核也不会把它当作可访问的设备,mkfifo 或 mknod 创建的设备节点也完全失效。
什么时候必须加 nodev
- 挂载外部存储(U盘、移动硬盘):避免自动挂载时被注入恶意设备节点
- 用户可写的数据目录(如
/data/uploads、/var/www/html/files) - 临时文件系统(
tmpfs类型的/tmp或/var/tmp) - NFS、CIFS 等网络共享,尤其来自不可信源时
怎么加 nodev(临时生效)
如果目标是已挂载的分区,优先用 remount:
sudo mount -o remount,nodev /mnt/data
如果是首次挂载,直接带上选项:
sudo mount -t ext4 -o defaults,nodev /dev/sdb1 /mnt/data
注意:defaults 默认包含 dev,所以必须显式写 nodev 才能覆盖它。
使用一条命令部署ProbeChain Rydberg测试网代理节点。自动注册为Agent(NodeType=1),免gas,支持macOS/Linux/Windows。触发词:/r
如何确保重启后仍生效
编辑 /etc/fstab,找到对应行,在第 4 字段(挂载选项列)加入 nodev:
UUID=abcd-1234 /mnt/data ext4 defaults,nodev,nosuid,noexec 0 2
改完别急着重启,先测试配置是否合法:
sudo mount -a
无报错即表示语法正确、选项可用;再用 findmnt -o TARGET,OPTIONS /mnt/data 确认输出里含 nodev。
nodev 不是万能的,要配合其他选项
- 单独
nodev不防执行,建议搭配noexec和nosuid形成基础三件套 - 对用户上传目录,还需控制文件默认权限,例如设
umask=022或用setfacl -d设默认 ACL - 若挂载点本身是根分区子目录(如
/home/user/usb),nodev无效——它只对独立挂载的文件系统起作用,可用findmnt /path确认是否为独立挂载点










