1

Я создаю инструмент, который будет запускать программы, загруженные моими учениками, и проверять их домашние задания на уроке программирования.

Их программы читают из стандартного ввода, выполняют некоторые вычисления и затем записывают в стандартный вывод. Ничего больше. Каждая программа состоит из одного исполняемого файла.

Как я могу помешать их программам делать что-нибудь неприятное в моей системе?

Я хотел бы использовать Linux.

РЕДАКТИРОВАТЬ: я не доверяю соседям мои студенты соседствуют с моим собственным сервером. На моем сервере могут быть файлы с разрешениями 777, которые я не хочу, чтобы студенты читали. Я считаю, что я мог бы использовать команду chroot для предотвращения доступа к файлам. Но как я могу запретить доступ, например, к сети и интернету?

1 ответ1

1

У вас есть несколько вариантов, это действительно баланс времени и усилий против того, насколько вы не доверяете своим студентам.

Самый безопасный способ - запустить виртуальную машину Linux, но, вероятно, в ней нет необходимости, если единственной целью машины является тестовая площадка.

Имея правильные права доступа к остальным файлам, вы можете просто сделать пользователя "Студентом" и дать ему единый каталог, для которого у них есть разрешение. У них не будет разрешения редактировать какие-либо системные файлы, и любые потенциально разрушительные инструменты, такие как gparted, потребуют sudo (не включайте их в sudoers).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .