首页/系统/信创系统运维速查/mask 屏蔽服务防止被拉起
服务与运维65 条

mask 屏蔽服务防止被拉起

disable 后服务仍可能被依赖或 socket 激活拉起:用 mask 把单元链接到 /dev/null 彻底屏蔽,unmask 恢复。等保整改中常用来屏蔽不需要的服务。

信创系统运维速查系统更新于 2026-10-13

mask 是什么

mask 是 systemd 里最彻底的屏蔽方式:它在 /etc/systemd/system 下为目标单元建立指向 /dev/null 的符号链接,systemd 见到这个链接就认为单元不可用,依赖、socket 激活、手动启动全都会被拒绝。disable 只是取消开机自启,不是屏蔽。等保与最小化整改里屏蔽多余服务,用它最可靠。

基本信息

屏蔽systemctl mask <单元>
恢复systemctl unmask <单元>
本质/etc/systemd/system 下指向 /dev/null 的软链
对比 disable只取消自启,仍可手动或被依赖拉起
适用平台所有使用 systemd 的发行版

典型使用场景

  • 等保整改:把不需要的服务彻底关死,防止被依赖拉起
  • 临时屏蔽可疑服务,处置完成后再恢复
  • 屏蔽发行版自带但业务不用的服务,如打印与文件共享
  • 迁移窗口期防止旧服务在新主机抢端口
  • 与 disable 叠加,确保重启后仍不会被拉起

操作与确认

操作与确认
systemctl status cups.service          # 先看状态与当前是否被使用
systemctl list-dependencies --reverse cups.service   # 查反向依赖评估影响
systemctl disable --now cups.service   # 先停止并取消自启
systemctl mask cups.service            # 彻底屏蔽
systemctl status cups.service          # 期望显示 Loaded: masked
ls -l /etc/systemd/system/cups.service # 确认指向 /dev/null
systemctl unmask cups.service          # 需要时恢复

几种状态对比

状态含义还能被拉起吗
enabled开机会自启能,手动也能起
disabled不开机自启能,手动或被依赖时起
masked链接到 /dev/null不能,任何方式都拒绝
masked-runtime仅本次运行期屏蔽重启后失效
被别的单元依赖的服务一旦 mask,依赖链上的目标可能启动失败;动手前用 systemctl list-dependencies --reverse 看清谁依赖它,并安排在维护窗口内操作。
mask 只对 systemd 单元生效:用 sysv 兼容脚本或由计划任务调起的进程不受影响,验收时要一并确认。

等保常屏蔽的服务

  • 打印服务:cups 及其 socket 单元,服务器通常完全用不到
  • 蓝牙与多媒体:bluetooth、ModemManager 等桌面组件
  • 局域网发现:avahi-daemon 以及配套的 socket 单元
  • 文件共享:smb、nfs-server、rpcbind 按业务取舍
  • 自动挂载:autofs,无需求时关闭可减少攻击面
整改常见写法是先 disable --now 停掉并取消自启,再 mask 固化,最后用 systemctl list-unit-files 核对状态是否与清单一致。

易错点

  • 把 mask 当 disable 用:disable 后服务仍可能被 socket 或依赖拉起,整改验收过不了
  • 只屏蔽 .service 不管 .socket:socket 单元仍能激活服务,需要一并处理
  • mask 掉有依赖的服务后整条启动链失败甚至进不了图形界面,先查反向依赖再动手
  • 直接删掉软链而不是用 unmask 恢复:语义不清且不好审计,恢复操作走命令
  • 把屏蔽当成一次性动作:系统升级或他人手工启用后状态会回退,需要定期用核查脚本复核基线

数据来源与参考

  • man 1 systemctl(mask/unmask)
  • 等保 2.0 主机安全要求(服务最小化)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌