당신이 chroot에서하지 않은 경우, /의 아이 노드는 항상 당신은
stat -c %i/
또는
ls -id/
인터 휴식,하지만를 사용하는의는의 경로를 찾을 수 해보자 확인 할 수 있습니다 2. 것 chroot 디렉토리. 어떤 장치에/위치
stat
에 질문
stat -c %04D/
첫 번째 바이트 장치의 주요이며, 바이트가 미성년자 않도록. 예를 들어 0802는 major 8, minor 1을 의미합니다./dev를 체크인하면이 장치가/dev/sda2라는 것을 알 수 있습니다. 루트 사용자 인 경우 chroot에 직접 해당 장치를 만들 수 있습니다.
mknode /tmp/root_dev b 8 1
이제 chroot와 관련된 inode를 찾으십시오. debugfs는 inode 번호를 사용하여 파일 내용을 나열합니다. 나는 그것의 내용을 요청할 수 있습니다 915821. :
sudo debugfs /tmp/root_dev -R 'ls <923960>'
923960 (12) . 915821 (32) .. 5636100 (12) var
5636319 (12) lib 5636322 (12) usr 5636345 (12) tmp
5636346 (12) sys 5636347 (12) sbin 5636348 (12) run
5636349 (12) root 5636350 (12) proc 5636351 (12) mnt
5636352 (12) home 5636353 (12) dev 5636354 (12) boot
5636355 (12) bin 5636356 (12) etc 5638152 (16) selinux
5769366 (12) srv 5769367 (12) opt 5769375 (3832) media
재미있는 정보가 ..
항목의 아이 노드입니다 : exemple를 들어, ls -id /
는 923960를 반환
sudo debugfs /tmp/root_dev -R 'ls <915821>'
915821 (12) . 2 (12) .. 923960 (20) debian-jail
923961 (4052) other-jail
디렉토리라고 debian-jail
내 chroot 환경의 아이 노드 923960. 그래서 마지막 구성 요소가 dir은 debian-jail
입니다. 의 지금은 상위 디렉토리 (아이 노드 2)를 보자 :
sudo debugfs /tmp/root_dev -R 'ls <2>'
2 (12) . 2 (12) .. 11 (20) lost+found 1046529 (12) home
130817 (12) etc 784897 (16) media 3603 (20) initrd.img
261633 (12) var 654081 (12) usr 392449 (12) sys 392450 (12) lib
784898 (12) root 915715 (12) sbin 1046530 (12) tmp
1046531 (12) bin 784899 (12) dev 392451 (12) mnt
915716 (12) run 12 (12) proc 1046532 (12) boot 13 (16) lib64
784945 (12) srv 915821 (12) opt 3604 (3796) vmlinuz
opt
라는 디렉토리는 아이 노드 915,821을 가지고 있으며, 아이 노드 (2) 파일 시스템의 루트입니다. 그래서 내 chroot 디렉토리는 /opt/debian-jail
입니다. 물론 /dev/sda1
은 다른 파일 시스템에 마운트 될 수 있습니다. 이를 확인하려면 lsof를 사용하거나 직접 정보를 선택하십시오 (/proc
).
참고 [어떻게하면 chroot에서 작동하는지 알 수 있습니까?] (http://unix.stackexchange.com/questions/14345/how-do-i-tell-im-running-in-a- chroot/24248 # 24248) – Gilles
완전히 이식 가능하지 않으며 (suid로만 작동 함) 데비안 기반 시스템에는 기본적으로'ischroot'가 설치되어 있습니다. 참조 : https://manpages.debian.org/jessie/debianutils/ischroot.1.en.html –