# TMUX - [TMUX](#tmux) - [Установка](#установка) - [tmux](#tmux-1) - [TPM (Tmux Plugin Manager)](#tpm-tmux-plugin-manager) - [Dracula Theme](#dracula-theme) - [Разделяемая сессия между 2-мя пользователями](#разделяемая-сессия-между-2-мя-пользователями) - [Заблокировать пользователя после завершения совместной работы](#заблокировать-пользователя-после-завершения-совместной-работы) ## Установка ### tmux ```bash apt-get install tmux ``` ### TPM (Tmux Plugin Manager) ```bash git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm ``` добавить в конфиг `~/.tmux.conf` ```bash # List of plugins set -g @plugin 'tmux-plugins/tpm' set -g @plugin 'tmux-plugins/tmux-sensible' # Other examples: # set -g @plugin 'github_username/plugin_name' # set -g @plugin 'github_username/plugin_name#branch' # set -g @plugin 'git@github.com:user/plugin' # set -g @plugin 'git@bitbucket.com:user/plugin' # Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf) run '~/.tmux/plugins/tpm/tpm' ``` ### Dracula Theme *** ***Конфиг*** *(пользовательский / системный)* ```bash ~/.tmux.conf /etc/tmux.conf ``` ***Включить поддержку мыши*** *(в конфиг добавить)* ```bash set -g mouse on ``` ***Запуск*** *(без параметров будет создана сессия `0`)* ```bash tmux ``` новая сессия `session1`. Название отображается снизу-слева в квадратных скобках в статус строке. Далее идет перечисление окон. Текущее окно помечается звездочкой. ```bash tmux new -s session1 ``` ***Окна*** `Ctrl+b с` - новое окно `Ctrl+b w` - список окон. переключиться курсором вверх-вниз `Ctrl+b &` - закрыть окно, нужно подтвердить `y` `Ctrl+b {` - переместить активное окно влево по кругу ***Переключение*** `Ctrl+b n` - следующее окно `Ctrl+b p` - предыдущее окно `Ctrl+b 0` - переключиться на номер окна ***Деление окна*** `Ctrl+b "` - деление окна горизонтально или `tmux split-window -h` `Ctrl+b %` - деление окна вертикально или `tmux split-window -v` `Ctrl+b стрелки` - переход между панелей, либо режим мыши `Ctrl+b+стрелки` - изменение размеров панелей или `Ctrl+b Ctrl+стрелки`. Или мышью - потянуть за край панели. `Ctrl+b z` - zoom, выделить окно, повторное нажатие вернёт обратно `Ctrl+b space` - смена разделения на предопределённые расположения `Ctrl+d` - закрыть текущее окно `Ctrl+b x` - закрытие окон, нужно подтвердить `y` или `exit` ***Сессии*** `Ctrl+b d` - отключение от сессии или `tmux detach` `tmux ls` - список сессий *Подключиться к работающей сессии* `tmux attach` - подключение к сессии, либо к единственной, либо последней созданной `tmux attach -t session1` - подключение к сессии session1 `Ctrl+b s` - выбрать сессию `tmux kill-session -t session1` - завершение сессии `tmux kill-server` - завершить все сессии *** `tmux list-commands` - cписок поддерживаемых команд ### Разделяемая сессия между 2-мя пользователями Чтобы несколько пользователей могли подключиться к одной сессии tmux, можно выполнить следующие шаги: - создать общую группу и добавить пользователей в эту группу ```bash su - TMUX_GROUP=tmuxgroup groupadd $TMUX_GROUP usermod -aG $TMUX_GROUP user1 usermod -aG $TMUX_GROUP user2 ``` - создать директорию с битом `setgid`, в которой будет создаваться сокет разделяемой сессии tmux ```bash mkdir /var/tmux chgrp $TMUX_GROUP /var/tmux chmod g+ws /var/tmux ``` - создать общую сессию ```bash tmux -S /var/tmux/shared-session ``` - второй пользователь может подключиться к созданной сессии ```bash tmux -S /var/tmux/shared-session attach ``` ### Заблокировать пользователя после завершения совместной работы После завершения совместной работы можно заблокировать учётную запись второго пользователя, чтобы не было возможности несанкционированного подключения к узлу. ```bash usermod -L user2 ``` Чтобы разблокировать пользователя, вводим: ```bash usermod -U user2 ``` Текущий статус блокировки учётной записи ```bash da2001@bastion:~ $ sudo passwd -S tmuxuser tmuxuser L 04/08/2024 0 99999 7 -1 da2001@bastion:~ $ sudo passwd -S da2001 da2001 P 04/04/2022 0 99999 7 -1 da2001@bastion:~ $ ``` где - `L` - учётная запись заблокирована - `P` - учётная запись разблокирована