Штатное решение задачи можно использовать cgroup, но его настройка может быть сложной. Проще использовать виртуализацию или паравиртуализацию lxc, которая фактически представляет собой интерфейс к cgroup. Однако, виртуализация имеет недостатки, такие как сложность настройки интерфейса, отсутствие поддержки 3D-ускорения и возможные проблемы с воспроизведением видео выше Full HD @ 30. Такие функции доступны в любом дистрибутиве Linux, например, Ubuntu (lxc можно установить в libvirt вручную, а файловую систему виртуальной машины также нужно создавать вручную, но это обеспечивает максимальную производительность и почти отсутствие накладных расходов). Кстати, приложения, установленные из snap, также используют систему контейнеризации, основанную на cgroup. Таким образом, устанавливая приложение из snap, оно будет работать в песочнице и будет иметь доступ только к разрешенным ресурсам, от принтера до файлов на диске (рабочая директория пользователя будет доступна, но остальное, кроме root, будет недоступно, например, флешки или примонтированные диски). В Ubuntu, например, уже используется snap для установки Firefox. Лично мне такой подход не нравится, но вероятно я просто не умею его настраивать. Для доступа к графическому пользовательскому интерфейсу из песочницы lxc есть два способа: настроить доступ к xserver (при использовании Xubuntu, например) или использовать ssh с ключом -X, в этом случае песочница будет восприниматься как удаленная машина, и трафик графического интерфейса будет шифроваться и сжиматься, как в случае работы через сеть (хотя на самом деле это будет работать только на localhost). Основной принцип заключается в том, чтобы размещать опасные приложения внутри песочницы. К сожалению, игры представляют отдельную проблему, и для них лучше использовать отдельную физическую машину. Настройка сети в таком сценарии означает просто не предоставлять доступ к ней всем, кроме выбранных пользователей. Это можно осуществить на уровне виртуальной машины/песочницы, просто не указывая или указывая неверный шлюз по умолчанию. Такие виртуальные машины придется обновлять вручную (например, настроить свой собственный сервер обновлений или временно включать доступ в Интернет).