完善插件资源权限诊断
Some checks are pending
Security Checks / security (push) Waiting to run

This commit is contained in:
smail 2026-09-30 01:22:51 +08:00
parent aa41418189
commit 96a073f132
2 changed files with 6 additions and 3 deletions

View File

@ -381,8 +381,10 @@ func Init(serverVersion string) {
pluginNo++
go waitPlugin(process, logicalID, socketPath, launchSpec)
if limitErr := applyPluginResourceLimits(process); limitErr != nil {
log.Warnf("[%s] Plugin resource limits could not be applied", logicalID)
_ = process.Kill()
log.WithError(limitErr).Warnf("[%s] 插件资源限制应用失败,插件未启用", logicalID)
if killErr := process.Kill(); killErr != nil && !errors.Is(killErr, os.ErrProcessDone) {
log.WithError(killErr).Errorf("[%s] 插件终止失败,请检查服务权限", logicalID)
}
continue
}

View File

@ -35,7 +35,8 @@ RuntimeDirectoryMode=0750
NoNewPrivileges=true
AmbientCapabilities=CAP_NET_BIND_SERVICE CAP_DAC_OVERRIDE CAP_DAC_READ_SEARCH CAP_FOWNER
# 主进程需要读取 smail 用户权限保护的配置和数据目录,同时保留插件隔离能力。
CapabilityBoundingSet=CAP_NET_BIND_SERVICE CAP_SYS_CHROOT CAP_SETUID CAP_SETGID CAP_CHOWN CAP_SYS_ADMIN CAP_DAC_OVERRIDE CAP_DAC_READ_SEARCH CAP_FOWNER
# 跨用户限制资源和终止降权插件分别需要资源管理与信号能力;插件本身不继承有效能力。
CapabilityBoundingSet=CAP_NET_BIND_SERVICE CAP_SYS_CHROOT CAP_SETUID CAP_SETGID CAP_CHOWN CAP_SYS_ADMIN CAP_DAC_OVERRIDE CAP_DAC_READ_SEARCH CAP_FOWNER CAP_SYS_RESOURCE CAP_KILL
PrivateTmp=true
ProtectHome=true
ProtectSystem=full