SElinuxが起動時にカスタムシステムサービスをブロックするのを防ぐ方法は?

SElinuxが起動時にカスタムシステムサービスをブロックするのを防ぐ方法は?

SElinuxは、起動時にsystemdが自分のカスタムサービスを選択するのを防ぎます。

MESSAGE = SELinuxのため、systemdはcustom.serviceファイルへのアクセスを読み取ることができません。

再起動する前に

[root@box opt]# systemctl daemon-reload
[root@box opt]# systemctl enable --now custom
[root@box opt]# systemctl status custom.service
● custom.service - foo
   Loaded: loaded (/opt/foo/bar/systemd/custom.service; enabled; vendor preset: disabled)
   Active: active (running) since Fri 2022-10-07 12:18:27 EDT; 1min 28s ago
...
...

再起動後

[root@box opt]# systemctl status custom.service
Unit custom.service could not be found.

だからselinuxを無効にして再起動しましたが、役に立たないようです。その後、selinuxユーザー、役割、およびサービスファイルの種類を変更して再起動しようとしました。

[root@box opt]# chcon -R -u unconfined_u -r object_r -t systemd_unit_file_t foo/bar/systemd/

まだ何もありません/etc/systemd/system。サービスファイルをそのディレクトリに?入れると同じことが起こります。cp/etc/systemd/system

[root@box opt]# ls -Z /etc/systemd/system/custom.service
? /etc/systemd/system/custom.service

この問題を解決するには、ここで何をすべきかを知っている人はいますか?

全長DR- SElinuxは、selinuxが無効になっていてもsystemdが有効なカスタムsystemdユニットを読み取ることを防ぎます。

ベストアンサー1

解決策が見つかりました。

許可モードで selinux を再度有効にし、ブート後にサービスを開始しました。chconselinuxが事前に無効になっていたので、私が実行したコマンドがうまくいかなかったようです。

これでselinuxを無効にして再起動しましたが、すべてが正常に動作しているようです。 selinuxが無効になっていると、2番目のコンテキストがなぜ重要なのかはまだ理解されていません。

# ls -Z now shows the correct context
[root@box ~]$ ls -Z /etc/systemd/system/custom.service
system_u:object_r:systemd_unit_file_t:s0 /etc/systemd/system/custom.service

おすすめ記事