[Unit] Description=CHV Gitea sync privsep worker (feat-chv-muse-p6) After=network-online.target chv-authd.service Wants=network-online.target # authd 是可选依赖:worker 的 git 经 P3 helper 向 authd 取凭证; # authd 没起来时 worker 的 git 调用直接拒绝,不静默用旧凭证。 [Service] Type=simple User=root Group=root ExecStart=/usr/local/bin/chv-gitea-worker Restart=on-failure RestartSec=2 # systemd 沙箱(与 P3 authd 同款 root 单元外服务口径,再收紧): # 只读系统、独立 /tmp、不许提权、不留 capability、只许 Unix 与 # inet 协议族、只许 @system-service 系统调用、读写路径只限工作区 # 与 worker 运行时目录。网络层强制(eBPF)是 P5 的范围,不在这里 # 冒充——出口收紧靠 Sentinel 评估(authd 放凭证前)+ 只配 helper # 的 git(见 chv-gitea-worker.py)。 ProtectSystem=strict PrivateTmp=yes NoNewPrivileges=yes CapabilityBoundingSet= RestrictAddressFamilies=AF_UNIX AF_INET AF_INET6 SystemCallFilter=@system-service ReadWritePaths=/home/chv/workspace /run/chv-gitea /var/log/chv-gitea-worker.log # worker 崩溃不拖垮 agent:broker/薄 CLI 收到类型化失败即返回, # 不重试、不挂起;systemd 只负责拉起 worker 本身。 [Install] WantedBy=multi-user.target