首页/系统/Linux 运维命令速查/systemd 服务安全加固选项
本包目录(613 条)
文件与目录76 条文本处理77 条网络命令82 条进程与作业69 条磁盘与文件系统51 条用户与权限44 条日志与排查40 条
systemd 与服务42 条
包管理34 条性能与监控48 条定时任务与计划50 条

systemd 服务安全加固选项

systemd 提供免 SELinux 的服务沙箱:ProtectSystem、PrivateTmp、NoNewPrivileges 等,逐项收紧自研服务攻击面。

Linux 运维命令速查系统更新于 2026-10-12
用途给服务加最小权限约束
语法[Service] Protect*/Private*/Restrict* 指令
所属systemd

渐进加固示例

渐进加固示例
[Service]
NoNewPrivileges=true
PrivateTmp=true
ProtectSystem=strict
ProtectHome=true
ReadWritePaths=/var/lib/myapp /var/log/myapp
ProtectKernelTunables=true
RestrictSUIDSGID=true

验证

验证
systemctl daemon-reload && systemctl restart myapp
systemctl status myapp | grep -i -E 'protect|private' ; journalctl -u myapp -n 50
加固选项可能让服务因路径只读/受限而失败:每次只加一两项并回归测试,别一次性全开。

易错点

  • ProtectSystem=strict 后除 ReadWritePaths 外全只读:应用要写 /tmp 或自家数据目录会失败,先把写路径列全
  • PrivateTmp 与外部进程共享 /tmp 文件的服务不兼容(如与 sidecar 交换 socket 文件)

数据来源与参考

  • man 5 systemd.exec(沙箱类指令)
  • systemd 官方文档 Sandboxing

相关工具

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