web-dev-qa-db-ja.com

ステップEXECの生成で失敗しました...権限が拒否されました

私はこれについて多くを読みましたが、なぜこれが機能しないのかはまだわかりません。私の知る限り、すべてのdirに適切なアクセス許可があり、すべてが777であっても、このプログラムをサービスとして実行しようとすると、依然としてアクセス許可が拒否されます。サーボとして実行しようとしているプログラムはxTeVeと呼ばれます。私はすべての異なるディレクトリ、ユーザーの下でそれを実行しようとしましたが、何も動作しないようです。

ユニットファイルは以下のとおりです。

[Unit]
Description=XTeVe For Plex
After=network.target network-online.target

[Service]
ExecStart=/root/IPTV/xteve
user=root
Restart=on-failure
RestartSec=5
StartLimitInterval=60s
StartLimitBurst=3

[Install]
WantedBy=multi-user.target

これはrootとして実行すべきではないことは知っていますが、これは私が試した最後のユーザーにすぎません

そして、サービスを開始しようとすると、次のようになります。

14:20 xteve.service: Failed with result 'exit-code'.
14:02 xteve.service: Main process exited, code=exited, status=203/EXEC
14:02 xteve.service: Failed at step EXEC spawning /root/IPTV/xteve: Permission denied
14:02 xteve.service: Failed to execute command: Permission denied
14:02 Started XTeVe For Plex.

そして、これはファイルの権限です:

[root@skynet IPTV]# ls -la
total 12084
drwxr-xr-x. 2 root root       19 Mar  6 13:58 .
dr-xr-x---. 5 root root      175 Mar  6 13:58 ..
-rwxr-xr-x. 1 root root 12370316 Mar  6 13:58 xteve

fileの結果:

[root@skynet IPTV]# file xteve
xteve: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, Go BuildID=lt4S9w02Ylf_MXsFeRkj/jdmwTx5YSsQSDaa6tfuz/vCzfZlCyl5qUEBD7IuD0/AEI-OmWm1iNuziWA7R0P, with debug_info, not stripped

cat audit.log | grep xteveの出力:

type=AVC msg=audit(1551898814.098:1342): avc:  denied  { execute } for pid=11002 comm="(xteve)" name="xteve" dev="dm-0" ino=30958 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(1551898814.100:1343): pid=1 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0 msg='unit=xteve comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=failed'UID="root" AUID="unset"
type=SERVICE_START msg=audit(1551898814.420:1344): pid=1 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0 msg='unit=xteve comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'UID="root" AUID="unset"
type=SERVICE_STOP msg=audit(1551898814.420:1345): pid=1 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0 msg='unit=xteve comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'UID="root" AUID="unset"
type=SERVICE_START msg=audit(1551898966.689:1385): pid=1 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0 msg='unit=xteve comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=?res=success'UID="root" AUID="unset"    

私が試したがうまくいかなかったもの:

systemdがステップEXEC生成スクリプトで失敗しました:権限が拒否されました

systemdカスタムサービス:ステップEXECの生成で失敗しました…権限が拒否されました

適切なグループ権限がある場合でも、「ステップEXECスポーンで失敗しました」

3
Stone Monarch

SELinuxは、バイナリがユーザーのホームディレクトリ、または場合によってはルートユーザーのホームディレクトリにあるシステムサービスを実行できないようにします。

問題を修正するには、バイナリを/usr/local/binなどの適切なディレクトリにコピーし、そこから呼び出します。

10
Michael Hampton