Linux
執行生成步驟失敗…權限被拒絕
我已經閱讀了很多關於此的內容,但仍然不確定為什麼這不起作用。據我所知,所有目錄都具有正確的權限,即使所有內容都是 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"
我嘗試過但沒有用的東西:
SELinux 會阻止您執行二進製文件位於使用者主目錄(或在您的情況下為 root 使用者主目錄)中的系統服務。
要解決此問題,請將二進製文件複製到適當的目錄,例如
/usr/local/bin
並從那裡呼叫它。