首页/安全/安全加固速查//tmp 挂载加固(nosuid,nodev,noexec)
主机加固基线90 条

/tmp 挂载加固(nosuid,nodev,noexec)

通过独立分区或 tmpfs 挂载 /tmp 并加 noexec、nosuid、nodev 选项,阻断从临时目录执行恶意程序与利用 SUID 提权的路径,是 CIS 入侵防范的常规项。

安全加固速查安全更新于 2026-10-13

给临时目录加限制

把 /tmp 独立挂载并加上 noexec、nosuid、nodev 后,攻击者下载到临时目录的程序无法直接执行、目录内的 SUID 程序不起作用、设备文件也不会被解析。它是入侵防范里的常规项,代价是可能影响依赖在 /tmp 解包并运行的安装程序、CI 任务与部分监控插件——所以要先评估再上生产。

基本信息

加固项临时目录挂载选项收敛
适用平台Linux(RHEL/CentOS、Debian/Ubuntu)
权限要求root(改 fstab 或 systemd 单元)
目标选项rw,nosuid,nodev,noexec
基线对应CIS:nodev/nosuid/noexec on /tmp partition

典型使用场景

  • 公网可访问的服务器,降低下载即执行的攻击成功率
  • 等保测评中“入侵防范”条款要求隔离临时目录执行能力
  • 多租户或跳板机上限制低权限用户从临时目录运行工具
  • 容器宿主机收紧 /tmp 与 /dev/shm 的行为
  • 应急加固阶段快速叠加一层缓解措施

核查当前挂载

核查当前挂载
findmnt /tmp   # 看实际来源与已生效选项
mount | grep ' /tmp '   # 传统写法的对照输出
findmnt -no OPTIONS /tmp   # 只要选项字段,便于脚本判定

配置与生效

配置与生效
# /etc/fstab
# tmpfs /tmp tmpfs defaults,rw,nosuid,nodev,noexec,relatime 0 0
mount -o remount,nosuid,nodev,noexec /tmp   # 先临时验证业务是否受影响
systemctl daemon-reload && mount -a         # 上线前用 mount -a 验证 fstab 可解析
findmnt /tmp   # 复核选项已生效

挂载选项作用

选项作用副作用提醒
noexec禁止在该文件系统执行二进制安装包、CI 脚本可能在 /tmp 执行失败
nosuid忽略目录内 SUID/SGID 位极少造成业务影响,收益明确
nodev不解析目录内设备文件误把设备文件放临时目录的场景会报错
tmpfs内存文件系统,重启清空占用内存;入侵痕迹不易留存
改 fstab 属于高风险操作:写错条目会让系统启动进紧急模式。稳妥做法是先 mount -o remount 临时验证业务,再用 mount -a 校验 fstab 语法,最后才重启。同时保留一份控制台或救援通道,避免远程机器失去登录可能。
部分发行版由 systemd 的 tmp.mount 单元管理 /tmp,此时 fstab 与单元双写会互相冲突。动手前先用 findmnt 确认 /tmp 的实际来源,改对应的那一处,并在变更后复核挂载选项。

易错点

  • 直接改 fstab 不验证就重启:语法错误会让系统无法正常启动,应先 mount -o remount 或 mount -a 试跑
  • noexec 一刀切后安装程序、自动更新、CI 构建失败,属常见返工点,应先在测试机验证完整流程
  • /tmp 改成 tmpfs 后占用内存且重启清空:大文件写入可能触发 OOM,事故现场与日志也会随之丢失
  • 只改 /tmp 而不动 /dev/shm 与 /var/tmp,攻击面只是被挪了个地方

数据来源与参考

  • CIS Linux Benchmark:Ensure nodev/nosuid/noexec option set on /tmp partition
  • mount(8)、fstab(5) 手册

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌