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