Wenn Sie nicht in einer chroot sind, werden die Inode für/immer 2. Sie überprüfen können, dass die Verwendung
stat -c %i/
oder
ls -id/
Interresting, aber wir versuchen Weg zu finden Chroot-Verzeichnis. Fragen zu stat
auf dem Gerät/befindet:
stat -c %04D/
Erstes Byte großen Geräte ist und damit Byte ist gering. Beispiel: 0802 bedeutet Major 8, Minor 1. Wenn Sie/dev einchecken, sehen Sie, dass dieses Gerät/dev/sda2 ist. Wenn Sie root sind, können Sie direkt correspondong Gerät in Ihrer chroot erstellen:
mknode /tmp/root_dev b 8 1
Nun lassen Sie uns Inode in unseren chroot gefunden. debugfs erlaubt den Inhalt von Dateien mit Inode-Nummern zu listen. Für exemple, kehrten ls -id /
923.960:
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
Interessante Informationen inode von ..
Eintrag: 915821. ich seinen Inhalt fragen:
sudo debugfs /tmp/root_dev -R 'ls <915821>'
915821 (12) . 2 (12) .. 923960 (20) debian-jail
923961 (4052) other-jail
Verzeichnis namens debian-jail
hat Inode 923960. So letzten Bestandteil meiner chroot dir ist debian-jail
. Lassen Sie sich übergeordnetes Verzeichnis (Inode 2) sieht jetzt:
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
Verzeichnis namens opt
hat Inode 915.821 und Inode 2 Wurzel-Dateisystem. Also mein Chroot-Verzeichnis ist /opt/debian-jail
. Sicher, /dev/sda1
kann auf einem anderen Dateisystem gemountet sein. Sie müssen dies überprüfen (verwenden Sie lsof oder wählen Sie direkt Informationen /proc
).
Siehe auch [Wie kann ich feststellen, dass ich in einer Chroot-Umgebung arbeite?] (Http://unix.stackexchange.com/questions/14345/how-do-i-tell-im-running-in-a- chroot/24248 # 24248) – Gilles
Nicht vollständig portierbar (und funktioniert nur als suid), aber Debian-basierte Systeme haben 'ischroot' standardmäßig installiert. Siehe: https://manpages.debian.org/jessie/debianutils/ischroot.1.en.html –