systemd スクリプトの SELINUX を無効にする方法は?

systemd スクリプトの SELINUX を無効にする方法は?

CentOS 7 に systemd スクリプトがありますが、SELINUX を無効にしないと正しく実行されません。システムで SELINUX を有効にして、この systemd スクリプトに対してのみ無効にすることは可能ですか?

systemd スクリプト:

[Unit]
Description=Tractor Blade Service
Wants=network.target network-online.target autofs.service
After=network.target network-online.target autofs.service
RequiresMountsFor=/101.102.103.104/pipeline/

[Service]
Type=simple
User=IRUser
ExecStart=/opt/pixar/Tractor-2.1/bin/tractor-blade --debug --log /101.102.103.104/pipeline/logs/tractor/tractor-blade-%H.log --engine=111.222.333.444 --supersede --pidfile=/var/run/tractor-blade.pid

[Install]
WantedBy=multi-user.target

答え1

そのプロセスを制限なしで実行できるため、SELinux が無効になっている場合と同じ権限を持つことになります。

# This will setup the executable to be unconfined. Temporarily
chcon -t unconfined_exec_t /opt/pixar/Tractor-2.1/bin/tractor-blade
# This command will make that permanent
semanage fcontext -a -t unconfined_exec_t /opt/pixar/Tractor-2.1/bin/tractor-blade

制限のないプロセスの詳細については、Red Hat のドキュメントを参照してください。https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Security-Enhanced_Linux/sect-Security-Enhanced_Linux-Targeted_Policy-Unconfined_Processes.html

答え2

semanage fcontextコマンドを使用してみてください

semanage fcontext -a -t <YourLabel> -f f <YourPath>動作するはずです。

-a = fcontext オブジェクトタイプのレコードを追加する

-t = オブジェクトの SELinux タイプ

-f = ファイルタイプ

答え3

セキュリティ強化LinuxSystemdアクセス制御(https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/SELinux_Users_and_Administrators_Guide/chap-Security-Enhanced_Linux-Systemd_Access_Control.html

また、selinuxのステータスをpermissive
setenforce 0
getenforceまたはsestatus

関連情報