
不少服务单元文件只包含 ExecStart 和 Restart。这能让程序自动拉起却没有限制程序被攻陷后的可访问范围。不要默认用root运行先为服务创建专用账号并在单元文件中明确指定[Service] Userappuser Groupappuser账号不应拥有登录 shell、无关目录写权限或 sudo 权限。服务需要写日志、缓存或上传文件时只开放对应路径不要因为一个目录报错就把整个项目目录改成可写。收紧文件系统视图常用的起点包括ProtectSystemstrict ProtectHometrue PrivateTmptrue ReadWritePaths/var/lib/myapp /var/log/myappProtectSystemstrict 会使大部分文件系统只读因此必须显式列出真正需要写入的目录。上线前先在测试环境观察程序是否需要额外的 socket、证书或临时文件再做最小补充。限制权限提升可以增加NoNewPrivilegestrue CapabilityBoundingSet前者阻止进程及其子进程通过 setuid 等机制获得新权限后者移除 Linux capabilities。部分网络绑定、时间同步或设备访问确实需要能力不能盲目清空后直接上线应根据程序实际需求逐项验证。用工具检查结果systemd-analyze security myapp.service systemctl cat myapp.service评分不是绝对安全结论但能提示未设置的隔离项。修改单元文件后执行 systemctl daemon-reload先重启测试实例再观察日志、健康检查和回滚路径。如果你想把 Linux 运维、主机安全和服务防护结合起来学习可以参考马士兵网络安全课程学习入口