gemlog/public/uk/run-mycelium-without-root.gmi
2026-02-01 13:12:01 +02:00

52 lines
No EOL
1.9 KiB
Text
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Запуск роутера Mycelium без root
Щоб не повторюватись, схожа тема:
=> run-yggdrasil-without-root.gmi Запуск роутера Yggdrasil без root
Відмінність рішення для Mycelium полягає лише у тому, що тут не потрібно вказувати адреси UNIX-сокета.
``` bash
useradd -s /usr/sbin/nologin -Mr 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