В системе Linux с bash
в качестве оболочки по умолчанию я хочу настроить автоматический выход из системы по следующим критериям:
top
Цель состоит в том, чтобы гарантировать, что сеансы консоли, будь то через 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