10. (실습) namespace - Mount 네임스페이스
Mount 네임스페이스 실습
새로운 Mount 네임스페이스로 마운트한 위치에 파일 생성하자
1. sudo su 명령어로 루트 계정으로 전환한다.
2. 우분투에서는 unshare 명령어를 통해 네임스페이스를 구성할 수 있다.
unshare --help 명령어를 이용하여 unshare 명령어의 옵션에 대해 알아보자
3. echo $$ 명령어로 현재 프로세스 ID를 확인하고, 우리는 새로운 mount 네임스페이스를 생성할 것이므로
unshare -m /bin/bash 명령어를 입력한다.
4. 다시 echo $$ 명령어로 현재 프로세스 ID를 확인해보면 새로운 프로세스가 생성돼서 새로운 프로세스 ID가 나온다.
5. mount -t tmpfs tmpfs /mnt 명령어로 임시 파일 스토리지 파일시스템인 tmpfs를 mnt 디렉토리에 마운트한다.
그 후 cd /mnt 명령어로 디렉토리 안으로 들어간다.
6. echo "Hello" > /mnt/hello.txt 명령어로 마운트된 위치에 파일을 생성한다.
7. 새로운 터미널 창을 열어서 ls -l /mnt 명령어를 입력하면 해당파일이 존재하지 않는다고 나온다.
이를 통해 다른 네임스페이스에 있다는 걸 알 수 있다.
8. nsenter 명령어는 지정한 프로세스의 네임스페이스에 enter 한다.
이를 이용해서 새 터미널 창에서 sudo su 명령어로 루트 계정으로 접속 후 nsenter -t $TARGET_PID -a 명령어로 텍스트를 작성한 네임스페이스에 접속한다.
$TARGET_PID 은 타켓의 프로세스 ID 값이고 -a 옵션은 모든 네임스페이스를 프로세스가 공유하는 형태이다.
9. 이제 같은 네임스페이스에 있으므로 생성한 텍스트 파일을 볼 수 있다.
10. exit 명령어로 mount namespace를 종료한다.
그 후 echo $$ 명령어로 프로세스 ID를 확인하면 처음에 확인했던 프로세스 ID가 나오는걸 볼 수 있다.