commit 25fb02d2b52625f00dc72d93d27c4650aebc9ae0 Author: Gregory Colpart Date: Sat Jun 19 23:14:21 2010 +0200 Now in Git! diff --git a/chroot-bind.sh b/chroot-bind.sh new file mode 100644 index 0000000..35d8170 --- /dev/null +++ b/chroot-bind.sh @@ -0,0 +1,63 @@ +#!/bin/sh + +# Gregory Colpart +# chroot (or re-chroot) script for bind9 + +# tested on Debian Sarge and Etch and Lenny +# Exec this script after `(apt-get|aptitude) install bind9` +# and after *each* bind9 upgrade + +# When the script is finished, ensure you have +# 'OPTIONS="-u bind -t /var/chroot-bind"' in /etc/default/bind9 +# and /etc/init.d/bind9 (re)start + +# essential dirs +mkdir -p /var/chroot-bind +mkdir -p /var/chroot-bind/bin /var/chroot-bind/dev /var/chroot-bind/etc \ + /var/chroot-bind/lib /var/chroot-bind/usr/lib \ + /var/chroot-bind/usr/sbin /var/chroot-bind/var/cache/bind \ + /var/chroot-bind/var/log /var/chroot-bind/var/run/bind/run/ + +# for conf +if [ ! -h "/etc/bind" ]; then + mv /etc/bind/ /var/chroot-bind/etc/ + ln -s /var/chroot-bind/etc/bind/ /etc/bind +fi + +# for logs +touch /var/chroot-bind/var/log/bind.log +if [ ! -h "/var/log/bind.log" ]; then + ln -s /var/chroot-bind/var/log/bind.log /var/log/bind.log +fi + +# for pid +mkdir -p /var/run/bind/run +chown -R root:bind /var/run/bind/ +chmod -R g+rwX /var/run/bind/ +if [ ! -h "/var/run/bind/run/named.pid" ]; then + ln -s /var/chroot-bind/var/run/bind/run/named.pid /var/run/bind/run/named.pid +fi + +if [ ! -e "/var/chroot-bind/dev/random" ]; then + mknod /var/chroot-bind/dev/random c 1 3 + chmod 666 /var/chroot-bind/dev/random +fi +# essential dev (hum, null is required ??) +#mknod /var/chroot-bind/dev/null c 1 3 +#chmod 666 /var/chroot-bind/dev/{null,random} + +# essential libs +for i in `ldd $(which named) | cut -d">" -f2 | cut -d"(" -f1`; do install \ + -D $i /var/chroot-bind/${i##/}; done + +# essential (hum, bash is required ??) +#cp /bin/bash /var/chroot-bind/bin/ +cp /usr/sbin/named /var/chroot-bind/usr/sbin/ + +# minimal passwd & group file (hum, is required ??) +#grep "bind\|root" /etc/passwd > /var/chroot-bind/etc/passwd +#grep "bind\|root" /etc/group > /var/chroot-bind/etc/group + +# just bind +chown -R bind.bind /var/chroot-bind/ +