Linux
Systemd 服務未啟動 - ‘執行步驟生成失敗…權限被拒絕’
我已經閱讀了類似問題的其他答案(在步驟執行生成失敗…權限被拒絕),但似乎沒有一個適用。
在我將我的比特幣節點升級到 v0.20.0 後,它不再在啟動時啟動,也不再使用
systemctl start bitcoind.service
.Journalctl 輸出:-
$ journalctl -xe ... Jul 12 15:58:22 $HOSTNAME systemd[572]: bitcoind.service: Failed to execute command: Permission denied Jul 12 15:58:22 $HOSTNAME systemd[572]: bitcoind.service: Failed at step EXEC spawning /usr/bin/bitcoind: Permission denied -- Subject: Process /usr/bin/bitcoind could not be executed -- Defined-By: systemd -- Support: https://www.debian.org/support -- -- The process /usr/bin/bitcoind could not be executed and failed.
我正在使用從我的主目錄軟連結到
/etc/systemd/system/
.執行檔從我的主目錄軟連結到 /usr/local/bin,因此我在上面連結的上一個答案表明可能適用 SELinux 問題,但我不相信它已啟用:(
-bash: getenforce: command not found
)。我正在執行 Debian 10.4,並相信它預設被禁用。$ ls -al /usr/bin/bitcoind lrwxrwxrwx 1 root root 34 May 5 2019 /usr/bin/bitcoind -> /home/$MY_NAME/src/bitcoin/src/bitcoind
$ ls -al /home/$MY_NAME/src/bitcoin/src/bitcoind -rwxr-xr-x 1 bitcoin bitcoin 175058584 Jul 7 20:40 /home/$MY_NAME/src/bitcoin/src/bitcoind
一切都設置為在“比特幣”nologin 使用者下執行:
$ id bitcoin uid=999(bitcoin) gid=999(bitcoin) groups=999(bitcoin)
$ cat /etc/passwd ... bitcoin:x:999:999::/home/bitcoin:/bin/false ...
以下是相關目錄的權限:
$ ls -al /etc/bitcoin total 12 drwx--x--- 2 bitcoin bitcoin 4096 Jul 11 22:30 . drwxr-xr-x 87 root root 4096 Jul 12 15:58 .. -rw-rw---- 1 bitcoin bitcoin 601 Jul 11 22:30 bitcoin.conf
$ ls -al /var/lib/bitcoind total 21896 drwx--x--- 5 bitcoin bitcoin 4096 Jul 9 11:55 . drwxr-xr-x 32 root root 4096 Dec 5 2019 .. ...
$ ls -al /run total 24 drwxr-xr-x 18 root root 560 Jul 12 15:59 . drwxr-xr-x 22 root root 4096 Jun 2 17:46 .. ...
我很難過 - 非常感謝任何輸入。
編輯 - 二進製文件路徑的權限:
$ ls -al /home/$MY_NAME total 160 drwxr-xr-x 11 XXX XXX 4096 Jul 12 15:58 . drwxr-xr-x 3 root root 4096 May 4 2019 .. ... drwxr-xr-x 6 XXX XXX 4096 Oct 25 2019 src ...
$ ls -al /home/$MY_NAME/src total 24 drwxr-xr-x 6 XXX XXX 4096 Oct 25 2019 . drwxr-xr-x 11 XXX XXX 4096 Jul 12 15:58 .. drwxr-xr-x 15 XXX XXX 4096 Jul 7 20:26 bitcoin ...
$ ls -al /home/$MY_NAME/src/bitcoin total 1976 drwxr-xr-x 15 XXX XXX 4096 Jul 7 20:26 . drwxr-xr-x 6 XXX XXX 4096 Oct 25 2019 .. ... drwxr-xr-x 28 XXX XXX 12288 Jul 7 21:01 src ...
$ ls -al /home/$MY_NAME/src/bitcoin/src total 936796 drwxr-xr-x 28 XXX XXX 12288 Jul 7 21:01 . drwxr-xr-x 15 XXX XXX 4096 Jul 7 20:26 .. ... -rwxr-xr-x 1 bitcoin bitcoin 175058584 Jul 7 20:40 bitcoind ...
在 中正確安裝二進製文件
/usr/bin
,因為它應該已經安裝,然後重試。systemd 單元對服務做了很多限制,被拒絕的一件事是訪問使用者主目錄。當作為系統服務執行時,它不需要訪問使用者主目錄。