编写脚本来判断哪些用户当前正在输入?

编写脚本来判断哪些用户当前正在输入?

我正在为网络安全课程的实验室工作,需要查明某些用户何时相互通信(通过命名管道)。

用户使用:

python gameProgram.py

然后该过程接受输入并将其写入命名管道。

我知道 /dev/random 文件在有人输入时会被修改,但这不能告诉我是谁输入的,对吗?

我正在考虑使用类似的东西:

grep "voluntary_switches" /proc/####/sched

说实话,我有点不知所措。上面的代码只返回一个整数。另外,我需要以某种方式获取进程号。我现在正在努力想出一个脚本,让我从 (A) 正在运行的进程列表转到 (B) 当该用户输入时输出用户名。不幸的是,没有 sudo 权限。

我需要做类似的事情:

echo 'ps | grep "python" |    ???    |  grep "voluntary_switches"'

有点 ...?

任何帮助将不胜感激!

答案1

练习的目的是训练你以不同的方式思考,所以用 20 行 bash 脚本来解决问题并没有太大帮助。换句话说

用户 Alice 如何仅使用普通的 Unix 命令来确定用户 Bob 是否处于活动状态/正在输入?

解决该问题的一种方法是查看 Bob(或 Bob 运行的进程)通过标准 Unix 功能“泄露”的所有信息,在本例中主要是进程表(可通过 和许多其他工具访问pstop。要找出可用的信息,最好进行以下实验:

  • 登录一次并python gameProgram.py与您的朋友一起运行(不要输入任何内容,只需让它空闲)
  • 使用第二个会话登录并ps查看该python过程。在没有人输入时是否有任何信息发生变化,还是在对 的不同调用之间所有内容都保持不变ps
  • 开始输入内容/与朋友聊天
  • 再次使用ps以查看输出中是否有任何变化(至少会有变化)。你能利用这一点吗?

一旦您掌握了基础知识(即了解哪些信息ps与确定用户活动相关),就将所有内容组合在一个 shell 脚本中。

相关内容