Сохранение незанятых сеансов оболочки на сервере Linux может представлять угрозу безопасности. Не забывайте, что это потребляет системные ресурсы.
Хорошо, возможно, не один сеанс ожидания, но представьте, что у вас есть несколько пользователей, которые получают удаленный доступ к одной и той же системе Linux и оставляют свои сеансы бездействующими.
Как системный администратор Linux вы можете видеть, какие пользователи вошли в систему и как долго они бездействовали.
Вы можете вручную выгнать бездействующего пользователя, но это утомительно и, конечно, не очень продуктивно.
Позвольте нам показать вам, как автоматически вывести бездействующих пользователей из их оболочки.
В 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, вы можете использовать следующий метод.
Вы можете настроить SSH-сервер на принудительный выход пользователя из системы после определенного периода бездействия.
Отредактируйте файл конфигурации SSH (/etc/ssh/sshd_config):
sudo nano /etc/ssh/sshd_config
Найдите следующие две переменные и удалите # перед их начальной строкой и установите такие значения:
ClientAliveInterval 200 ClientAliveCountMax 3
Сохраните и закройте файл.
Это означает, что сервер будет отправлять клиенту сообщение о сохранении активности каждые 200 секунд 3 раза. Если он не получает ответа (что означает, что пользователь бездействует), он закроет сеанс через 600 секунд (200 * 3).
Вы можете выбрать подходящие значения в зависимости от ваших требований.
Это только метод SSH и не влияет на локальные сеансы оболочки.
Надеюсь, вы найдете этот совет Linux по автоматическому выходу пользователей из системы полезным.