必须加nosuid,nodev的目录包括/tmp、/var/tmp、/dev/shm、web上传目录(如/var/www/uploads)、外部设备挂载点(如/mnt/usb)及独立挂载的/home或/data,需通过mount -o remount临时验证或修改/etc/fstab永久配置,并建议与noexec组合使用以构成完整防护。

配置 nosuid 和 nodev 是 Linux 文件系统挂载层面最轻量、最有效的权限限制手段之一。它们不改代码、不装新工具,直接在内核层切断两类常见提权路径:SUID 程序提权(nosuid)和设备文件滥用(nodev)。关键在于——只加在“用户可写但不该有特权行为”的位置。
哪些目录必须加 nosuid,nodev?
不是所有挂载点都需要,重点锁定攻击者常利用的非信任路径:
- /tmp 和 /var/tmp:几乎所有服务都会写入,是恶意 payload 落地和提权的首选目标
- /dev/shm:tmpfs 类型内存文件系统,支持无文件执行(如 memfd_create),极易绕过磁盘扫描
-
Web 上传目录(如
/var/www/uploads):用户上传内容不可信,可能含伪装脚本或 SUID 二进制 -
外部设备挂载点(如
/mnt/usb、/media/*):U 盘插入后自动挂载,.desktop 或 autorun 类载荷直击桌面会话 - 独立挂载的 /home 或 /data:若普通用户有写入权限且不运行系统级程序,也建议启用
临时生效:用 mount -o remount 快速验证
别急着改配置文件,先用一条命令测试兼容性:
- 给
/tmp加防护:sudo mount -o remount,nosuid,nodev /tmp - 加固
/dev/shm:sudo mount -o remount,nosuid,nodev /dev/shm - 限制上传目录(还可叠加只读):
sudo mount -o remount,ro,nosuid,nodev /var/www/uploads
验证是否生效:findmnt -o TARGET,OPTIONS /tmp,输出中应明确出现 nosuid,nodev。若报错“not mounted”,说明该路径不是独立挂载点(比如只是根分区下的子目录),需先查清真实设备:df -h /tmp。
使用一条命令部署ProbeChain Rydberg测试网代理节点。自动注册为Agent(NodeType=1),免gas,支持macOS/Linux/Windows。触发词:/r
永久生效:修改 /etc/fstab
临时设置重启即失效,长期防护要写进 /etc/fstab。注意三点:
- 找到对应挂载行,例如:
/dev/sdb1 /mnt/data ext4 defaults 0 2 - 把第 4 列的
defaults替换为defaults,nosuid,nodev——因为defaults默认含suid和dev,必须显式覆盖 - 改完不要直接重启,先测试:
sudo mount -a(无报错即成功),或针对单个路径:sudo mount -o remount /mnt/data
常见示例:
/dev/sda2 /tmp ext4 defaults,nosuid,nodev 0 2 tmpfs /dev/shm tmpfs defaults,nosuid,nodev 0 0 UUID=abc123 /var/www/uploads ext4 defaults,nosuid,nodev 0 2
配合 noexec 才算完整防护
nosuid 和 nodev 单独有效,但实战中建议与 noexec 组合使用:
-
nosuid阻止chmod u+s ./malware后切换到 root -
nodev防止在挂载点里创建/tmp/evil_device并 mknod 滥用 -
noexec拦住直接运行./payload.sh或./backdoor.bin
三者合用构成基础隔离策略,覆盖绝大多数通过临时目录或上传点落地提权的攻击链。注意:noexec 不拦 python script.py 这类解释器调用,所以仍需配合 umask 或默认 ACL 控制新建文件权限。










