Назад | Перейти на главную страницу

Убедитесь, что сеансы консоли не оставлены в системе (Linux)

В системе Linux с bash в качестве оболочки по умолчанию я хочу настроить автоматический выход из системы по следующим критериям:

Цель состоит в том, чтобы гарантировать, что сеансы консоли, будь то через VGA, удаленный KVM или последовательный порт, не останутся случайно зарегистрированными. Я хочу обеспечить это на нашем сайте.

В TMOUT переменная окружения не совсем подходит для моих нужд из-за второго пункта.

Я мог бы найти быстрое решение, которое убивает login процессы определенного возраста, но это кажется хрупким и склонным к побочным эффектам. Я мог искать снаряды, чьи /proc/$PID/fd/0 ссылка на /dev/tty*.

Это похоже на проблему, которая должен хотя уже решены. Мы очень ценим любые указания относительно того, как это достигается.

Вы можете запустить этот скрипт в crontab, чтобы исключить сеансы, кроме ssh каждые пару минут:

pkill -t $(ps  aho tty,command | egrep -v ssh | cut -d" " -f1 |sort |uniq | paste -sd",")


ps aho tty,command будет перечислять процессы и их TTY.
egrep -v ssh удалит сеансы ssh из списка.
cut -d" " -f1 выбрал бы только TTY часть ps.
sort & uniq удалил бы дубликаты.
paste -sd"," сделает список в формате запятой, чтобы быть совместимым для запуска с pkill команда.

pkill -t TTY убьет процесс, принадлежащий TTY