Во-первых, для пользователей, для которых вы собираетесь это сделать, убедитесь, что у их ~/.screenrc есть строка
shell /bin/bash
(или любая другая оболочка, которую использует ваш пользователь). Если у вас нет этого набора параметров и вы меняете свою оболочку, как мы, пользователь не сможет войти в систему. Вы также можете подумать о том, чтобы убрать сообщение об окончании экрана с этой линией
startup_message off
Хорошо, теперь давайте сделаем исполняемый скрипт, который присоединяется к первому уже запущенному сеансу экрана, если он выйдет, и он уже не является запуск начинается. Запуск в терминале
sudo nano /bin/screenlogin.sh
Поместите две следующие строки:
#!/bin/bash
screen -x -r || screen
Нажмите Ctrl x и затем y, чтобы сохранить файл. Запустите
sudo chmod 755 /bin/screenlogin.sh
Наконец, запустите chsh у целевого пользователя и введите /bin/screenlogin.sh для оболочки при запросе.