유닉스 운영 체제에서 chroot는 현재 실행 중인 프로세스와 차일드 프로세스 그룹에서 루트 디렉터리를 변경하는 작업이다.

이렇게 수정된 환경에서 실행되는 프로그램은 지정된 디렉터리 트리 밖의 파일들의 이름을 지정할 수 없으므로(즉, 일반적으로는 접근이 불가능하므로) chroot 감옥으로 부른다. chroot는 chroot(2) 시스템 호출이나 chroot(8) 래퍼 프로그램을 가리킬 수 있다.

역사 편집

chroot 시스템 호출은 1979년 버전 7 유닉스의 개발 중에 도입되었으며, 1982년 3월 18일 빌 조이가 BSD에 추가하였다.

이용 목적 편집

chroot는 다음의 목적에 유용하게 쓰일 수 있다:

  • 테스트 및 개발
  • 의존성 제어
  • 호환성
  • 복구
  • 권한 분리

리눅스 호스트 커널 가상 파일 시스템 및 구성 파일 편집

리눅스에서 chroot 환경을 사용하려면 커널 가상 파일 시스템과 구성 파일 또한 host에서 chroot로 마운트/복사되어야 한다.

# Mount Kernel Virtual File Systems
TARGETDIR="/mnt/chroot"
mount -t proc proc $TARGETDIR/proc
mount -t sysfs sysfs $TARGETDIR/sys
mount -t devtmpfs devtmpfs $TARGETDIR/dev
mount -t tmpfs tmpfs $TARGETDIR/dev/shm
mount -t devpts devpts $TARGETDIR/dev/pts

# Copy /etc/hosts
/bin/cp -f /etc/hosts $TARGETDIR/etc/

# Copy /etc/resolv.conf
/bin/cp -f /etc/resolv.conf $TARGETDIR/etc/resolv.conf

# Link /etc/mtab
chroot $TARGETDIR rm /etc/mtab 2> /dev/null
chroot $TARGETDIR ln -s /proc/mounts /etc/mtab

chroot 상의 그래픽 응용 프로그램 편집

다음의 방식을 이용하여 chroot로 된 환경에서 그래픽 응용 프로그램을 구동할 수 있다.[1][2]

  • xhost
  • Xnest 또는 더 현대적인 Xephyr
  • X11 포워드 (ssh-X) 기능을 이용하여 chroot SSH 접근
  • xchroot
  • X11 VNC 서버 및 환경 외 VNC 클라이언트 접속

같이 보기 편집

각주 편집

  1. “보관된 사본”. 2014년 3월 26일에 원본 문서에서 보존된 문서. 2016년 2월 28일에 확인함. 
  2. “보관된 사본”. 2011년 8월 31일에 원본 문서에서 보존된 문서. 2011년 10월 13일에 확인함. 

외부 링크 편집