CentOS 7.5、Linux 3.10.0-862.3.2.el7.x86_64では、ファイルコンテキストのしくみを理解しようとしています。 ls -Z
、chcon
およびsemanage
は期待どおりに動作するようですが、restorecon
は頑固に沈黙しています。
例えば:
$ cd
$ mkdir context
$ ls -laZ
drwxrwxr-x liteyear liteyear ? context
$ chcon -v unconfined_u:object_r:user_home_t:s0 context
$ ls -laZ
drwxrwxr-x. liteyear liteyear unconfined_u:object_r:user_home_t:s0 context
$ rmdir context
すべてよし、semanage
:
$ mkdir context
$ Sudo semanage fcontext -a -t user_home_t /home/liteyear/context
$ cat /etc/selinux/targeted/contexts/files/file_contexts.local
# This file is auto-generated by libsemanage
# Do not edit directly.
/home/liteyear/context system_u:object_r:user_home_t:s0
すべて良好ですが、restorecon
ルート:
$ restorecon -v /home/liteyear/context
$ ls -laZ
drwxrwxr-x liteyear liteyear ? context
ファイルコンテキストは適用されません。
私は、既存のコンテキスト、異なるコンテキスト、他のフォルダーおよびファイルを使用して、さまざまな反復を試みましたが、restorecon
は何も生成していません。同様のさまざまなレポートがあります(例: [CentOS] SELinux restoreconが機能しません )。しかし、問題があることを誰も確認していません。
これはrestorecon
が機能するはずの方法ですか?
SELinuxが有効になっている実行中のシステムでは、新しいファイルとディレクトリは親ディレクトリからコンテキストを継承するか、ポリシールールごとにコンテキストを適用します。例は、ディレクトリの作成時にSELinuxコンテキストが適用されないことを示しています。セキュリティコンテキスト列のls -Z
の出力として?
として表示されます。
これは、システムでSELinuxが有効になっていないことを示しています。 SELinuxを有効にすると、ファイルコンテキストがシステムによって自動的に適用されます。
SELinuxステータスはsestatus
コマンドで確認できます。
SELinuxを再度有効にする場合は、事前に documentation を確認してください。最初にシステムをpermissiveモードで起動してラベルを付け直し(ラベルが適用されない)、強制モードに切り替える前に明らかな問題を修正する必要があります。
SELinuxはしばしばいくつかの設定を必要とします: デフォルトのポリシーに含まれていない場所にファイルがあるかもしれません 、またはアプリケーションはデフォルトのポリシーが許可するよりも多くの権限を必要とするかもしれません。 audit2allow
およびaudit2why
は、SELinuxログを調査するときに役立つツールであり、多くの場合、間違ったファイルラベルを明らかにしたり、問題を解決できるブール値を提案したりします。
SELinuxには permissive domains もあります。これは、特定のドメイン(プロセス)のSELinuxを無効にするときに使用できます。強制モードの残りのポリシー。許容モードでは、ログは、そうでなければ拒否されるアクセスの強制モードと同じ方法で生成されます。明らかに、寛容なドメインでアプリケーションを実行することは、SELinuxを無効にしてアプリケーションを実行することと実質的に同じです。