Представьте, что у вас есть высокозагруженный SSH-сессиями сервер, на котором трудятся пару сотен пользователей. И определённая часть этих самых пользователей то и дело забывает завершать свои сеансы работы и просто сворачивает у себя окошко терминала на панель задач. А тем временем — это ресурсы сервера, которые бесконечными никогда не являлись и никогда таковыми не будут. Или представьте себе другую ситуацию. Вы работаете в консольном сеансе с сервером. Вас кто-то отвлекает, вы по своей нерадивости бросаете открытым сеанс и идёте курить с коллегой на крыльцо офиса. В жизни всякое бывает и никто ни от чего не застрахован, но там, где можно «перебдеть», уж лучше это сделать. Сегодня поговорим о том, как автоматически завершать сеанс работы с оболочкой по истечению определённого отрезка времени.
bash
В bash таймаут автологаута регулируется значением переменно TMOUT. Значение этой переменной, отличное от нуля, определяет количество секунд с момента последнего нажатия клавиши, по истечению которых оболочка автоматически завершит свою работу. Чтобы применить данное огрниачение на бездействие ко всем пользователям системы, можно воспользоваться таким трюком.
Создайте файл /etc/profile.d/autologout.sh со следующим содержимым (не забудьте исправить значение TMOUT на нужное вам):
TMOUT=300 readonly TMOUT export TMOUT
Сделайте созданный файл исполняемым:
# chmod 0755 /etc/profile.d/autologout.sh
tcsh
В этой оболочке аналогичной по действию переменной является переменная autologout с тем лишь исключением, что её значение задаётся не в секундах, а в минутах. Действия для глобального внедрения ограничений пользователям tcsh похожи на описанные выше.
Создайте файл /etc/profile.d/autologout.сsh со следующим содержимым (не забудьте исправить значение autologout на нужное вам):
set -r autologout 5
Сделайте созданный файл исполняемым:
# chmod 0755 /etc/profile.d/autologout.csh
OpenSSH
OpenSSH предоставляет собственные средства по организации автоматического выбрасывания неактивных пользователей. Таймаут активности клиента регулируется параметром конфигурации ClientAliveInterval и задаётся в секундах.
Откройте файл /etc/ssh/sshd_config и добавьте/исправьте значение параметра:
ClientAliveInterval 300
Не забудьте перезапустить сервис:
# service sshd restart
По мотивам статьи на cyberciti.biz