私が使用しているオペレーティングシステムは、オペレーティングシステムの起動と同時にカスタムサービスを実行したいとFedora Workstation 27 Live
思います。EnableBIOS.service
これを行うには、SELinux
私の環境で問題を引き起こす機能を無効にする必要がありました。したがって、無効にすることはできませんSELinux
。
代わりに、カスタマイズされたSELinux policy
サービスのためのサービスを作成してみましたが、何の進展もありませんでした。
サービスが次のメッセージを記録しています/var/log/audit/audit.log
。
type=SERVICE_START msg=audit(1527782475.777:239): pid=1 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0 msg='unit=EnableHBA comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
type=AVC msg=audit(1527782475.779:240): avc: denied { execute } for pid=4223 comm="(leHBA.sh)" name="enableHBA.sh" dev="dm-0" ino=38164 scontext=system_u:system_r:init_t:s0 tcontext=unconfined_u:object_r:admin_home_t:s0 tclass=file permissive=0
type=SERVICE_STOP msg=audit(1527782475.782:241): pid=1 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0 msg='unit=EnableHBA comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=failed'
そして、
[root@localserver]# audit2allow -w -a
type=AVC msg=audit(1527782475.779:240): avc: denied { execute } for pid=4223 comm="(leHBA.sh)" name="enableHBA.sh" dev="dm-0" ino=38164 scontext=system_u:system_r:init_t:s0 tcontext=unconfined_u:object_r:admin_home_t:s0 tclass=file permissive=0
Was caused by:
Unknown - would be allowed by active policy
Possible mismatch between this policy and the one under which the audit message was generated.
Possible mismatch between current in-memory boolean settings vs. permanent ones.
を生成するために、SELinux policy
次のコマンドを実行しました。
[root@localserver]# grep enableHBA /var/log/audit/audit.log | audit2allow -M enablehba
[root@localserver]# semodule -i enablehba.pp
これを実行した後にサービスを再実行しようとすると、記録されたメッセージは次のようになります。
[root@localserver]# audit2allow -w -a
type=AVC msg=audit(1527782959.912:250): avc: denied { read open } for pid=4612 comm="(leHBA.sh)" path="/root/enableHBA/enableHBA.sh" dev="dm-0" ino=38164 scontext=system_u:system_r:init_t:s0 tcontext=unconfined_u:object_r:admin_home_t:s0 tclass=file permissive=0
Was caused by:
Missing type enforcement (TE) allow rule.
You can use audit2allow to generate a loadable module to allow this access.
私がどこで間違っているのか、私が望むことを達成する他の方法があるかどうかを知りたいです。
答え1
スクリプトを/usr/local/sbinに移動し、スクリプトが次のように正しく表示されていることを確認してください。bin_t
スクリプトは無制限に実行し、必要なすべての権限を持っている必要があります。