mirror of
https://codeberg.org/postscriptum/gemlog.git
synced 2026-02-19 06:22:41 +00:00
52 lines
No EOL
1.9 KiB
Text
52 lines
No EOL
1.9 KiB
Text
# Запуск роутера 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 |