Прочитал интересную статью про взлом chroot'ов при помощи LKM и заинтересовался фичей переписывания системных вызовов. В моем случае - системных вызовов чтения/записи файлов и листинга каталогов.
Статья, которой начитался: https://www.thc.org/papers/LKM_HACKING.html#A-f
Сначала погуглил о том, не препятствуют ли ныне ядра сей фиче, и пришел к выводу, что только взломам с помощью подобных фич препятствуют, с использованием securelevel'ов - фич безопасности, которые в том числе запрещают грузить модули, переписывать неприкосновенные файлы и т.д.
Возникла идея написать забавы ради LKM-модуль, который бы грузился вне chroot'а, но при работе chroot менял бы привычное представление файловой системы внутри его. Например, объединял бы листинги нескольких папок с небольшим количеством файлов (созданных для эксперимента) в одну, а листинги папок с большим количеством файлов разбивал на несколько и перенаправлял вызовы чтения-записи на эти файлы так, чтобы соответствовали переделанным листингам. Обязательно только внутри chroot'а - по понятным причинам, система же должна функционировать при этом безобразии. А чтобы изнутри chroot'а невозможно было назабавить чего-нибудь лишнего и опасного, то в данном chroot должен обязательно повышаться securelevel.
Два вопроса:
1) как возможно (если возможно вообще) изнутри LKM-модуля при вызове файловых i/o определить, выполняется ли вызов изнутри chroot?
2) как возможно (если вообще возможно, а не обязательно затрагивает всю систему) выставлять securelevel только для chroot?
Обещаю, что опыт сей забавы, в случае если успешно удастся разобраться в этом, ранее или поздно будет мною использован для чего-нибудь стоящего ^_^