All pastes #911784 Raw Edit

makejail.sh

public text v1 · immutable
·published 2008-02-20 22:34 UTC
rendered paste body
#!/bin/sh
# usr/share/examples/etc/make.conf
  
JAILNAME="bind.loxley.se"
JAILIP="192.168.0.10"
JAILDIR=/home/jail/$JAILNAME
JAILSSH="no"

if [ -d $JAILDIR ]; then
        echo "$JAILDIR exists! Exiting."
        exit 1
fi

# Move in jail make template
mv /etc/make.conf /etc/make.conf.bak
mv /etc/make.conf.jail /etc/make.conf

# Let's first make some directories
mkdir -p $JAILDIR/dev
mkdir -p $JAILDIR/etc
mkdir -p $JAILDIR/usr/tmp
mkdir -p $JAILDIR/usr/ports
chmod 777 $JAILDIR/usr/tmp

cd /usr/src/

# You can replace the below with make installworld if you've built your
# world previously
make installworld DESTDIR=$JAILDIR
cd /usr/src/etc

make distribution DESTDIR=$JAILDIR NO_OPENSSH=YES NO_OPENSSL=YES
cd $JAILDIR

# At this point we'll mount devfs, and then hide the unneeded devs
mount_devfs devfs $JAILDIR/dev
#devfs -m $JAILDIR/dev rule -s 4 applyset

# We wanna install something also so mount src and ports
mount_nullfs /usr/ports $JAILDIR/usr/ports
mount_nullfs /usr/src $JAILDIR/usr/src

# Create a null kernel
ln -s dev/null kernel

# Quell warnings about fstab
touch $JAILDIR/etc/fstab

# Create resolv.conf
touch $JAILDIR/etc/resolv.conf
echo "search loxley.se" >> $JAILDIR/etc/resolv.conf
echo "nameserver 192.168.0.1" >> $JAILDIR/etc/resolv.conf

# Set up rc.conf in jail
touch $JAILDIR/etc/rc.conf
echo "hostname=\"$JAILNAME\"" >> $JAILDIR/etc/rc.conf
echo "ifconfig_em0=\"inet $JAILIP netmask 255.255.255.255\"" >> $JAILDIR/etc/rc.conf
echo "defaultrouter=\"192.168.0.1\"" >> $JAILDIR/etc/rc.conf
echo "clear_tmp_enable=\"YES\"" >> $JAILDIR/etc/rc.conf
echo "syslogd_flags=\"-ss\"" >> $JAILDIR/etc/rc.conf
echo "rpcbind_enable=\"NO\"" >> $JAILDIR/etc/rc.conf

# Same as sysctl -w kern.securelevel=3
#kern_securelevel_enable="YES"
#kern_securelevel="3"

# CMOS clock is already managed by the host
cat $JAILDIR/etc/crontab | grep -v adjkerntz > $JAILDIR/etc/crontab.new
mv -f $JAILDIR/etc/crontab.new $JAILDIR/etc/crontab

# For fetch
#cp /usr/lib/libssl.so.4 $JAILDIR/usr/lib/
#cp /lib/libcrypto.so.4 $JAILDIR/lib/

# Needed libs for SSH
if [ $JAILSSH = "yes" ]; then
        cp /usr/lib/libgssapi.so.8 $JAILDIR/usr/lib/
        cp /usr/lib/libkrb5.so.8 $JAILDIR/usr/lib/
        cp /usr/lib/libasn1.so.8 $JAILDIR/usr/lib/
        cp /usr/lib/libroken.so.8 $JAILDIR/usr/lib/
fi

mv /etc/make.conf /etc/make.conf.jail
mv /etc/make.conf.bak /etc/make.conf