Я хочу создать специальную машину, которую я могу использовать для тестирования кандидатов в нашей компании. Машина должна работать под управлением Linux с сервером SSH, который прослушивает соединения.
Я хотел бы отправить каждому кандидату пользователя и пароль (одинаковый).
После подключения ему будет предоставлено сообщение о том, как продолжить тест и отправить свою работу. Если он отключится, все изменения будут отменены, файлы, история, все нужно стереть.
Я также хотел бы поддерживать несколько пользователей, подключающихся с одними и теми же учетными данными. поэтому я предполагаю, что мне нужно реализовать какую-то виртуализированную среду, которая создается на лету для каждого соединения SSH.
Фактически это реализовано в военных играх в Интернете (например, в этом http://overthewire.org/wargames/bandit/bandit0.html)
Есть идеи, как этого добиться?
Сообщения для каждого пользователя могут быть выражением эха в $ HOME / .bashrc или аналогичном. Даже если пользователь изменяет этот файл, ему нужно сначала войти в систему, чтобы сделать это, и даже тогда они уже увидели бы сообщение. Лучшим способом может быть что-то в /etc/motd
. Вот для чего используется этот файл.
Взгляните на Патрика ответь здесь для выполнения чего-либо при выходе из системы. Вы можете просто перезагрузить виртуальную машину, и гипервизор автоматически загрузится с чистого снимка / замороженного образа / чего угодно. Лично я бы не стал использовать .bash_logout для этого, так как требуется немного возиться, чтобы убедиться, что пользователь не может изменить / удалить / переименовать / создать символическую ссылку на файл. PAM был бы более надежным.
Если вы не хотите перезагружать виртуальную машину, возможно, раздел r / o с копией исходных системных файлов может быть rsync'd (# rsync -av /mnt/ro/home/ /home/ --delete
) в $ HOME / после выхода.