テクノロジー · 実用ガイド

systemd の status=218/CAPABILITIES?マネージャー、カーネル、能力集合を先に証明

プログラムはまだ実行されていない可能性があります。最初の journal、実効 unit、system/user/container の境界を保存し、無効と証明した能力遷移だけを変更します。

systemd の status=218/CAPABILITIES?マネージャー、カーネル、能力集合を先に証明
オリジナルイラスト:最初の status と journal を保存し、drop、ambient、namespace のどれか、systemctl か --user かを記録します。 Watch at Ease

218/CAPABILITIES は、systemd が実行前に capability を落とす、または ambient capability を設定できなかったことを示します。

全ハードニング削除、root 実行、CAP_SYS_ADMIN 付与から始めず、失敗段階と実行境界を特定します。

最初の capability 段階証拠を保存

最初の status と journal を保存し、drop、ambient、namespace のどれか、systemctl か --user かを記録します。

高速再起動を止め、FragmentPath、DropInPaths、manager を保存して継承設定を見落としません。

実効 unit の能力制御を全部読む

BoundingSet、Ambient、NoNewPrivileges、SecureBits、PrivateUsers、User= を実効 unit から読みます。

ambient は permitted と inheritable に依存し、bounding set も要求を遮断します。

manager・kernel・container 境界を特定

PID 1、user manager、container、旧 kernel/systemd のどれかを分類し同じ境界で再現します。

user manager は namespace、container は外側 policy と bounding set を確認します。

権限を広げず証明した矛盾だけ修正

manager、継承設定、集合、証明済み互換性、container policy の一つだけ直します。

全能力や CAP_SYS_ADMIN を代用せず、不要なら要求を削除して理由を記録します。

一度起動し実能力と作業を確認

unit 変更時だけ同じ manager を reload し、一度開始して新 journal を読みます。

PID の四集合を確認し、実際の bind や tun/tap 操作を一つ成功させ、余分な権限がないことを確かめます。

systemd の status=218/CAPABILITIES?マネージャー、カーネル、能力集合を先に証明
オリジナルイラスト:PID の四集合を確認し、実際の bind や tun/tap 操作を一つ成功させ、余分な権限がないことを確かめます。 Watch at Ease