确保没有登录控制台会话(Linux)

前端之家收集整理的这篇文章主要介绍了确保没有登录控制台会话(Linux)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在使用bash作为默认 shellLinux系统上,我想使用以下条件配置自动注销:

>在指定的时间段后注销控制台会话(VGA,串行,远程KVM等)
>即使在运行“非空闲”进程(如top)时,也会注销控制台会话
> SSH会话不会以这种方式注销

目的是确保无论是通过VGA还是远程KVM或串行,都不会意外登录控制台会话.我希望在我们的网站上确保这一点.

由于第二个项目符号,TMOUT环境变量并不能完全满足我的需求.

我可以找到一个快速解决方案来杀死某个年龄段的登录过程,但这似乎很脆弱,容易产生副作用.我可以查找/ proc / $PID / fd / 0链接到/ dev / tty *的shell.

这似乎是一个必须已经解决的问题.关于如何实现这一点的任何指示都非常感谢.

解决方法

您可以在crontab中运行此脚本,以便每隔几分钟消除除ssh之外的会话:
pkill -t $(ps  aho tty,command | egrep -v ssh | cut -d" " -f1 |sort |uniq | paste -sd",")

ps aho tty,命令会列出procceses及其TTY.
egrep -v ssh将从列表中删除ssh会话.
cut -d“” – f1只会选择ps的TTY部分.
排序& uniq会删除重复项.
paste -sd“,”会使逗号形成的列表与pkill命令一起运行.

pkill -t TTY would kill the proccess owned by TTY

原文链接:https://www.f2er.com/linux/400063.html

猜你在找的Linux相关文章