From: Vadim Pavlov <pvm_job(at)mail.ru>
Newsgroups: email
Date: Mon, 1 Dec 2004 14:31:37 +0000 (UTC)
Subject: Помещаем ircd hybrid7 в chroot
Помещаем ircd hybrid7 в chroot. Быстрый способ.
Тестировалось под ALM 2.4 (Linux), но думаю проблем под фрёй не будет.
Создаем окружение
mkdir /chroot/ircd
mkdir /chroot/ircd/bin
# Думаю можно и без шела без проблем обойтись, но для удобства отладки лучше всёж иметь
cp /bin/bash /chroot/ircd/bin
mkdir /chroot/ircd/dev
#Насколько необходим random - науке это не известно, urandom точно нужен
#Без него не работает шифрование
mknod /chroot/ircd/dev/null c 1 3
mknod /chroot/ircd/dev/random c 1 8
mknod /chroot/ircd/dev/urandom c 1 9
chmod 666 /chroot/ircd/dev/null
chmod 644 /chroot/ircd/dev/random
chmod 644 /chroot/ircd/dev/urandom
mkdir /chroot/ircd/etc
#насколько необходимы следующие файлы науке не известно, лежат на всякий случай
#в group и password соотвественно оставлено только запись о ircd
cp /etc/group /chroot/ircd/etc
cp /etc/password /chroot/ircd/etc
cp /etc/nsswitch.conf /chroot/ircd/etc
mkdir /chroot/ircd/home
cp -R /home/ircd/* /chroot/ircd/home
#Удостоверимся, что внутренности /chroot/ircd/home/ircd принадлежат ircd
#Ставим суидный бит на ircd, иначе он у нас просто не запустится из под рута ;)
mkdir /chroot/ircd/lib
#Чтобы знать чем конкретно заполнять lib натравливаем ldd на ircd
#Вот в качестве примера что необходимо у меня в системе
#[root@content bin]# ldd ircd
# libdl.so.2 => /lib/libdl.so.2 (0x00119000)
# libz.so.1 => /lib/libz.so.1 (0x0011d000)
# libcrypt.so.1 => /lib/libcrypt.so.1 (0x0012f000)
# libcrypto.so.4 => /lib/libcrypto.so.4 (0x00162000)
# libc.so.6 => /lib/libc.so.6 (0x0025c000)
# /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x80000000)