geeksforgeek chroot 실습을 따라한다

jinwook han·2020년 8월 31일
0

https://www.geeksforgeeks.org/linux-virtualization-using-chroot-jail/

geeksforgeek 사이트의 chroot 실습을 따라한다.

어떤 파일에 chroot 명령어를 사용한다.
그러면 그 파일이 부모가 없는 root인 것처럼 보인다.
실제로 root이 된 게 아니다.
root이 된 것 같은 가상의 환경을 만드는 것이다.

chroot 실습 환경 만듬

1. jailed 파일을 만든다

jailed 파일을 만든다.

2. bash 실행에 필요한 파일들을 jailed 속에 넣는다.

먼저 bash 실행에 필요한 파일이 무엇인지 확인한다.

# mac에서 의존성 확인을 위해 otool 명령어를 사용할 수 있다.
otool $(which bash)

결과:

위 두 파일만 복사하여(경로까지 같이 복사), jailed 파일에 붙여넣었다.
하지만 에러가 났다.
killed: 9 , dyld: Library not loaded 등등...의 에러가 났다.

위 두 파일이 의존하고 있는 수많은 파일들을 복사하지 않았기 때문에, 에러가 나타났다.

일일히 의존 파일들을 찾기 힘들어서, usr/lib 속에 있는 모든 파일을 jailed에 복사했다.

3. bash, ls 실행 파일을 jailed 속에 넣는다.

mkdir jailed/bin
cp -p $(which ls) jailed/bin
cp -p $(which bash) jailed/bin

chroot 실습

명령어를 친다.

sudo chroot jailed bin/bash

실행 결과:

cd .. 를 사용해서 jailed 파일의 상위 파일로 접근할 수 없다.
또한 jailed 파일 안에 있는 실행파일만(bash, ls) 사용할 수 있다.
사용자도 root로 바뀐다.

ls를 친다.


ls 실행파일이 jail 파일 안에 있기 때문에, ls 명령어를 실행할 수 있다.

exit

exit 명령어를 치면, home directory로 돌아온다.
chroot가 만든 접근 제한들이 풀린다.

참고자료

https://stackoverflow.com/questions/19262649/osx-and-chroot-unable-to-find-bin-bash

https://unix.stackexchange.com/questions/128046/chroot-failed-to-run-command-bin-bash-no-such-file-or-directory

0개의 댓글