#!/bin/bash -e # Source debconf library. . /usr/share/debconf/confmodule CONFIGFILE="/etc/alternc/local.sh" update_var() { local question local var question="$1" var="$2" db_get "$question" grep -Eq "^ *$var=" $CONFIGFILE || echo "$var=" >> $CONFIGFILE SED_SCRIPT="$SED_SCRIPT;s\\^ *$var=.*\\$var=\"$RET\"\\" } # summary of how this script can be called: # * `configure' # * `abort-upgrade' # * `abort-remove' `in-favour' # # * `abort-deconfigure' `in-favour' # `removing' # # for details, see http://www.debian.org/doc/debian-policy/ or # the debian-policy package # # quoting from the policy: # Any necessary prompting should almost always be confined to the # post-installation script, and should be protected with a conditional # so that unnecessary prompting doesn't happen if a package's # installation fails and the `postinst' is called with `abort-upgrade', # `abort-remove' or `abort-deconfigure'. case "$1" in configure) # ajoute l'user postfix au groupe sasl adduser --quiet postfix sasl # corriger les permissions du chroot mkdir -p /var/spool/postfix/var/run/saslauthd || true if ! dpkg-statoverride --list /var/spool/postfix/var/run/saslauthd >/dev/null ; then dpkg-statoverride --quiet --update --add root sasl 710 /var/spool/postfix/var/run/saslauthd || true fi db_get "alternc/alternc_mail" VMAIL_HOME="$RET" if ! getent group vmail; then addgroup --gid 1998 vmail fi if ! getent passwd vmail; then useradd -g vmail -u 1998 vmail -d "$VMAIL_HOME" -m fi test -d "$VMAIL_HOME" || mkdir -p "$VMAIL_HOME" chown vmail:vmail "$VMAIL_HOME" chown vmail:vmail "$VMAIL_HOME"/* 2>/dev/null || true # It may be empty chmod 770 "$VMAIL_HOME" chmod 770 "$VMAIL_HOME"/* 2>/dev/null || true # It may be empty # build local.sh if it does not exist if [ ! -f $CONFIGFILE ]; then cat > $CONFIGFILE < $CONFIGFILE.tmp mv -f $CONFIGFILE.tmp $CONFIGFILE # Add NFS_QUOTA instructions if they are not in the config file: grep -Eq "^ *NFS_QUOTA=" $CONFIGFILE || echo " # Shall we enable QUOTA over NFS ? # the default is NO, since this dramatically block /usr/lib/alternc/quota* functions # called from the panel. To enable quota-over-NFS, put yes here NFS_QUOTA=no" >> $CONFIGFILE # Erase all apacheconf file # They will be regenerated without the bug by upgrade_check.sh below. if dpkg --compare-versions "$2" le "0.9.3.9-globenet14"; then rm -f /var/alternc/apacheconf/*/* # Old AlternC version fi # we store the version where we upgrade from, for AlternC < 3.1.1 || < 3.2.1 # where we switch to database-based version control echo "$2" >/var/lib/alternc/backups/lastversion # Setup grants db_get "alternc/mysql/host" MYSQL_HOST="$RET" if [ "$MYSQL_HOST" != "localhost" -o -e /usr/sbin/mysqld ]; then # compatibility shims with my.cnf host="$RET" db_get "alternc/mysql/db" database="$RET" db_get "alternc/mysql/user" user="$RET" db_get "alternc/mysql/password" password="$RET" db_get "alternc/mysql/alternc_mail_user" alternc_mail_user="$RET" db_get "alternc/mysql/alternc_mail_password" alternc_mail_password="$RET" # we source (instead of forking) mysql.sh so that it gets the local environment above . /usr/share/alternc/install/mysql.sh fi if [ -e $CONFIGFILE ]; then # source local.sh variables . $CONFIGFILE fi # multi-server configuration: we create an alternc account with # authorized keys. since this is the master, we do not give him a # valid shell, but we still need the user for proper perms ALTERNC_USER_HOME="$ALTERNC_HTML" if [ ! -z "$ALTERNC_SLAVES" ] && [ "$ALTERNC_SLAVES" != "localhost" ] ; then if ! grep -q alternc /etc/passwd ; then echo "Creating alternc account" adduser --quiet --system --uid 342 --home $ALTERNC_HTML --shell /bin/false --ingroup adm alternc fi chown alternc "$ALTERNC_USER_HOME" if [ -r ~root/.ssh/id_dsa.pub ]; then key=`cat ~root/.ssh/id_dsa.pub` if ! grep -q "$key" $ALTERNC_USER_HOME/.ssh/authorized_keys ; then echo "Authorizing root ssh key to access the common alternc account" mkdir -p $ALTERNC_USER_HOME/.ssh echo "$key" >> $ALTERNC_USER_HOME/.ssh/authorized_keys chown -R alternc:adm $ALTERNC_USER_HOME/.ssh chmod -R og-rwx $ALTERNC_USER_HOME/.ssh fi else echo "No SSH key in "~root/.ssh/id_dsa.pub echo "create one and reconfigure alternc to propagate SSH keys" fi else echo "AlternC slaves not configured ($ALTERNC_SLAVES)" fi # /var/alternc/dns/d/www.example.com FQDN_LETTER="`echo $FQDN | sed -e 's/.*\.\([^\.]\)[^\.]*\.[^\.]*$/\1/'`" if [ "$FQDN_LETTER" = "$FQDN" ] then FQDN_LETTER="_" fi #clean old access to the management panel # We don't use this anymore : (FIXME : shall we remove /var/alternc/dns while upgrading ?) #find /var/alternc/dns/ -type l -lname /var/alternc/bureau -exec rm {} \; # Bind stuff touch /var/lib/alternc/bind/automatic.conf /var/lib/alternc/bind/slaveip.conf chown root:bind /var/lib/alternc/bind/automatic.conf /var/lib/alternc/bind/slaveip.conf chmod 640 /var/lib/alternc/bind/automatic.conf /var/lib/alternc/bind/slaveip.conf mkdir -p /run/alternc && chown alterncpanel:alterncpanel /run/alternc touch /run/alternc/refresh_slave /usr/lib/alternc/slave_dns # Apache will not start without this file touch /var/lib/alternc/apache-vhost/vhosts_all.conf # important: postinst freezes without that: db_stop echo -e "\033[31m**********************************************" echo "* *" echo "* ALTERNC ACTION REQUESTED *" echo "* *" echo "* Please run alternc.install to fully deploy *" echo "* *" echo "**********************************************" echo -e "\033[0m" ;; abort-upgrade|abort-remove|abort-deconfigure) ;; *) echo "postinst called with unknown argument \`$1'" >&2 exit 1 ;; esac # dh_installdeb will replace this with shell code automatically # generated by other debhelper scripts. #DEBHELPER# # important: postrm freezes withtout that: db_stop exit 0 # vim: et sw=4