Копирование файлов сервера
Сформировав поддерево chroot, надо скопировать в содержащиеся в нем каталоги требуемые файлы. Набор необходимых файлов зависит от особенностей сервера. Если
сервер самостоятельно вызывает функцию chroot вам нет необходимости размещать в пределах поддерева chroot исполняемые файлы сервера. Вы можете запустить сервер за пределами поддерева chroot, указав ему расположение поддерева. После вызова chroot {) сфера действий сервера будет ограничена сформированным вами поддеревом. Поскольку сервер, самостоятельно вызывающий chroot (), может читать конфигурационные файлы, размещенные за пределами поддерева, число файлов, которые необходимо поместить в каталоги поддерева chroot, сводится к минимуму. Вам придется скопировать лишь те файлы, которые требуются серверу для работы после вызова chroot ().
Примером сервера, функционирующего подобным образом, является анонимный сервер
FTP. (Подробно вопросы работа сервера FTP рассматривалась в главе 21.)
Если сервер не вызывает самостоятельно функцию chroot его следует запускать посредством утилиты chroot. При этом в каталоги поддерева chroot необходимо скопировать исполняемые и конфигурационные файлы сервера, а также все файлы, необходимые серверу в процессе работы. Кроме того, иногда приходится помещать в каталоги
поддерева chroot некоторые системные файлы. Определить набор файлов, необходимых
серверу, достаточно сложно. Для того чтобы выяснить, какие файлы требуются в процессе работы, надо прочитать документацию, а если нужные сведения там отсутствуют, вам придется проанализировать содержимое дистрибутивного пакета. Для получения информации о файлах, содержащихся в пакете, можно использовать инструменты tar, или dpkg. Очевидно, что копировать в каталоги поддерева chroot надо не все файлы; например, для работы сервера не нужна документация. Чтобы выяснить, какие файлы необходимы серверу, можно использовать программу strace. Вызвав команду strace
вы получите сведения о файлах, используемых в процессе работы сервера, в том числе имена файлов, которые сервер открывает самостоятельно.
Вместо копирования файлы можно переместить в каталоги поддерева chroot. При этом вы будете иметь гарантию того, что после запуска сервер будет выполняться в пределах поддерева.