Автовыход из оболочки по таймауту






Представьте, что у вас есть высокозагруженный SSH-сессиями сервер, на котором трудятся пару сотен пользователей. И определённая часть этих самых пользователей то и дело забывает завершать свои сеансы работы и просто сворачивает у себя окошко терминала на панель задач. А тем временем — это ресурсы сервера, которые бесконечными никогда не являлись и никогда таковыми не будут. Или представьте себе другую ситуацию. Вы работаете в консольном сеансе с сервером. Вас кто-то отвлекает, вы по своей нерадивости бросаете открытым сеанс и идёте курить с коллегой на крыльцо офиса. В жизни всякое бывает и никто ни от чего не застрахован, но там, где можно «перебдеть», уж лучше это сделать. Сегодня поговорим о том, как автоматически завершать сеанс работы с оболочкой по истечению определённого отрезка времени.


bash

В bash таймаут автологаута регулируется значением переменно TMOUT. Значение этой переменной, отличное от нуля, определяет количество секунд с момента последнего нажатия клавиши, по истечению которых оболочка автоматически завершит свою работу. Чтобы применить данное огрниачение на бездействие ко всем пользователям системы, можно воспользоваться таким трюком.

Создайте файл /etc/profile.d/autologout.sh со следующим содержимым (не забудьте исправить значение TMOUT на нужное вам):

Сделайте созданный файл исполняемым:

tcsh

В этой оболочке аналогичной по действию переменной является переменная autologout с тем лишь исключением, что её значение задаётся не в секундах, а в минутах. Действия для глобального внедрения ограничений пользователям tcsh похожи на описанные выше.

Создайте файл /etc/profile.d/autologout.сsh со следующим содержимым (не забудьте исправить значение autologout на нужное вам):

Сделайте созданный файл исполняемым:

OpenSSH

OpenSSH предоставляет собственные средства по организации автоматического выбрасывания неактивных пользователей. Таймаут активности клиента регулируется параметром конфигурации ClientAliveInterval и задаётся в секундах.

Откройте файл /etc/ssh/sshd_config и добавьте/исправьте значение параметра:

Не забудьте перезапустить сервис:

По мотивам статьи на cyberciti.biz