首页/安全/安全加固速查//dev/shm 挂载加固(noexec)
主机加固基线90 条

/dev/shm 挂载加固(noexec)

/dev/shm 是共享内存目录,默认读写执行;攻击者常把它当免磁盘落地的执行点。加固为 nosuid、nodev、noexec,压缩可执行面。

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

/dev/shm 为什么要加固

/dev/shm 是内存中的共享内存目录,默认可读可写并且可执行。攻击者常把它当作免磁盘落地的执行点:把程序直接写进内存文件系统运行,既不留磁盘痕迹,也绕开一部分基于文件的检测。加固方式是在挂载选项上加上 nosuid、nodev、noexec,压缩可执行面。

基本信息

适用平台RHEL / CentOS 系与 Debian / Ubuntu 系
目标挂载点/dev/shm(tmpfs)
加固选项nosuid,nodev,noexec
风险等级中
核查命令findmnt /dev/shm

典型使用场景

  • 主机加固基线中的共享内存目录限制项
  • 应急响应时排查内存中落地的文件
  • 排查无文件落地型攻击手法
  • 纯服务器场景的安全收敛
  • 与安全加固要求中禁用可执行内存相配合

核查与即时生效

核查与即时生效
findmnt /dev/shm                              # 查看当前挂载选项
mount | grep shm                              # 另一种查看方式
sudo mount -o remount,noexec,nosuid,nodev /dev/shm   # 立即生效,重启前有效
findmnt -no OPTIONS /dev/shm                  # 复核选项是否已经加上

持久化配置

持久化配置
# /etc/fstab 中增加一行(或修改已有行)
tmpfs /dev/shm tmpfs defaults,noexec,nosuid,nodev 0 0
# 也可以使用 systemd 挂载单元覆盖默认选项

挂载选项读法

选项含义注意点
noexec禁止在该目录执行程序依赖可执行映射的软件可能受影响
nosuid忽略该文件系统上的 SUID 位与 noexec 配合使用
nodev不解析设备文件减少设备节点相关攻击面
sizetmpfs 的容量上限过小会影响依赖共享内存的应用
默认选项未加固时的挂载参数通常只有 rw、nosuid、nodev 等
Chrome 与 Chromium 这类浏览器依赖 /dev/shm 映射可执行内存,noexec 可能影响它们;纯服务器场景一般不受影响。
容器的 /dev/shm 是独立挂载(默认容量较小),宿主机上的策略不会自动继承,容器场景要单独验证。
数据库等对共享内存有依赖的组件,改动挂载选项前要先做功能验证,避免业务高峰期才发现兼容性问题。

易错点

  • 在宿主机加固后以为容器同样生效,容器的 /dev/shm 是独立挂载,需要单独验证
  • 直接上 noexec 却没有验证依赖共享内存可执行映射的应用,上线后才发现功能异常
  • 只做 remount 没写进 /etc/fstab,重启之后加固选项全部丢失
  • 把 size 限制设得过小,依赖共享内存的应用因为空间不足直接报错
  • 对第三方软件统一收紧策略,忽略了对方确实需要可执行映射的实际需求

数据来源与参考

  • CIS Linux Benchmark:noexec/nosuid/nodev on /dev/shm
  • mount(8) 手册

相关工具

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