RHEL7 が提供する tomcat パッケージは、ディレクトリとシンボリックリンクを生成して複数のインスタンスをサポートします。これらの複数のインスタンスが作成され、RPM にパッケージ化されると、selinux エラーのために追加インスタンスが起動しません。
解決策はRPMパッケージでselinuxを適切に設定することですが、これを行う方法の標準的な説明を見つけるのが困難です。
RHEL7にtomcatをインストールするときのselinux設定はどこから来ますか?
編集:問題はRPM .specでSELinuxコンテキストを設定する正しい方法は何ですか?実際に読んでみたい人がいれば、RHEL4とRHEL5ディストリビューションが昔ながらで7年になったと言います。この質問に明確に示されているように、これは2018年のRHEL7を意味します。 7年前の質問に対する答えとこの質問に対する答えは非常に異なります。
答え1
selinux-policy-targeted
SELinux設定は、TomcatのSELinux設定を含むディストリビューションのデフォルトポリシー設定を含むパッケージで提供されます。
RPMパッケージングのSELinux構成を説明する2つの古いFedoraパッケージングドラフトを見つけることができました。
パッケージングドラフト/SELinuxとを別々に実行し、後で/を実行してspecファイルのセクションに%post
ファイルタグ設定を含めることをお勧めします。%postun
semanage fcontext -a
semanage fcontext -d
restorecon
fixfiles
指摘したように注目する価値があります。グラハム・レゲット、仕様、semanage
または%pre
セクションを使用すると、Pythonスタック全体とインストール時間の依存関係が追加されます。を使用すると、addがインストール時間の依存関係として、およびが導入されます。%post
policycoreutils-python
restorecon
policycoreutils
sed
gawk
grep
必要なファイルラベル付け規則を提供するより良い方法は、SELinuxポリシーモジュールを利用することです。ポリシーモジュールは、モジュラーポリシーを管理するためのよりきれいなインターフェイスを提供します(タグルールは、完成を使用したローカル修正と混在しませんsemanage
)。
ファイルラベルルールを持つポリシーモジュールの場合は、タイプ適用ファイルとファイルコンテキストラベルファイルを提供する必要があります。ポリシーに変更を追加しない場合でも、タイプ適用ファイルが必要です。仮想タイプ強制ファイルの例mymodule.te
:
policy_module(mymodule, 1.0)
ファイルタグの規則は次のとおりですmymodule.fc
。
/path/to/file -- gen_context(system_u:object_r:type_t,s0)
使用するには、[注1]をselinux-policy-devel
使用してモジュールパッケージをコンパイルできます。
make -f /usr/share/selinux/devel/Makefile
包装方針モジュールに関しては、SELinuxポリシーモジュールのパッケージングドラフト
同様に、仕様ファイルの and セクションを活用した%post
and/インストールポリシーを使用することをお勧めします。%postun
サンプル仕様ファイルも提供されます。semodule
restorecon
fixfiles
[注1]selinux-policy-devel
サンプル戦略モジュールは、checkmodule
使用せずに直接作成できますsemodule_package
。これを行うには、マクロなしでポリシーファイルを作成する必要があります。