Es gibt verschiedene Möglichkeiten, je nachdem, wie sehr Sie isoliert sein möchten.
Am einfachsten ist es, einfach dem Code zu vertrauen. Es sieht so aus, als käme das für Sie nicht in Frage, sonst würden Sie das nicht fragen.
Der nächste Schritt besteht darin, den Code auf einem separaten Benutzerkonto auszuführen , wie von Vigneshwaren vorgeschlagen . Wenn Sie den Netzwerkzugriff speziell für ein bestimmtes Benutzerkonto einschränken möchten, können Sie dies durch die Zuordnung der Eigentümer zu iptables erreichen . Wenn dies erledigt ist, kann das Benutzerkonto beibehalten oder gelöscht werden, und alle Prozesse, die als dieser Benutzer ausgeführt werden, können sofort beendet werden.
Ein weiterer Schritt besteht darin, dem separaten Benutzerkonto ein Chroot-Gefängnis hinzuzufügen. Dies kann zu Problemen mit Bibliotheken oder Konfigurationsdateien führen, die vorhanden sein müssen. Wenn es sich jedoch beispielsweise um eine reine Zahlenkalkulationsübung handelt, kann dies praktisch sein. Dadurch wird sichergestellt, dass nur auf die Dateien zugegriffen werden kann, auf die der Schülercode zugreifen soll.
Der letzte Schritt wäre, den Code in einer völlig separaten Umgebung auszuführen. Denken Sie hier an eine virtuelle Maschine, obwohl ein separater physischer Computer dasselbe leisten könnte. Der Code kann in einer vollständig isolierten Umgebung ausgeführt werden, auch wenn das virtuelle Netzwerkkabel abgezogen ist. Eventuelle Schäden, einschließlich des Auffüllens des Datenträgers oder der Bombardierung durch Gabeln, werden innerhalb der virtuellen Maschine isoliert, und das Schlimmste, was passieren kann, ist dass Sie es zwangsweise ausschalten müssen. Da die VM über eine vollständig separate Betriebssysteminstallation verfügt, insbesondere wenn Sie die Netzwerkverbindung trennen, bevor Sie die Software ausführen, können Ihre vertraulichen Daten möglicherweise nicht verloren gehen. Mit einer VM können Sie Datenträger-Snapshots verwenden, um schnell und einfach in einen bekannten Zustand zurückzukehren, nachdem Sie das Programm jedes Schülers ausgeführt haben.
Es hängt alles davon ab, wo auf der Skala von Aufwand zu Vertrauen Sie Ihre Schüler unterbringen. Weniger Vertrauen erfordert mehr Anstrengungen, um sicherzustellen, dass nichts Schlimmes passiert.