2024-04-05 11:49:45 +03:00
# TMUX
2024-04-08 10:10:25 +03:00
- [TMUX ](#tmux )
- [Установка ](#установка )
- [tmux ](#tmux-1 )
- [TPM (Tmux Plugin Manager) ](#tpm-tmux-plugin-manager )
- [Dracula Theme ](#dracula-theme )
- [Разделяемая сессия между 2-мя пользователями ](#разделяемая-сессия-между-2-мя-пользователями )
2024-04-08 10:33:25 +03:00
- [Заблокировать пользователя после завершения совместной работы ](#заблокировать-пользователя-после-завершения-совместной-работы )
2024-04-08 10:10:25 +03:00
2024-04-05 11:49:45 +03:00
## Установка
### tmux
```bash
apt-get install tmux
```
### TPM (Tmux Plugin Manager)
< https: / / github . com / tmux-plugins / tpm >
```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
< https: / / draculatheme . com / tmux >
2024-04-08 10:10:25 +03:00
***
2022-05-07 22:12:11 +03:00
***Конфиг*** *(пользовательский / системный)*
2024-04-08 10:10:25 +03:00
2022-05-07 22:12:11 +03:00
```bash
~/.tmux.conf
/etc/tmux.conf
```
***Включить поддержку мыши*** *(в конфиг добавить)*
2024-04-08 10:10:25 +03:00
2022-05-07 22:12:11 +03:00
```bash
set -g mouse on
```
***Запуск*** *(без параметров будет создана сессия `0`)*
2024-04-08 10:10:25 +03:00
2022-05-07 22:12:11 +03:00
```bash
tmux
```
2024-04-08 10:10:25 +03:00
2022-05-07 22:12:11 +03:00
новая сессия `session1` . Название отображается снизу-слева в квадратных скобках в статус строке. Далее идет перечисление окон. Текущее окно помечается звездочкой.
2024-04-08 10:10:25 +03:00
2022-05-07 22:12:11 +03:00
```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пис о к поддерживаемых команд
2024-04-08 10:10:25 +03:00
### Разделяемая сессия между 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
2024-04-08 10:32:09 +03:00
tmux -S /var/tmux/shared-session
2024-04-08 10:10:25 +03:00
```
- второй пользователь может подключиться к созданной сессии
```bash
2024-04-08 10:32:09 +03:00
tmux -S /var/tmux/shared-session attach
2024-04-08 10:10:25 +03:00
```
2024-04-08 10:33:25 +03:00
### Заблокировать пользователя после завершения совместной работы
2024-04-08 10:10:25 +03:00
После завершения совместной работы можно заблокировать учётную запись второго пользователя, чтобы не было возможности несанкционированного подключения к узлу.
```bash
usermod -L user2
```
Чтобы разблокировать пользователя, вводим:
```bash
usermod -U user2
```
2024-04-08 10:32:09 +03:00
Текущий статус блокировки учётной записи
```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` - учётная запись разблокирована