允许多个用户登录并跟踪他们的使用情况

允许多个用户登录并跟踪他们的使用情况

这是为了学术目的。我正在寻找一个好的选择,学生可以使用用户名和密码登录系统,我可以监控学生在做什么。学生应该只使用 bash shell。我想限制学生访问同一个帐户。这是给一组学生布置编程作业。主要要求是

  1. 学生不得使用他人账户
  2. 我需要确保所有人都登录了
  3. 他们只需要访问 shell

有哪些好的选择。我可以在所有的系统中访问 Debian GNU/Linux

答案1

1.学生不得使用他人账户

除非你采用生物识别之类的技术,否则你很难强迫学生不互相分享身份验证凭证。甚至物理令牌也可以从一个人传递给另一个人。唉,你基本上无法保证这一点。

2.我需要确保所有人都登录了

你可以使用类似以下命令来确保每个帐户都已登录last -n1 | grep 'still logged in'根据您的具体需求,流程会计也可能是一种可行的方法。

3.他们只需要访问 shell

这不会特别有用,因为这意味着他们不能做一些简单的事情,例如获取目录列表(/bin/ls)、编辑器、将文本写入文件(/bin/cat - > filename)、在您给他们的编程任务中尝试他们的解决方案(这意味着执行解释器,或编译器、链接器和最终的可执行文件)。

您的环境如何排除这种可能性?为每个学生提供一个可以访问标准工具的普通用户帐户?如果您不想在系统上使用 GUI,您可以选择不安装 X,或者仅提供非特权 SSH 访问并禁用 X 转发。但如果您的目标是限制 Web 访问,请注意,有相当多的基于文本的 Web 浏览器可用,如果有足够的动力,可以使用相对简单的软件和现成的(通常是必需的)模块来引导此类过程。

答案2

对于监控,为什么不直接查看每个用户的.bash_history文件呢?如果您需要记录单个会话,您可以在登录时清除/存档它。

至于检查谁登录了,您已经可以w自行last处理。

对于“仅 shell”访问,您可以确保已sshd配置该访问并指示他们使用 PuTTY 进行连接。

答案3

为了防止学生互相使用帐户,可以通过他们提交测试的方式简单地做到这一点。例如,我会要求他们在测试结束时,在他们的工作目录中运行一个特定的命令(基本上是你准备的脚本)。这个脚本可以加密和压缩他们的工作目录;通过电子邮件发送给你,或者只是把它存储在某个秘密位置。该脚本还应该删除提交后,学生的工作目录。这样,即使有人使用其他人的帐户,他也无法以任何方式获取他的工作。

至于监控他们的登录,我会使用who并持续。

对于仅 Shell 访问,您可以将它们将使用的 Linux 机器/服务器运行到runlevel 3。您还可以修改 tweak/usr/bin/startx和您的 DM 脚本以禁止它们启动,即使有人尝试手动启动它们。例如,我将注释掉 startx 中的所有行并将一行附加到末尾echo "You are not allowed to start X during the exam. This incident have been reported ..."

相关内容