我想使用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=rttgod.target
如何配置动态用户' nobody'和CAP_NET_RAW
一起?
答案 0 :(得分:1)
您还需要:
Data <- c("NELIG_Q1_1_C1_A", "NELIG_N1_1_EG1_B", "NELIG_V2_1_NTH_C", "NELIG_Q2_1_C5_Q",
"NELIG_N1_1_C1_RA", "NELIG_Q1_1_EG1_QR", "NELIG_V2_1_NTH_PQ", "NELIG_N2_1_C5_PRQ")
有关AmbientCapabilities和CapabilityBoundingSet以及this question之间的区别,请参见documentation。