Совместное использование терминала Raspberry Pi
Совместное использование терминала позволяет нескольким пользователям работать в одной сессии терминала. Это полезно для совместной разработки, обучения и удаленной помощи. Рассмотрим рабочие методы организации общего доступа к терминалу.
Совместное использование терминала Raspberry Pi
Описание/Введение: Совместное использование терминала позволяет нескольким пользователям работать в одной сессии терминала. Это полезно для совместной разработки, обучения и удаленной помощи. Рассмотрим рабочие методы организации общего доступа к терминалу.
Использование tmux для совместной работы
Настройка многопользовательских сессий с tmux.
- Установите tmux:
1 2
sudo apt update sudo apt install tmux
- Создайте новую сессию tmux:
1
tmux new-session -s shared - Предоставьте доступ другим пользователям:
1
tmux list-sessions
Настройка совместного доступа к tmux
Организация многопользовательского доступа через сокет.
- Создайте сессию с конкретным сокетом:
1
tmux -S /tmp/shared new-session -s team-session
- Настройте права доступа к сокету:
1
chmod 777 /tmp/shared - Другие пользователи подключаются командой:
1
tmux -S /tmp/shared attach
Безопасная настройка прав доступа
Организация безопасного доступа через группы.
- Создайте группу для пользователей:
1
sudo groupadd tmux-shared - Добавьте пользователей в группу:
1 2
sudo usermod -aG tmux-shared user1 sudo usermod -aG tmux-shared user2
- Настройте права на сокет:
1 2
sudo chgrp tmux-shared /tmp/shared sudo chmod 770 /tmp/shared
Использование screen для совместной работы
GNU Screen как альтернатива tmux.
- Установите screen:
1
sudo apt install screen
- Запустите сессию screen:
1
screen -S shared-session - Включите многопользовательский режим внутри screen:
1 2
Ctrl + a :multiuser on
- Добавьте пользователя:
1
:acladd username
Совместное использование через SSH
Организация общего доступа через SSH.
- Создайте общего пользователя:
1 2
sudo adduser team-user sudo usermod -aG sudo team-user
- Настройте SSH доступ:
1
sudo nano /etc/ssh/sshd_configУбедитесь, что есть:
1
PasswordAuthentication yes - Перезапустите SSH службу:
1
sudo systemctl restart ssh
Установка и использование терминального сервера
Установка ttyd из исходного кода.
- Установите зависимости для сборки:
1
sudo apt install git build-essential cmake libjson-c-dev libwebsockets-dev
- Клонируйте репозиторий ttyd:
1 2
git clone https://github.com/tsl0922/ttyd.git cd ttyd - Соберите и установите:
1 2 3 4 5
mkdir build cd build cmake .. make sudo make install
- Запустите ttyd:
1
ttyd -p 7681 bash
Настройка простого веб-терминала
Использование shellinabox как альтернативы.
- Установите shellinabox:
1
sudo apt install shellinabox
- Запустите службу:
1 2
sudo systemctl start shellinabox sudo systemctl enable shellinabox
- Доступ через браузер:
1
https://ip-адрес-pi:4200
Настройка безопасности общего доступа
Важные меры безопасности.
-
Создавайте отдельных пользователей для общего доступа
- Ограничивайте права через sudoers:
1
sudo visudoДобавьте:
1
team-user ALL=(ALL) NOPASSWD: /usr/bin/apt update, /usr/bin/git
- Настройте брандмауэр:
1 2 3
sudo ufw allow 7681 sudo ufw allow 4200 sudo ufw enable
Мониторинг активных сессий
Отслеживание подключенных пользователей.
- В tmux просмотр подключенных пользователей:
1 2
Ctrl + b w
- Просмотр активных SSH сессий:
1 2
who w - Просмотр сетевых подключений:
1
sudo netstat -tulpn | grep :7681
Автоматизация запуска сервисов
Настройка автоматического запуска.
- Создайте systemd службу для ttyd:
1
sudo nano /etc/systemd/system/ttyd.service - Добавьте конфигурацию:
1 2 3 4 5 6 7 8 9 10 11 12 13
[Unit] Description=ttyd terminal server After=network.target [Service] Type=simple User=pi ExecStart=/usr/local/bin/ttyd -p 7681 bash Restart=always RestartSec=5 [Install] WantedBy=multi-user.target
- Включите службу:
1 2
sudo systemctl enable ttyd.service sudo systemctl start ttyd.service
Управление сессиями tmux
Полезные команды для управления.
- Создание новой сессии:
1
tmux new -s session-name - Подключение к существующей сессии:
1
tmux attach -t session-name - Просмотр всех сессий:
1
tmux list-sessions
- Выход из сессии:
1
exit
Устранение проблем
Решение распространенных проблем.
Проблема: Нет доступа к tmux сокету
1
2
3
4
5
# Проверьте права доступа
ls -la /tmp/shared
# Пересоздайте сокет
tmux -S /tmp/shared kill-server
tmux -S /tmp/shared new-session -d
Проблема: Пользователь не видит сессию
1
2
3
4
# Проверьте группу пользователя
groups username
# Проверьте права на сокет
ls -la /tmp/shared
Проблема: Веб-терминал не доступен
1
2
3
4
# Проверьте запущен ли сервис
sudo systemctl status shellinabox
# Проверьте порт
sudo netstat -tulpn | grep 4200
Теперь вы можете организовать совместную работу в терминале Raspberry Pi используя проверенные методы. Эти решения обеспечивают надежный общий доступ к терминалу без зависимости от внешних сервисов.


