Home | History | Annotate | Line # | Download | only in chroot-setup
      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