CentOS 7サーバーをセットアップしています。このサーバーでは、/home
ディレクトリを別のパーティションに配置してから、bind-mountでマウントする必要があります。したがって、/data/homes
は/home
にバインドマウントする必要があります。
問題は、SELinuxコンテキストが正しく適用されていることを確認することです。実際、次のコマンドの結果は矛盾しています。
# Applies the rules for /home to all the files
restorecon -R -v /home
# Applies the generic rules (standard files) to all the files
restorecon -R -v /data/homes
システムがファイルのラベルを変更する必要がある場合、これが問題を引き起こしています。
この問題を解決するために、/etc/selinux/targeted/contexts/files/file_contexts.homedirs
のすべてのルールもコピーして、ポリシーファイル/data/homes
を変更しました。
$ sed -n '/^\/home/p' /etc/selinux/targeted/contexts/files/file_contexts.homedirs \
| sed 's/^\/home/\/data\/homes/' \
>> /etc/selinux/targeted/contexts/files/file_contexts.homedirs
ただし、ポリシーをsemodule -B
で再構築すると、変更内容は失われます。
これらのファイルを変更するための推奨される方法はsemanage fcontext
を使用することですが、合計で約200のルールを追加する必要があり、semanage for each
を実行することはできません。
/etc/selinux/targeted/contexts/files/file_contexts
のファイルを手動で変更し、変更が保持されるようにするにはどうすればよいですか?
semanage fcontext -a -t <file_context> "<path>/<file>(/.*)?"
restorecon -R <path>/<file>
再帰的かつ永続的に多くのファイルにコンテキストを追加できるようになります。あなたがこれをまだ試したかどうかはわかりません。設定しようとしているルールの例と、どのファイルに設定して、ニーズに合ったものを確認できるかを教えてください。