2

我想运行具有 cap_net_raw 功能的服务,但不与文件系统和/或其他进程进行任何交互。我的程序将使用原始套接字和普通套接字(用于 API)、stdout/err 进行日志记录,仅此而已。

我想编写 systemd.service 文件来执行此操作,但我无法为DynamicUser,UserCapabilityBoundingSet.

我的(非工作)单元如下所示:

[Unit]
Description=my daemon (%I)
ConditionFileNotEmpty=/etc/daemon/%i.conf
Wants=network-online.target
BindsTo=daemon.target

[Service]
Type=simple
WorkingDirectory=/etc/daemon
EnvironmentFile=/etc/daemon/%i.conf
ExecStart=/usr/bin/daemon ${OPTIONS}
CapabilityBoundingSet=CAP_NET_RAW
ProtectSystem=true
ProtectHome=true
RestartSec=5s
Restart=on-failure
User=daemon-%i
Group=nobody
DynamicUser=true
[Install]
WantedBy=daemon.target

如何配置动态用户“无人” CAP_NET_RAW

4

1 回答 1

2

您还需要:

AmbientCapabilities=CAP_NET_RAW

请参阅有关 AmbientCapabilities 和 CapabilityBoundingSet 之间区别的问题以及文档

于 2020-11-10T21:55:20.733 回答