그래서 저는 연구실에서 연구원들을 위해 다수의 GPU 서버를 유지 관리하는 일을 맡은 연구원입니다. 나는 꽤 많은 Linux 경험을 가지고 있지만 일부 사용자는 이전에 Linux를 사용해 본 적이 없습니다.
다른 연구원들과 저는 루트 액세스 권한을 가지고 있습니다. 불행히도 요구 사항/종속성 등을 설정하는 동안 프로젝트의 경우 의도치 않게 서버를 손상시키거나 잘못 구성할 수 있으며 때로는 해결 방법을 알 수 없는 경우도 있습니다.
따라서 의도하지 않은 손상을 제한하기 위해 chroot, LXC 또는 기타 낮은 오버헤드 가상화를 사용하고 싶습니다. 예를 들어 실수로 실행한 사용자는 sudo rm -rf --no-preserve-root /
자신의 컨테이너만 손상시켜야 합니다. 의도적인 악의적인 손상이나 리소스 고갈로부터 보호할 의도는 없습니다(그러나 "무료"로 제공된다면 좋을 것입니다.)
더 중요한 것은 이 변경 사항이 그들에게 투명하기를 원한다는 것입니다. 그들은 모두 SSH를 통해 서버에 접속할 수 있고 즉시 자신의 컨테이너에 연결할 수 있어야 하며 rsync 등을 사용할 수 있어야 합니다. 컨테이너를 이해하는 것입니다. 이상적으로는 모두 공유 폴더/디스크(복제하지 않으려는 대규모 데이터 세트, 모델 등을 저장하기 위해)에 액세스할 수도 있습니다. 구체적으로 말하면 우리는 Ubuntu 18.04 서버를 사용하고 있습니다.
요약하면 SSH 액세스 권한이 있는 여러 사용자를 위해 Linux 서버를 실행합니다. 내 목표는 사용자를 자체 컨테이너/VM으로 분류하여 큰 오버헤드 없이 사용자가 워크플로를 변경할 필요 없이 의도하지 않은 손상으로부터 보호하는 것입니다. 이것을 어떻게 달성할 수 있을까요?