Создание chroot-окружения


chroot — операция изменения корневого каталога в Unix-подобных операционных системах. Программа, запущенная с изменённым корневым каталогом, будет иметь доступ только к файлам, содержащимся в данном каталоге (см. wikipedia).

Все действия ниже выполняются от root!

Создание chroot-окружения (на хост-машине)

Устанавливаем утилиту debootstrap, создаем каталог /web/chroot и устанавливаем в него debian wheezy:

$ apt-get install debootstrap 
$ mkdir /web/chroot
$ debootstrap wheezy /web/chroot hstrongp://hstrongp.debian.net/debian/

Копируем системные файлы:

$ cp /etc/resolv.conf /web/chroot/etc/resolv.conf
$ cp /etc/apt/sources.list /web/chroot/etc/apt/sources.list

Для обеспечения доступа к другим каталогам, устройствам или файловым системам (например, /proc), примонтируем их. Для этого прописываем в /etc/fstab:

# /etc/fstab

/proc    /web/chroot/proc    none    rbind 0 0 
/dev     /web/chroot/dev     none    rbind 0 0 
/sys     /web/chroot/sys     none    rbind 0 0

Применяем изменения:

$ mount -a

Настройка системы внутри chroot

Входим в chroot-окружение, устанавливаем локаль «ru_RU.UTF-8» и др. программы:

$ chroot /web/chroot/
$ apt-get update
$ apt-get install locales vim sudo ssh bash-completion console-cyrillic
$ dpkg-reconfigure locales

Создаем пользователя user:

$ adduser user 
$ chmod 0700 /home/user

Для работы в chroot-окружении и доступа по ssh, настраиваем /web/chroot/etc/sudoers и изменяем номер порта в /web/chroot/etc/ssh/sshd_config.

Заходим по команде:

$ ssh user@mysite.org -port

Монтирование каталога в chroot-окружение

В debian wheezy создаем каталог для монтирования; выходим из chroot:

$ mkdir /home/new_user
$ exit

На хост-машине монтируем домашний каталог user (работает до перезагрузки):

$ mount --bind /home/user/ /web/chroot/home/new_user

альтернативный вариант монтирования - прописать в /etc/fstab:

# /etc/fstab

/home/user    /web/chroot/home/new_user    none    bind 0 0

и выполнить:

$ mount -a