add run-mycelium-without-root.gmi, add internal reference

This commit is contained in:
postscriptum 2026-01-31 06:01:36 +02:00
parent 53a2453a27
commit b5edcf8e1b
3 changed files with 56 additions and 1 deletions

View file

@ -16,6 +16,7 @@
### Нотатки
=> run-mycelium-without-root.gmi 2026-01-31 Запуск роутера Mycelium без root
=> tuba-with-ukrainian-activitypub-language-by-default.gmi 2026-01-31 Tuba зі стандартною українською мовою для повідомлень ActivityPub
=> run-yggdrasil-without-root.gmi 2026-01-30 Запуск роутера Yggdrasil без root
=> gostcoin-on-fedora-linux.gmi 2026-01-29 Особливості запуску GOSTcoin на Fedora

View file

@ -0,0 +1,52 @@
# Запуск роутера Mycelium без root
Щоб не повторюватись, схожа тема:
=> run-yggdrasil-without-root.gmi Запуск роутера Yggdrasil без root
Відмінність рішення для Mycelium полягає лише у тому, що тут не потрібно вказувати адреси UNIX-сокета.
``` bash
useradd -s /usr/sbin/nologin -M mycelium
```
Якщо файл ключа було згенеровано раніше, `myceliumd` для нього встановлює права `0400`, отже потрібно актуалізувати й власника - інакше сервіс не зможе запуститись від нового користувача `mycelium`:
``` bash
chown mycelium:mycelium /etc/mycelium.bin
```
Тепер створюємо сервіс:
``` /etc/systemd/system/mycelium.service
#/etc/systemd/system/mycelium.service
[Unit]
Wants=network.target
After=network.target
[Service]
User=mycelium
Group=mycelium
ProtectHome=true
ProtectSystem=strict
SyslogIdentifier=mycelium
NoNewPrivileges=true
CapabilityBoundingSet=CAP_NET_ADMIN CAP_NET_BIND_SERVICE
AmbientCapabilities=CAP_NET_ADMIN CAP_NET_BIND_SERVICE
ExecStartPre=+-/sbin/modprobe tun
ExecStart=/usr/local/bin/mycelium -k /etc/mycelium.bin --peers tcp://xxx.xxx.xxx.xxx:xxxx
# Адреси підмереж
#ExecStartPost=/bin/sleep 5s
#ExecStartPost=/bin/ip address add xxx:xxxx:xxxx:xxxx::x1/64 dev mycelium
#ExecStartPost=/bin/ip address add xxx:xxxx:xxxx:xxxx::x2/64 dev mycelium
#Restart=always
#RestartSec=5
TimeoutStopSec=5
```
* якщо не планується робота з портами нижче `1024`, то `CAP_NET_BIND_SERVICE` варто прибрати
* є ще цікава опція `--no-tun`, тоді можна обійтись без `CAP_NET_ADMIN` але:
> The system will participate in the network as usual, but won't be able to send out L3 packets

View file

@ -44,5 +44,7 @@ AdminListen: unix:///var/run/yggdrasil/yggdrasil.sock
---
* Думаю зробити те само для Mycelium, бо мене тема пускання від рута давно параноїть і я просто вимикаю роутер, коли ним не користуюсь.
* Думаю зробити те само для Mycelium, бо мене тема пускання від рута давно параноїть і я просто вимикаю роутер, коли ним не користуюсь:
=> run-mycelium-without-root.gmi Запуск роутера Mycelium без root
* Збирання програм від рута - це ще одна дурнувата звичка, через що (ймовірно) я колись вхопив невловимий малварь, який благополучно здох тільки разом зі старим сервером.