Vários usuários inexperientes em um servidor Linux. Qual a melhor forma de usar contêineres para proteção contra danos não intencionais?

Vários usuários inexperientes em um servidor Linux. Qual a melhor forma de usar contêineres para proteção contra danos não intencionais?

Portanto, sou um pesquisador encarregado de manter vários servidores GPU para pesquisadores em meu laboratório. Tenho bastante experiência em Linux, embora alguns usuários nunca tenham usado Linux antes.

Os outros pesquisadores e eu temos acesso root. Infelizmente, ao configurar requisitos/dependências/etc. para seus projetos, eles danificarão ou configurarão incorretamente o servidor, às vezes de maneiras que não consigo descobrir como consertar.

Então, quero usar chroot, LXC ou algum outro tipo de virtualização de baixa sobrecarga para limitar danos não intencionais. Por exemplo, um usuário executando acidentalmente sudo rm -rf --no-preserve-root /só deve danificar seu próprio contêiner. Não pretendo proteger contra danos intencionalmente maliciosos ou contra o esgotamento de recursos (mas isso seria bom se fosse "de graça").

Mais importante ainda, quero que essa mudança seja transparente para eles: todos devem ser capazes de fazer SSH no servidor e se conectar imediatamente ao seu próprio contêiner, e também poder usar rsync, etc. para entender os contêineres. Idealmente, todos eles também poderiam acessar uma pasta/disco compartilhado (para armazenar grandes conjuntos de dados, modelos, etc. que não queremos duplicar). Para ser mais específico, estamos em um servidor Ubuntu 18.04.

Em resumo, executo um servidor Linux para vários usuários com acesso SSH. Meus objetivos são compartimentar os usuários em seus próprios containers/VMs para proteção contra danos não intencionais, sem uma grande sobrecarga e sem exigir que esses usuários alterem seu fluxo de trabalho. Como alguém conseguiria isso?

informação relacionada