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
これを行うべきですか?
答え1
SELinuxが有効になっている実行中のシステムでは、新しいファイルとディレクトリは親ディレクトリからコンテキストを継承するか、ポリシールールに従ってコンテキストを適用します。この例では、SELinuxコンテキストを適用せずに作成されたディレクトリを示し、セキュリティコンテキスト列の出力から見ることができますls -Z
。?
これは、システムでSELinuxが有効になっていないことを示します。 SELinuxが有効になると、システムは自動的にファイルコンテキストを適用します。
sestatus
コマンドを使用してSELinuxのステータスを確認できます。
SELinuxを再度有効にするには、次の点を確認する必要があります。文書事前に。ラベルのリダイレクト(適用するラベルの欠落)を許可するには、まずシステムを許可モードで起動し、適用モードに切り替える前に明らかな問題を解決する必要があります。
SELinux には通常、いくつかの構成が必要です。ファイルがデフォルトポリシーに含まれていない場所にある可能性があります。あるいは、アプリケーションがデフォルトポリシーで許可するよりも多くの権限を必要とする場合があります。audit2allow
これはSELinuxログを調査するためのaudit2why
便利なツールであり、しばしば誤ったファイルラベルを表示したり問題を解決したりするためのブール値を提案します。
SELinuxも許可ドメインポリシーの残りの部分は、実行モードのまま、特定のドメイン(プロセス)に対してSELinuxを無効にするために使用できます。許可モードでは、適用モードと同じ方法でログが生成され、それ以外の場合はアクセスが拒否されます。明らかに、許可されたドメインでアプリケーションを実行することは、SELinuxを無効にした状態でアプリケーションを実行するのと実質的に同じです。