Я читал другие ответы на похожие проблемы (Ошибка на этапе создания EXEC ... В доступе отказано) и ни один из них не подходит.
После того, как я обновил свой биткойн-узел до версии 0.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.
Я использую сценарий инициализации по умолчанию (https://github.com/bitcoin/bitcoin/blob/master/contrib/init/bitcoind.service) мягкая ссылка из моего домашнего каталога на /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 'bitcoin':
$ 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 ..
...
Я в тупике - я очень благодарен за любой вклад.
Edit - разрешения на путь к бинарному файлу:
$ 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 в значительной степени ограничивает службу, и одна вещь, которой отказывают, - это доступ к домашним каталогам пользователей. Не ожидается, что ему потребуется доступ к домашнему каталогу пользователя при работе в качестве системной службы.