Предлагаю в этой теме выкладывать различные методы/способы определения нахождения в chroot'е. Следующие папки пусты или вовсе отсутствуют: /proc /dev /sys В файле /etc/shadow нету хешей (не 100% chroot, но в 90% означает его наличие (например при создании окружения для chroot'a с помощью debootstrap)) /proc смонтирована и можем просматривать список процессов. Необходимо проверить наличие исполняемых файлов запущенных процессов, для этого, у каждого процесса читаем линк "stat /proc/[PID]/exe" и проверяем доступность файла на диске(ls -l "/path/name"), если его нет, то мы в chroot'е, а этот процесс скорее всего нет (исключением является процесс, файл которого после запуска был разлинкован (удален) )... mount работает, но отображает только одну запись смонтированного корня "/" или вообще ни чего не выводит... Так же если отсутствует запись о смонтированной sysfs/procfs/devpts/devtmpfs то с большой долей вероятности можем сказать, что мы под колпаком chroot'a Дополняем способами, методами определения, ведь chroot такая гадость, которая будет сворачивать кровь даже после повышения прав.
KIR@PRO Code: stat -c %i / Если не 1, 2, 3, 128 - то chroot Вроде же с рутом нет особых проблем. Не помню случаев, когда chroot('..') не помогал
К слову говоря, жду не дождусь узнать содержимое доклада http://www.phdays.ru/program/40649/ "chroot .." - не поможет (даже от root) p.s. как вариант можно конечно написать модуль ядра, скомпилить его и загрузить, чтоб он для родительского процесса (bash/sh/etc..) изменил корень, на идентичный процессу [init]... но это естественно от рута или sudo пользователя