1*41fbaed0Stron#!/bin/sh 2*41fbaed0Stron 3*41fbaed0Stron# Solaris 8 version by Matthew X. Economou. Caution: this copies 4*41fbaed0Stron# too many files. There is no need to copy libc.so and other files 5*41fbaed0Stron# that are already linked in before a Postfix daemon chroots itself. 6*41fbaed0Stron 7*41fbaed0StronCOMMAND_DIRECTORY="/usr/sbin" 8*41fbaed0StronDAEMON_DIRECTORY="/usr/libexec/postfix" 9*41fbaed0StronQUEUE_DIRECTORY="/var/spool/postfix" 10*41fbaed0Stron 11*41fbaed0Stron## Copy any shared libraries, device entries, or configuration files 12*41fbaed0Stron## needed by Postfix into the jail. 13*41fbaed0Stronbinlist=" 14*41fbaed0Stron$DAEMON_DIRECTORY/virtual 15*41fbaed0Stron$DAEMON_DIRECTORY/trivial-rewrite 16*41fbaed0Stron$DAEMON_DIRECTORY/spawn 17*41fbaed0Stron$DAEMON_DIRECTORY/smtpd 18*41fbaed0Stron$DAEMON_DIRECTORY/smtp 19*41fbaed0Stron$DAEMON_DIRECTORY/showq 20*41fbaed0Stron$DAEMON_DIRECTORY/qmqpd 21*41fbaed0Stron$DAEMON_DIRECTORY/qmgr 22*41fbaed0Stron$DAEMON_DIRECTORY/proxymap 23*41fbaed0Stron$DAEMON_DIRECTORY/pipe 24*41fbaed0Stron$DAEMON_DIRECTORY/pickup 25*41fbaed0Stron$DAEMON_DIRECTORY/nqmgr 26*41fbaed0Stron$DAEMON_DIRECTORY/master 27*41fbaed0Stron$DAEMON_DIRECTORY/local 28*41fbaed0Stron$DAEMON_DIRECTORY/lmtp 29*41fbaed0Stron$DAEMON_DIRECTORY/flush 30*41fbaed0Stron$DAEMON_DIRECTORY/error 31*41fbaed0Stron$DAEMON_DIRECTORY/cleanup 32*41fbaed0Stron$DAEMON_DIRECTORY/bounce 33*41fbaed0Stron/usr/lib/sendmail 34*41fbaed0Stron$COMMAND_DIRECTORY/postsuper 35*41fbaed0Stron$COMMAND_DIRECTORY/postqueue 36*41fbaed0Stron$COMMAND_DIRECTORY/postmap 37*41fbaed0Stron$COMMAND_DIRECTORY/postlog 38*41fbaed0Stron$COMMAND_DIRECTORY/postlock 39*41fbaed0Stron$COMMAND_DIRECTORY/postkick 40*41fbaed0Stron$COMMAND_DIRECTORY/postfix 41*41fbaed0Stron$COMMAND_DIRECTORY/postdrop 42*41fbaed0Stron$COMMAND_DIRECTORY/postconf 43*41fbaed0Stron$COMMAND_DIRECTORY/postcat 44*41fbaed0Stron$COMMAND_DIRECTORY/postalias 45*41fbaed0Stron" 46*41fbaed0Stronldd $binlist | awk '/[=]>/ { print $3 }' | sort -u | while read i 47*41fbaed0Strondo 48*41fbaed0Stron mkdir -p $QUEUE_DIRECTORY`dirname $i` 49*41fbaed0Stron ## Sun's version of tar sucks. We'll have to remove the leading 50*41fbaed0Stron ## slashes from file names ourself, otherwise the copy doesn't 51*41fbaed0Stron ## work. 52*41fbaed0Stron (cd / && tar cphf - `echo $i | sed -e 's/^\///'`) | (cd $QUEUE_DIRECTORY && tar xpf -) 53*41fbaed0Strondone 54*41fbaed0Stron 55*41fbaed0Stron## More stuff for the jail, mostly discovered by inspection 56*41fbaed0Stron## (e.g. strings, lsof). 57*41fbaed0Stronmore=" 58*41fbaed0Stron/dev/zero 59*41fbaed0Stron/dev/null 60*41fbaed0Stron/dev/udp6 61*41fbaed0Stron/dev/tcp6 62*41fbaed0Stron/dev/udp 63*41fbaed0Stron/dev/tcp 64*41fbaed0Stron/dev/poll 65*41fbaed0Stron/dev/rawip 66*41fbaed0Stron/dev/ticlts 67*41fbaed0Stron/dev/ticotsord 68*41fbaed0Stron/dev/ticots 69*41fbaed0Stron/devices/pseudo/mm@0:zero 70*41fbaed0Stron/devices/pseudo/mm@0:null 71*41fbaed0Stron/devices/pseudo/udp6@0:udp6 72*41fbaed0Stron/devices/pseudo/tcp6@0:tcp6 73*41fbaed0Stron/devices/pseudo/udp@0:udp 74*41fbaed0Stron/devices/pseudo/tcp@0:tcp 75*41fbaed0Stron/devices/pseudo/poll@0:poll 76*41fbaed0Stron/devices/pseudo/icmp@0:icmp 77*41fbaed0Stron/devices/pseudo/tl@0:ticlts 78*41fbaed0Stron/devices/pseudo/tl@0:ticotsord 79*41fbaed0Stron/devices/pseudo/tl@0:ticots 80*41fbaed0Stron/etc/nsswitch.conf 81*41fbaed0Stron/etc/netconfig 82*41fbaed0Stron/etc/default/init 83*41fbaed0Stron/etc/inet/services 84*41fbaed0Stron/etc/resolv.conf 85*41fbaed0Stron/etc/services 86*41fbaed0Stron/usr/lib/ld.so 87*41fbaed0Stron/usr/lib/ld.so.1 88*41fbaed0Stron/usr/lib/sparcv9/straddr.so 89*41fbaed0Stron/usr/lib/straddr.so 90*41fbaed0Stron/usr/lib/libintl.so 91*41fbaed0Stron/usr/lib/libintl.so.1 92*41fbaed0Stron/usr/lib/libw.so 93*41fbaed0Stron/usr/lib/libw.so.1 94*41fbaed0Stron/usr/lib/nss_nis.so.1 95*41fbaed0Stron/usr/lib/nss_nisplus.so.1 96*41fbaed0Stron/usr/lib/nss_dns.so.1 97*41fbaed0Stron/usr/lib/nss_files.so.1 98*41fbaed0Stron/usr/share/lib/zoneinfo 99*41fbaed0Stron/var/ld/ld.config 100*41fbaed0Stron" 101*41fbaed0Stronfor i in $more; do 102*41fbaed0Stron mkdir -p $QUEUE_DIRECTORY`dirname $i` 103*41fbaed0Stron (cd / && tar cpf - `echo $i | sed -e 's/^\///'`) | (cd $QUEUE_DIRECTORY && tar xpf -) 104*41fbaed0Strondone 105*41fbaed0Stron 106*41fbaed0Stronexit 0 107