Внимание! Данные страницы описывают cbsd версии 10.0.3. Если вы используете более раннюю версию, рекомендуется сначала обновиться.
Другие методы создание jail
Команда jcreate, часть 2
% cbsd jconstruct
% cbsd jcreate jconf=/path/to/conf.jconf
Если DIALOG-based скрипт jconstruct-tui по каким-то причинам не подошел, для конфигурации новой клетки можно воспользоваться скриптом-диалогом вида "вопрос-ответ" jconstruct:
% cbsd jconstruct
Который задает те же вопросы, что и tui-версия.
Также, можно обойтись формированием конфигураций без вспомогательных интерактивных утилит, например для создания систем, автоматически создающих необходимые клетки.
Пример стандартной конфигурации для jcreate может выглядеть так:
jname="jail1";
path="/usr/jails/jails/jail1";
host_hostname="jail1.my.domain";
ip4_addr="10.0.0.24/24";
mount_devfs="1";
allow_mount="1";
allow_devfs="0";
allow_nullfs="0";
mount_fstab="/usr/jails/jails-fstab/fstab.jail1";
arch="amd64";
mkhostsfile="1";
devfs_ruleset="4";
ver="10.0";
basename="";
slavenode="0";
baserw="0";
basename="";
mount_src="0";
mount_obj="";
mount_kernel="0";
mount_ports="1";
astart="1";
data="/usr/jails/jails-data/jail1-data";
vnet="0";
applytpl="1";
mdsize="0";
rcconf="/usr/jails/jails-rcconf/rc.conf_jail1";
floatresolv="1";
exec_start="/bin/sh /etc/rc";
exec_stop="/bin/sh /etc/rc.shutdown";
exec_poststart="0";
exec_poststop="0";
exec_prestart="0";
exec_prestop="0";
exec_master_poststart="0";
exec_master_poststop="0";
exec_master_prestart="0";
exec_master_prestop="0";
interface="auto";
jailskeldir="${sharedir}/jail-skel"
Если вы хотите, чтобы при создании клетки также устанавливался какие-то пакеты из pkg репозитория, в этой конфигурации должен присутствовать параметр pkglist указывающий на файл со списком пакетов, например:
pkglist="/tmp/newjail.txt";
Файл /tmp/newjail.txt может выглядеть так:
mc
lynx
nginx-devel
lsof
cbsd jcreate удаляет файл, указанный в pkglist после создания клетки
Внимание!
При создании новой клетки или получения ее из репозитория, возьмите за правило ВСЕГДА перебивать пароль пользователя root в клетке, даже если не планируете запускать в ней ssh/ftp/rsh и тому подобные сервисы.
Если клетка создается с applytpl=0, то по-умолчанию файлы /etc/{passwd,master.passwd,group} в клетке соответствуют оригинальным "чистым" файлам FreeBSD, те, пароль root пуст. При applytpl=1 а также при построении клеток для репозитория используется темплейт из $workdir/share/jail-skel, в котором хеш рута соответствует паролю CBSD в инсталляции CBSD по-умолчанию. Вы можете изменить стандартный пароль рута для создаваемых новых клеток, изменив хэш в skel-файле master.passwd через команду:
% vipw -d ${workdir}/share/jail-skel/etc
либо, указывать альтернативный путь в jail-skel каталогу в .jconf (утилита jcreate) конфиге.
По-умолчанию, каталог указанный в jailskeldir будет использован как источник файлов, которые будут добавлены (или ими будут перезаписаны стандартные файлы) в клетку автоматически, при applytpl=1.
Соответственно, вы можете создавать любые шаблоны конфигураций и содержимое окружений, которые будут копироваться при создании новой клетки.