Systemd
AmbientCapabilities 和 CapabilityBoundingSet 有什麼區別?
我正在嘗試為必須綁定到埠 80 和 443 的 Web 伺服器程序創建 systemd 服務。我發現了一些範例設置和
AmbientCapabilities=CAP_NET_BIND_SERVICE
設置。從文件中,尚不清楚。系統文件:連結。Linux 手冊:連結AmbientCapabilities``CapabilityBoundingSet
我應該同時設置還是只設置 AmbientCapabilities?
它們是完全相反的:
AmbientCapabilities
授予流程通常不會開始的功能。
CapabilityBoundingSet
限制允許程序獲得的能力。它不授予任何。對於您的任務,將 AmbientCapabilities 設置為授予權限就足夠了 - 預設情況下,邊界集已經允許所有內容,因此無需更改它。
相反,後者旨在成為一種安全強化功能。即使該服務實際上以 root (uid 0) 身份執行——或呼叫像“su”或“sudo”這樣的 setuid-root 程序——它也永遠無法獲得不在其邊界集中的任何特權。
但是,如果您確定您的服務不會直接執行任何需要更高權限的東西,您可以(也許應該)同時設置兩者。