我想运行具有 cap_net_raw 功能的服务,但不与文件系统和/或其他进程进行任何交互。我的程序将使用原始套接字和普通套接字(用于 API)、stdout/err 进行日志记录,仅此而已。
我想编写 systemd.service 文件来执行此操作,但我无法为DynamicUser
,User
和CapabilityBoundingSet
.
我的(非工作)单元如下所示:
[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
?