在具有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 次 |
最近记录: |