我想build立一个专用的机器,可以用来testing我们公司的应聘者。 该机器应该运行Linux与SSH服务器监听连接。
我想向每个候选人发送一个用户名和密码(同一个)。
在连接之后,他将被告知如何进行testing并提交他的工作。 如果他断开连接,所有的更改都会恢复,文件,历史logging,一切都需要删除。
我也想支持多个用户使用相同的凭证连接。 所以我想我需要实现为每个SSH连接dynamic创build的某种虚拟环境。
实际上在互联网战争游戏中有这样的实现(例如http://overthewire.org/wargames/bandit/bandit0.html )
任何想法如何实现呢?
每用户消息可以是$ HOME / .bashrc或类似的echo语句。 即使用户修改该文件,他们也需要先login才能这样做,即使这样他们也会看到该消息。 更好的方法可能是在/etc/motd 。 这就是那个文件的用途。
看看帕特里克的答案在这里执行注销的东西。 您可以简单地重新启动虚拟机,并让虚拟机pipe理程序从干净的快照/冻结映像自动启动。 就我个人而言,我不会使用.bash_logout,因为它需要一些小窍门来确保用户不能修改/删除/重命名/符号链接文件。 PAM会更加万无一失。
如果你不想重新启动虚拟机,也许带有原始系统文件副本的ar / o分区可能是rsync'd(#rsync # rsync -av /mnt/ro/home/ /home/ --delete )为$首页/注销后。