#!/bin/sh usage() { echo echo 'This script setups chroot environment for BIND' echo 'Usage: setup-named-chroot.sh ROOTDIR' } if ! [ "$#" -eq 1 ]; then echo 'Wrong number of arguments' usage exit 1 fi ROOTDIR="$1" if ! [ -d "$ROOTDIR" ]; then echo "Root directory $ROOTDIR doesn't exist" usage exit 1 fi [ -e $ROOTDIR/dev/null ] || mknod -m 0666 $ROOTDIR//dev/null c 1 3 [ -e $ROOTDIR/dev/random ] || mknod -m 0666 $ROOTDIR//dev/random c 1 8 [ -e $ROOTDIR/dev/urandom ] || mknod -m 0666 $ROOTDIR/dev/urandom c 1 9 # better always copy localtime so it respects the system's timezone install -m 0644 -o root -g root /etc/localtime $ROOTDIR/etc/ case $(arch) in x86_64) libdir=/usr/lib64 ;; i686) libdir=/usr/lib ;; esac version=$(rpm -q --queryformat='%{VERSION}\n' openssl) mkdir -p $ROOTDIR$libdir cp -r $libdir/openssl-$version $ROOTDIR$libdir [ -d $ROOTDIR/proc ] || mkdir -p $ROOTDIR/proc if ! egrep -q '^/proc[[:space:]]+$ROOTDIR/proc' /proc/mounts; then mount --bind /proc $ROOTDIR/proc -o ro >/dev/null 2>&1 fi