すべてのSELinuxコンテキストを永続化する


9

私はchcon最近たくさんのことをしました、しかし、私がそれを正しく理解すれば、これらは次の再ラベル付けで消去されます。現在のコンテキスト(できれば特定のディレクトリ直下)を永続化する方法はありますか?私はを使用してそれを行う方法があることを理解していますsemanageが、それは、戻ってすべてのファイルのコンテキストをチェックしsemanage、ルールを設定するために呼び出すことを意味します。それを行うための自動化された方法はありますか?

回答:


5

まずsemanage fcontext -a -t <type> <filepattern>、ポリシーに追加することでファイルの変更を永続的にすることができますrestorecon -R -v <filepattern>。ラベルを変更するか、それらの変更を適用する必要があります。chconポリシーは変更せず、ディスク上のコンテキストのみを変更します。

matchpathcon具体的には、ラベル付きポリシーとの違いのリストを生成できます。

matchpathcon -V /path/to/file

残念ながら、これには再帰的なオプションはありません。おそらく、ツリーを歩くのは高価になるためですが、次の方法でドライブできます。

find / -exec matchpathcon -V {} \;

ただし、注意してください。findは、問題を引き起こす可能性のある拡張属性(xattrs)を持たないファイルシステムを含むすべてのファイルシステムマウントをトラバースすると思います。もちろん、すべてのファイルシステムが拡張属性を持っている場合、問題はありません。

このリストを取得したら、スクリプトを記述して、リストから選択することができますsemanage。ただし、これを1回のヒットで自動化する方法はわかりません。


3

使用matchpathconしてすることはfind非常に遅いです。なぜ使用しないのrestoreconですか?

restorecon -rnv /path/to/dir

フラグは再帰的で、変更はなく、詳細です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.