X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=debian%2Fpreinst;fp=debian%2Fpreinst;h=50c89e140ac6916953f032d08565c1507637b1a3;hp=0000000000000000000000000000000000000000;hb=207515697bfcc93b03227ea0b581b15cf89b1fbc;hpb=6626dc2a13c809092aa539c5a72bc72a0c56afdc diff --git a/debian/preinst b/debian/preinst new file mode 100644 index 000000000..50c89e140 --- /dev/null +++ b/debian/preinst @@ -0,0 +1,100 @@ +#!/bin/sh +# preinst script for freeside +# +# see: dh_installdeb(1) + +set -e + +# summary of how this script can be called: +# * `install' +# * `install' +# * `upgrade' +# * `abort-upgrade' +# for details, see http://www.debian.org/doc/debian-policy/ or +# the debian-policy package + + +case "$1" in + install|upgrade) + + # If the package has default file it could be sourced, so that + # the local admin can overwrite the defaults + + [ -f "/etc/default/freeside" ] && . /etc/default/freeside + + # Sane defaults: + + [ -z "$FREESIDE_HOME" ] && FREESIDE_HOME=/home/freeside + [ -z "$FREESIDE_USER" ] && FREESIDE_USER=freeside + [ -z "$FREESIDE_NAME" ] && FREESIDE_NAME="Freeside" + [ -z "$FREESIDE_GROUP" ] && FREESIDE_GROUP=freeside + + [ -z "$RT_GROUP" ] && RT_GROUP=rt + + # Groups that the user will be added to, if undefined, then none. + ADDGROUP="rt" + + # create user to avoid running server as root + # 1. create group if not existing + if ! getent group | grep -q "^$FREESIDE_GROUP:" -; then + echo -n "Adding group $FREESIDE_GROUP.." + addgroup --quiet --system $FREESIDE_GROUP 2>/dev/null ||true + echo "..done" + fi + if ! getent group | grep -q "^$RT_GROUP:" -; then + echo -n "Adding group $RT_GROUP.." + addgroup --quiet --system $RT_GROUP 2>/dev/null ||true + echo "..done" + fi + # 2. create homedir if not existing + test -d $FREESIDE_HOME || mkdir $FREESIDE_HOME + # 3. create user if not existing + if ! getent passwd | grep -q "^$FREESIDE_USER:" -; then + echo -n "Adding system user $FREESIDE_USER.." + adduser --quiet \ + --system \ + --ingroup $FREESIDE_GROUP \ + --shell /bin/sh \ + --no-create-home \ + --disabled-password \ + $FREESIDE_USER 2>/dev/null || true + echo "..done" + fi + # 4. adjust passwd entry + usermod -c "$FREESIDE_NAME" \ + -d $FREESIDE_HOME \ + -g $FREESIDE_GROUP \ + $FREESIDE_USER + # 5. adjust file and directory permissions + if ! dpkg-statoverride --list $FREESIDE_HOME >/dev/null + then + chown -R $FREESIDE_USER:adm $FREESIDE_HOME + chmod u=rwx,g=rxs,o= $FREESIDE_HOME + fi + # 6. Add the user to the ADDGROUP group + if test -n $ADDGROUP + then + if ! groups $FREESIDE_USER | cut -d: -f2 | \ + grep -qw $ADDGROUP -; then + adduser $FREESIDE_USER $ADDGROUP + fi + fi + ;; + + abort-upgrade) + ;; + + *) + echo "preinst called with unknown argument \`$1'" >&2 + exit 1 + ;; +esac + +# dh_installdeb will replace this with shell code automatically +# generated by other debhelper scripts. + +#DEBHELPER# + +exit 0 + +