AmbientCapabilityとCapacityBoundingSetの違いは何ですか?

AmbientCapabilityとCapacityBoundingSetの違いは何ですか?

ポート80と443にバインドする必要があるWebサーバープロセス用のシステムサービスを作成しようとしています。いくつかのサンプル設定とAmbientCapabilities=CAP_NET_BIND_SERVICE設定例が見つかりましたAmbientCapabilitiesCapabilityBoundingSet。文書によると、明確ではありません。システム文書:協会。 Linux マニュアル:協会

どちらも設定する必要がありますか、AmbientCapabilityのみを設定する必要がありますか?

ベストアンサー1

それらは完全に反対です:

AmbientCapabilities 承認するこのプロセスは通常機能を開始しません。

CapabilityBoundingSet 限界プロセスが取得することを許可されている機能。どんな能力も与えません。

ジョブの場合、AmbientCapability を設定して権限を付与するだけで十分です。境界セットは既にデフォルトですべてを許可しているので、変更する必要はありません。

代わりに、後者はセキュリティ強化機能として使用されます。サービスが実際にroot(uid 0)で実行されている場合、または「su」または「sudo」などのsetuid-rootプログラムを呼び出しても、境界セットにない権限を取得できません。

ただし、サービスが高い権限を必要とする項目を直接実行しないことを確認した場合は、両方を設定できます(おそらく設定する必要があります)。

おすすめ記事