web-dev-qa-db-ja.com

CentOS 7ではrestoreconは何もしません

CentOS 7.5、Linux 3.10.0-862.3.2.el7.x86_64では、ファイルコンテキストのしくみを理解しようとしています。 ls -Zchconおよび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が機能するはずの方法ですか?

3
Heath Raftery

SELinuxが有効になっている実行中のシステムでは、新しいファイルとディレクトリは親ディレクトリからコンテキストを継承するか、ポリシールールごとにコンテキストを適用します。例は、ディレクトリの作成時にSELinuxコンテキストが適用されないことを示しています。セキュリティコンテキスト列のls -Zの出力として?として表示されます。

これは、システムでSELinuxが有効になっていないことを示しています。 SELinuxを有効にすると、ファイルコンテキストがシステムによって自動的に適用されます。

SELinuxステータスはsestatusコマンドで確認できます。

SELinuxを再度有効にする場合は、事前に documentation を確認してください。最初にシステムをpermissiveモードで起動してラベルを付け直し(ラベルが適用されない)、強制モードに切り替える前に明らかな問題を修正する必要があります。

SELinuxはしばしばいくつかの設定を必要とします: デフォルトのポリシーに含まれていない場所にファイルがあるかもしれません 、またはアプリケーションはデフォルトのポリシーが許可するよりも多くの権限を必要とするかもしれません。 audit2allowおよびaudit2whyは、SELinuxログを調査するときに役立つツールであり、多くの場合、間違ったファイルラベルを明らかにしたり、問題を解決できるブール値を提案したりします。

SELinuxには permissive domains もあります。これは、特定のドメイン(プロセス)のSELinuxを無効にするときに使用できます。強制モードの残りのポリシー。許容モードでは、ログは、そうでなければ拒否されるアクセスの強制モードと同じ方法で生成されます。明らかに、寛容なドメインでアプリケーションを実行することは、SELinuxを無効にしてアプリケーションを実行することと実質的に同じです。

1
sebasth