1. Самое простое - завести 10 однотипных пользователей на сервере, каждому поднять VNC сервер на своем порту, на клиентских машинах настроить VNC клиент с коннектом к соответствующему порту. Будет использоваться одна общая система, у каждого свой домашний каталог с рабочим столом и можно настроить права доступа к остальной системе и ресурсам других пользователей.
2. Завести 10 однотипных контейнеров Docker, в каждом полноценная (или обрезанная) ОС и один пользователь. В каждом контейнере поднять VNC сервер на стандартном порту, на хосте пробросить разные порты VNC в разные контейнеры. На клиентских машинах настроить VNC клиент с коннектом к соответствующему проброшенному порту. Каждый пользователь будет видеть только собственную OC и не сможет мешать остальным.
3. Завести 10 однотипных виртуальных машин (VirtualBox или родной VirtualManager/Qemu) с полноценной или урезанной ОС. В настройках дисплея разрешить удаленный доступ по VNC (либо так же поднять VNC сервер внутри). Виртулакам либо раздать статические адреса, либо на хосте пробросить разные порты VNC в разные виртуалки. На клиентских машинах настроить VNC клиент с коннектом к соответствующей виртуалке либо по ее статическому адресу либо по номеру проброшенного порта.. Каждый пользователь будет видеть только собственную OC и не сможет мешать остальным.
Варианты 2 и 3 очень похожи, только 3 требует больше ресурсов на хосте за счет использования полноценных виртуальных машин вместо легковесных контейнеров.