Ich bin also ein Forscher, der mit der Wartung einer Reihe von GPU-Servern für Forscher in meinem Labor beauftragt ist. Ich habe ziemlich viel Linux-Erfahrung, während einige Benutzer Linux noch nie zuvor verwendet haben.
Die anderen Forscher und ich haben Root-Zugriff. Leider beschädigen sie beim Einrichten von Anforderungen/Abhängigkeiten usw. für ihre Projekte unbeabsichtigt den Server oder konfigurieren ihn falsch, manchmal auf eine Weise, die ich nicht beheben kann.
Ich möchte also Chroot, LXC oder eine andere Art von Virtualisierung mit geringem Overhead verwenden, um unbeabsichtigte Schäden zu begrenzen. Beispielsweise sudo rm -rf --no-preserve-root /
sollte ein Benutzer, der versehentlich etwas ausführt, nur seinen eigenen Container beschädigen. Ich beabsichtige nicht, vor absichtlich böswilligen Schäden oder vor Ressourcenerschöpfung zu schützen (aber das wäre schön, wenn es „kostenlos“ wäre).
Noch wichtiger ist, dass diese Änderung für sie transparent ist: Sie sollten alle per SSH auf den Server zugreifen und sofort mit ihrem eigenen Container verbunden sein können und auch rsync usw. verwenden können. Ich sollte der Einzige sein, der die Container verstehen muss. Idealerweise könnten sie alle auch auf einen freigegebenen Ordner/Datenträger zugreifen (um große Datensätze, Modelle usw. zu speichern, die wir nicht duplizieren möchten). Genauer gesagt befinden wir uns auf einem Ubuntu 18.04-Server.
Zusammenfassend betreibe ich einen Linux-Server für mehrere Benutzer mit SSH-Zugriff. Meine Ziele sind, Benutzer in ihre eigenen Container/VMs zu unterteilen, um sie vor unbeabsichtigten Schäden zu schützen, ohne großen Aufwand und ohne dass diese Benutzer ihren Workflow ändern müssen. Wie würde man das erreichen?