X-Git-Url: https://git.hcoop.net/hcoop/domtool2.git/blobdiff_plain/6b1ff6b1033e7066538834e584192112f3521714..93278775f0877b33c24e18cc9fa837c315d95fcc:/scripts/domtool-publish diff --git a/scripts/domtool-publish b/scripts/domtool-publish index 4ae5f4e..3450703 100755 --- a/scripts/domtool-publish +++ b/scripts/domtool-publish @@ -40,31 +40,83 @@ case $1 in /usr/bin/rsync -r --delete /var/domtool/zones/ /etc/bind/zones/ /bin/chown -R bind /etc/bind/zones /bin/cp /var/domtool/named.conf.local /etc/bind/ - /bin/chown root:bind_config /etc/bind/named.conf.local - /bin/chgrp u=rw,g=rw,o=r /etc/bind/named.conf.local - /etc/init.d/bind9 reload + /bin/chown root:bind /etc/bind/named.conf.local + /bin/chmod 644 /etc/bind/named.conf.local + /etc/init.d/bind9 restart ;; exim) /bin/cp /var/domtool/aliases /etc/aliases.hosted - #/bin/cp /var/domtool/aliases.default /etc/ + /bin/cp /var/domtool/aliases.default /etc/aliases.wildcard redo_exim ;; mailman) - /bin/cp /var/domtool/mailman.map /etc/mailman + /bin/echo "HCOOP_VHOSTS = {" >/etc/mailman/vhosts_cfg.py + /bin/cat /var/domtool/mailman.map >>/etc/mailman/vhosts_cfg.py + /bin/echo "}" >>/etc/mailman/vhosts_cfg.py /etc/init.d/mailman reload redo_exim ;; courier) + VMAILDB=`domtool-config -path vmaildb` + if [ -z "$VMAILDB" ]; then + echo "domtool-config not found, not syncing courier vmail userdb" + exit 1 + fi + /usr/bin/rsync -r --delete ${VMAILDB}/ /etc/courier/userdb + /usr/sbin/makeuserdb + /bin/chown -R domtool:nogroup /etc/courier/userdb /bin/cat /etc/courier/userdb/* >/etc/courier/exim /bin/chmod o-r /etc/courier/exim /usr/sbin/exim_dbmbuild /etc/courier/exim /etc/courier/exim.dat /bin/chgrp mail /etc/courier/exim.dat /bin/chmod o-r /etc/courier/exim.dat ;; + spamassassin) + SHAREDROOT=`domtool-config -path shared-root` + /usr/bin/rsync -r --delete ${SHAREDROOT}/email/spamassassin/addrs/ /etc/spamassassin/addrs + ;; smtplog) /bin/grep $2 /var/log/exim4/mainlog ;; + apache-fixperms) + /bin/chown -R domtool:nogroup /var/log/apache2/user + ;; + apache1.3-fixperms) + /bin/chown -R domtool:nogroup /var/log/apache/user + ;; + users) + /bin/cp /var/domtool/waklog.conf /etc/apache2/ + /etc/init.d/apache2 reload + ;; + firewall) + # Ideally this would check if the config worked first + # (ferm failing just uses the previous config at + # least). Does it need to chown/chmod the generated + # rules? + /bin/cp /var/domtool/firewall/*.conf /etc/ferm/ + /etc/init.d/ferm reload + ;; + firewallpuppet) + # new firewall publishing method that integrates with puppet (sort of) + /bin/cp /var/domtool/firewall/*.conf /etc/ferm/ + if [ ! -d /etc/puppetlabs ]; then + # legacy node + /etc/init.d/ferm reload + exit + fi + if ( /usr/sbin/ferm --noexec /etc/ferm/ferm.conf ); then + for chain in FERM-INPUT FERM-OUTPUT; do + /sbin/iptables -F $chain + /sbin/ip6tables -F $chain + + /usr/sbin/ferm --domain ip --noexec --lines /etc/ferm/ferm.conf | iptables-restore --noflush + /usr/sbin/ferm --domain ip6 --noexec --lines /etc/ferm/ferm.conf | ip6tables-restore --noflush + done + else + echo "firewall: ferm failed, aborting regeneration." + fi + ;; *) - echo "Usage: domtool-publish [apache|bind|courier|exim|mailman|smtplog STRING]" + echo "Usage: domtool-publish [apache|bind|courier|exim|mailman|smtplog STRING|users|firewall]" ;; esac