콘텐츠로 이동

사용자 및 할당량

import { Steps } from ‘@astrojs/starlight/components’;

LabPod는 사용자마다 두 가지를 관리합니다: LabPod 계정 (로그인 자격 증명 및 할당량)과 호스트의 Linux 계정 (컨테이너가 실행되는 곳). 이 둘은 서로 연관되어 있지만 별개입니다.

/admin/users새 사용자를 여세요. 사용자명과 초기 비밀번호를 입력합니다. Linux 계정이 아직 없으면 LabPod가 자동으로 프로비저닝합니다.

관리자 Users 페이지: 왼쪽에 사용자 목록, 오른쪽에 새 사용자 양식

Terminal window
# 대화형 비밀번호 프롬프트
sudo labpod admin --db /var/lib/labpod/labpod.db create-user alice
# 또는 비밀번호를 파이프로 전달 (자동화용)
printf '%s\n' 'initial-password' | sudo labpod admin --db /var/lib/labpod/labpod.db create-user alice
Terminal window
# Run these as root
# 대화형 비밀번호 프롬프트
labpod admin --db /var/lib/labpod/labpod.db create-user alice
# 또는 비밀번호를 파이프로 전달 (자동화용)
printf '%s\n' 'initial-password' | labpod admin --db /var/lib/labpod/labpod.db create-user alice

LabPod가 새 Linux 계정을 생성할 때 다음을 실행합니다:

  1. useradd -m -s /bin/bash <username>: 계정과 홈 디렉토리를 생성합니다.
  2. chpasswd: 초기 Linux 비밀번호를 설정합니다 (생성 시 LabPod 비밀번호와 동일).
  3. loginctl enable-linger <username>: 브라우저 연결이 끊겨도 루트리스 컨테이너가 유지되도록 로그아웃 후에도 사용자의 systemd 슬라이스를 실행 상태로 유지합니다.
  4. 설정된 계정 홈과 work 기준 경로 아래에 워크스페이스 전용 홈과 work 디렉터리를 만듭니다. 기본값에서는 /home/<username>/workspaces//home/<username>/work/입니다.
  5. /shared 루트가 있으면 /shared/<username>/ (모든 사용자가 읽을 수 있음)을 생성합니다.

해당 사용자명의 Linux 계정이 이미 있으면 그 홈이 LABPOD_FILEOP_HOME_BASE 아래에 있을 때만 LabPod가 인수합니다. 이 경우 linger를 활성화하고 필요한 워크스페이스 디렉터리를 만들지만, 기존 Linux 비밀번호는 절대 수정하지 않습니다. 다른 위치에 홈이 있는 계정은 예기치 않게 수정하지 않고 이유를 설명하며 거부합니다.

LabPod 비밀번호 vs. Linux 비밀번호

섹션 제목: “LabPod 비밀번호 vs. Linux 비밀번호”

계정 생성 후 이 두 가지는 완전히 독립적인 자격 증명입니다:

항목위치변경 가능한 사람
LabPod 비밀번호LabPod 데이터베이스사용자 (설정 페이지), 관리자 (set-password)
Linux 비밀번호호스트 /etc/shadowLabPod 외부에서 호스트 관리자만 가능

UI나 set-password로 LabPod 비밀번호를 변경해도 Linux 비밀번호는 절대 수정되지 않습니다. Linux 비밀번호는 초기 create-user 호출 시 한 번만 설정되며, 그 이후로는 LabPod의 관리 범위 밖입니다.

Terminal window
sudo labpod admin --db /var/lib/labpod/labpod.db set-password alice
# 또는 파이프 사용:
printf '%s\n' 'new-password' | sudo labpod admin --db /var/lib/labpod/labpod.db set-password alice
Terminal window
# Run these as root
labpod admin --db /var/lib/labpod/labpod.db set-password alice
# 또는 파이프 사용:
printf '%s\n' 'new-password' | labpod admin --db /var/lib/labpod/labpod.db set-password alice
Terminal window
sudo labpod admin --db /var/lib/labpod/labpod.db list-users
Terminal window
# Run these as root
labpod admin --db /var/lib/labpod/labpod.db list-users
역할식별 방법수행 가능한 작업
Root 관리자사용자명이 root모든 것: 사용자 CRUD, 템플릿, 정책, 이미지, 감사 로그, 모든 워크스페이스 강제 중지
슈퍼유저슈퍼유저 플래그 설정됨모든 워크스페이스 및 리소스 사용량 조회; 변경 불가
일반 사용자기본값본인의 워크스페이스, 템플릿, 파일만 관리

관리자가 할 수 있는 것:

  • 모든 워크스페이스 조회 및 모니터링.
  • 모든 워크스페이스 강제 중지 (감사 로그에 기록됨).

관리자가 할 수 없는 것 (OS 수준 접근 없이):

  • 다른 사용자의 터미널 세션에 진입.
  • 다른 사용자의 워크스페이스에서 앱 시작, 편집, 또는 실행.
  • 다른 사용자의 워크스페이스 삭제.
  • LabPod 파일 관리자로 다른 사용자의 파일 조회.

할당량은 /admin/policies에서 사용자별로 설정합니다:

관리자 Policies 페이지: 현재 사용량이 표시된 사용자별 CPU, 메모리, GPU, 디스크 알림 필드

할당량제한 내용
최대 CPU실행 중인 모든 워크스페이스의 총 코어 수
최대 메모리실행 중인 모든 워크스페이스의 총 RAM (GB)
최대 GPU 분율실행 중인 워크스페이스의 총 GPU 할당량 (1.0 = 전체 GPU 하나)
최대 워크스페이스 수동시에 실행 가능한 워크스페이스 수
디스크 알림사용자 계정 홈과 이전된 work 영역의 권고 GB 임계값

호스트에서 유효할 때 CPU, 메모리, GPU, 워크스페이스 수 할당량은 워크스페이스 시작 시 적용됩니다. 디스크 사용량은 측정해 알림을 표시할 수 있지만 쓰기나 워크스페이스 시작을 차단하지 않습니다. 관리자가 할당량을 낮춰도 이미 실행 중인 워크스페이스는 중지되지 않습니다.

관리자 UI에서: LabPod 데이터베이스 레코드를 제거하고 모든 세션을 취소합니다. Linux 계정과 홈 디렉토리는 보존됩니다. LabPod는 절대 userdel을 호출하지 않습니다. 디스크 공간을 확보하려면 호스트 관리자로서 수동으로 처리하세요.

나중에 동일한 사용자명을 다시 추가하면 기존 Linux 계정을 인수합니다.