mirror of
https://codeberg.org/postscriptum/devzone.org.ua.git
synced 2026-02-18 22:02:41 +00:00
2 KiB
2 KiB
Запуск роутера Mycelium без root
Щоб не повторюватись, схожа тема про Запуск роутера Yggdrasil без root.
Відмінність рішення для Mycelium полягає лише у тому, що тут не потрібно вказувати адреси UNIX-сокета.
useradd -s /usr/sbin/nologin -Mr mycelium
Якщо файл ключа було згенеровано раніше, myceliumd для нього встановлює права 0400, отже потрібно актуалізувати й власника - інакше сервіс не зможе запуститись від нового користувача mycelium:
chown mycelium:mycelium /etc/mycelium.bin
Тепер створюємо сервіс:
#/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