環境:私はLXC(2.0.6)コンテナとSELinuxが有効なFedora 24を実行しています。
質問lxc-attach
:Linuxコンテナの設定と起動は、LXCの自動起動機能(lxc.start.auto = 1
設定ファイルから)で起動されていることを除いて、すべて問題ありません。コンテナに接続しても同じです。
接続できない自動起動コンテナの場合は、再lxc-stop
接続してlxc-start
コンテナlxc-attach
に直接接続できます。
私が試したこと:提案された解決策を確認しました。エラーレポートこれには、dnfコンテナ-selinux拡張インストールと正しいラベル()をインクルードにcontainer_runtime_exec_t
追加することが含まれます。可能な回避策も提案されていますが、まだルートファイルシステムのデフォルトフォルダコンテキストにラベルを追加していません。すべてのコンテナの()。/usr/bin/lxc-*
lxc-attach
chcon -Rt container_var_lib_t /var/lib/lxc
出力:手動で起動したコンテナに問題なく()を付けることができますがlxc-attach -n name_of_container
、システム起動時に自動的に起動するコンテナに貼り付けようとすると、以下のように端末にメッセージが表示されます。
lxc-attach: attach.c: lxc_attach_run_shell: 1325 Permission denied - failed to exec shell
/var/log/audit/audit.log
ファイルに次のメッセージが表示されます。
type=AVC msg=audit(1484836169.882:2969): avc: denied { entrypoint } for pid=7867 comm="lxc-attach" path="/bin/dash" dev="sda3" ino=10289 scontext=system_u:system_r:unconfined_service_t:s0 tcontext=unconfined_u:object_r:unlabeled_t:s0 tclass=file permissive=0
コンテナを実行しているプロセスのラベル()を見つけると、次の結果がps -eZ | grep lxc
得られます。
system_u:system_r:unconfined_service_t:s0 2794 ? 00:00:00 lxc-autostart
自動的に起動されたコンテナの場合は、次を使用します。
unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 6399 ? 00:00:00 lxc-start
手動で起動されたコンテナの場合。
私の質問:私はSELinuxに最初に触れましたが、上記の出力でシステムの起動後にコンテナが実行されているコンテキストがlxc-attach
私が実行しているコンテキストとは大きく異なることがわかります(以前のコンテキストはscontext=system_u:...
現在のコンテキストの開始中に開始されました)。tcontext=unconfined_u:...
上記の監査から.log)。
そのため、誰かに説明を求めなければなりませんでした。どの不一致がこの権限を拒否されますか?そして:この問題を修正できますか?
ベストアンサー1
この場合、あなたは/bin/dash
間違ったselinuxコンテキストに関連付けられているか、まったく接続されていないようです。
ここで、lxc-attachはシェルを実行できないと文句を言います。
lxc-attach: attach.c: lxc_attach_run_shell: 1325 Permission denied - failed to exec shell
SELinux avcの拒否は上記の内容を確認するようです。
type=AVC msg=audit(1484836169.882:2969): avc: denied { entrypoint } for pid=7867 comm="lxc-attach" path="/bin/dash" dev="sda3" ino=10289 scontext=system_u:system_r:unconfined_service_t:s0 tcontext=unconfined_u:object_r:unlabeled_t:s0 tclass=file permissive=0
上記の出来事に注目すべきいくつかのことがあります。
ターゲットファイル()は、SELinuxがフェイルオーバーシナリオに使用する特別なコンテキスト()path="/bin/dash"
で終わります。tcontext=unconfined_u:object_r:unlabeled_t:s0
イベントの中で、/bin/dash
デバイスのinode 10289のイベントはsda3
無効なコンテキストに関連付けられているか、コンテキストがまったくありません。
デバイスのinode 10289でコンテキストを試してくださいrestorecon -RvF
。完了したら、コンテキストが次以外のものにリセットされていることを確認してください。/bin/dash
sda3
unconfined_u:object_r:unlabeled_t:s0
ls -alZ