Hasher/tmux
Использование tmux в Hasher
1. Общая настройка Hasher
- В /etc/hasher-priv/system нужно добавить /dev/pts в allowed_mountpoints=, например:
allowed_mountpoints=/proc,/dev/shm,/dev/pts
- В ~/.hasher/config добавить /dev/pts в known_mountpoints=, например:
known_mountpoints=/proc,/dev/kvm,/dev/pts
- Ппри запуске hsh-shell нужно передать /dev/pts в ключ
--mountpoints=
, пример:
$ hsh-shell --mountpoints=/proc,/dev/kvm,/dev/pts
2. Настроить Hasher сессию
~$ hsh --ini ~$ hsh-install tmux
Нужно добавить пользователя которому будет разрешено присоединяться к tmux серверу.
~$ hsh-run --rooter -- /bin/sh -c "echo $USER:x:$UID:$UID::/usr/src:/bin/bash >> /etc/passwd" ~$ hsh-run --rooter -- /bin/sh -c "echo server-access -aw $USER >> /etc/tmux.conf"
3. Запуск tmux сервера
Первый запуск tmux запустит tmux server и первую сессию в нём. В ней нужно будет установить разрешающие премишены на управляющий сокет. В дальнейшем вы оставляете эту сессию запущенной. Из неё нельзя выходить иначе tmux будет убит Hasher'ом.
~$ hsh-shell --mountpoints=/dev/pts builder@i586:/.in$ tmux -S /.out/tmux builder@i586:/.in$ chmod 660 /.out/tmux
4. Присоединение к tmux извне Hasher
Допустим workdir находится в ~/hasher
. При подключении к tmux внутрь Hasher нужно указать пусть к управляющему сокету, который изнутри Hasher имеет имя /.out/tmux
, а снаружи ~/hasher/chroot/.out/tmux
.
Например, проверяем, что доступ есть и сессии видны:
~$ tmux -S ~/hasher/chroot/.out/tmux ls 0: 1 windows (created Tue Mar 28 23:45:10 2023) (attached)
Присоединение и создание новой сессии внутри tmux будет так:
~$ tmux -S ~/hasher/chroot/.out/tmux new
Таким образом можно создавать много сессий работающих в одном Hasher окружении. Главное не выходить из первой сессии где tmux был запущен в hsh-shell.
^B
+ (
и ^B
+ )
. Остальной функционал см. в документации по tmux.
Документация по tmux
- https://github.com/tmux/tmux/wiki
- https://man7.org/linux/man-pages/man1/tmux.1.html
- https://tmuxguide.readthedocs.io/en/latest/