我想为Linux系统上的学生创建一个自动测试/评分脚本,以便:
简而言之,我希望创建类似于编程竞赛提交系统的东西,但是在不泄露所有教师单元测试的情况下允许更丰富的反馈。
我认为一个启动脚本和一个root-permission cron脚本之间的假脱机行为可能是有序的。是否有任何模型/示例可以说明如何最好地构建用户启动的脚本与单独的根启动脚本之间的通信?
答案 0 :(得分:0)
有很多选择。
我在第一行提到的事情:
sudo
启动的普通脚本(当然学生必须有sudoers
条目允许他们使用脚本); 答案 1 :(得分:0)
如果你想坚持使用shell脚本,我建议在进程之间进行通信的方法是让root脚本连续检查命名管道的输入(即在每次eof之后保持打开它)并通过各种各样的方式发送每个输入必须进行测试。将部分输入作为“返回地址” - 将结果发送到何处。
这应允许在特权空间中执行测试,而不会向学生公开对特权空间的任何控制。学生不需要sudo,也不需要拉图书馆。只需让学生将他们的代码传递给一个非特权脚本,该脚本会添加返回地址和您可能需要的任何其他标记,然后将其提供给命名管道。