Chroot
유닉스 운영 체제에서 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 클라이언트 접속
같이 보기
- sudo
- 샌드박스 (컴퓨터 보안)
각주
외부 링크
chroot(2)
: 루트 디렉터리 변경 – FreeBSD System Calls 매뉴얼 페이지
chroot(8)
: 루트 디렉터리 변경 – FreeBSD System Manager's 매뉴얼 페이지
chroot(2)
: 루트 디렉터리 변경 – 리눅스 프로그래머의 매뉴얼 – System Calls
- (영어) Integrating GNU/Linux with Android using chroot
- v
- t
- e
유닉스 명령 줄 인터페이스 프로그램과 내부 명령어
- cat
- cd
- dd
- chmod
- chown
- chgrp
- cksum
- cmp
- cp
- du
- df
- fsck
- fuser
- ln
- ls
- lsof
- mkdir
- mount
- mv
- pwd
- rm
- rmdir
- split
- touch
- umask
- at
- chroot
- cron
- exit
- kill
- killall
- nice
- pgrep
- pidof
- pkill
- ps
- pstree
- sleep
- time
- top
- wait
- env
- finger
- id
- logname
- mesg
- passwd
- su
- sudo
- talk
- uptime
- w
- wall
- who
- whoami
- write
- apropos
- help
- man
- banner
- bc
- cal
- clear
- date
- dd
- file
- history
- info
- lp
- lpr
- od
- pax
- size
- tee
- tput
- type
- uname
- whatis
- yes
- true와 false