Сохранение незанятых сеансов оболочки на сервере Linux может представлять угрозу безопасности. Не забывайте, что это потребляет системные ресурсы.
Хорошо, возможно, не один сеанс ожидания, но представьте, что у вас есть несколько пользователей, которые получают удаленный доступ к одной и той же системе Linux и оставляют свои сеансы бездействующими.
Как системный администратор Linux вы можете видеть, какие пользователи вошли в систему и как долго они бездействовали.
Вы можете вручную выгнать бездействующего пользователя, но это утомительно и, конечно, не очень продуктивно.
Позвольте нам показать вам, как автоматически вывести бездействующих пользователей из их оболочки.
Метод 1: используйте TMOUT для автоматического выхода пользователей из неактивных сеансов оболочки
В bash и других оболочках вы можете использовать переменную TMOUT для установки времени выхода из системы в режиме ожидания. Если в этот период времени со стороны пользователя нет активности, сеанс оболочки будет закрыт.
Убедитесь, что TMOUT уже установлен. Значения указаны в секундах.
echo $TMOUT
Для тестирования вы можете использовать это так:
TMOUT=300
Это закроет ваш сеанс терминала или сеанс SSH через 300 секунд, то есть через 5 минут.
Для сеансов SSH вы должны увидеть такое сообщение:
root@localhost:~# timed out waiting for input: auto-logout Connection to 212.125.89.175 closed.
Для локальных сессий ваш терминал должен закрываться автоматически.
Но вы, наверное, уже знаете, что это не лучший способ установить переменную среды. Вы можете установить его в профиле отдельного пользователя (или в профиле bash) или установить его для всех пользователей в масштабе системы из /etc/profile.
Предполагая, что вы системный администратор и хотите автоматически выходить из системы бездействующих пользователей на вашем сервере Linux, установите его на системном уровне.
Откройте файл /etc/profile в текстовом редакторе, например Vim или Nano:
nano /etc/profile
И добавьте к нему следующую строку:
TMOUT=300
Сохраните и закройте файл. С этого момента любой пользователь, бездействующий 5 минут, будет автоматически выходить из системы.
Это работает как для локальных, так и для удаленных сеансов. Если вы хотите установить его только для сеансов SSH, вы можете использовать следующий метод.
Метод 2: автоматический выход пользователей из бездействующих сеансов SSH
Вы можете настроить SSH-сервер на принудительный выход пользователя из системы после определенного периода бездействия.
Отредактируйте файл конфигурации SSH (/etc/ssh/sshd_config):
sudo nano /etc/ssh/sshd_config
Найдите следующие две переменные и удалите # перед их начальной строкой и установите такие значения:
ClientAliveInterval 200 ClientAliveCountMax 3
Сохраните и закройте файл.
Это означает, что сервер будет отправлять клиенту сообщение о сохранении активности каждые 200 секунд 3 раза. Если он не получает ответа (что означает, что пользователь бездействует), он закроет сеанс через 600 секунд (200 * 3).
Вы можете выбрать подходящие значения в зависимости от ваших требований.
Это только метод SSH и не влияет на локальные сеансы оболочки.
Надеюсь, вы найдете этот совет Linux по автоматическому выходу пользователей из системы полезным.