在具有bash默认 shell的 Linux 系统上,我想使用以下条件配置自动注销:
top目的是确保任何控制台会话,无论是通过 VGA、远程 KVM 还是串行,都不会意外地保持登录状态。我想在我们的网站上确保这一点。
TMOUT由于第二个项目符号,环境变量不能完全满足我的需求。
我可以想出一个快速的解决方案来杀死login某个年龄的进程,但这似乎很脆弱并且容易产生副作用。我可以寻找/proc/$PID/fd/0链接到/dev/tty*.
不过,这似乎是一个必须已经解决的问题。任何关于如何实现的指针都非常感谢。
小智 1
您可以在 crontab 中运行此脚本来每隔几分钟消除除ssh之外的会话:
pkill -t $(ps aho tty,command | egrep -v ssh | cut -d" " -f1 |sort |uniq | paste -sd",")
Run Code Online (Sandbox Code Playgroud)
ps aho tty,command将列出进程及其 TTY。
egrep -v ssh将从列表中删除 ssh 会话。
cut -d" " -f1将仅选择 ps 的 TTY 部分。
sort&uniq将删除重复项。
paste -sd","将使逗号格式的列表与命令兼容pkill。
pkill -t TTY会杀死 TTY 拥有的进程
| 归档时间: |
|
| 查看次数: |
105 次 |
| 最近记录: |