tgoop.com/itpgchannel/3416
Create:
Last Update:
Last Update:
Будни #bootstrap
Запилил новый способ запуска пользовательской сессии - через отдельный pid namespace, и mount namespace.
pid namespace - чтобы не видеть лишнего, очень удобно:
pg:home# pstree
dbus-run-sessio─┬─alacritty─┬─bash───mc───bash
│ └─31*[{alacritty}]
├─alacritty─┬─bash───pstree
│ └─31*[{alacritty}]
├─dbus-daemon
├─mako
├─niri───15*[{niri}]
├─swaybg
└─waybar───17*[{waybar}]
Ну и mount namespace, чтобы /bin глядела в мой #realm, а не в системный:
pg:home# ls -la /bin
lrwxrwxrwx 1 pg pg 15 Sep 20 21:23 /bin -> ix/realm/pg/bin
То есть, я полностью изолирую свою сессию от системного окружения, даже управляющие сокеты оставляю минимально:
pg:home# find /var/run/ | grep -v std
/var/run/
/var/run/sndiod
/var/run/sndiod/sock0
/var/run/seatd
/var/run/seatd/seatd.sock
/var/run/dbus
/var/run/dbus/system_bus_socket
Не полноценная виртуализация, но контейнеризация, с большим набором ограничений.
В итоге, твоя сессия - это только твои процессы, и твои файлы, а для остального есть sudo.
Наверное, что-то похожее делает https://www.talos.dev/
BY commit -m "better"

Share with your friend now:
tgoop.com/itpgchannel/3416