#!/bin/sh # preinst script for rspamd set -e case "$1" in install) SERVER_HOME=/var/lib/rspamd SERVER_RUN=/var/run/rspamd SERVER_LOG=/var/log/rspamd SERVER_USER=rspamd SERVER_NAME="Rspamd spam filtering system" SERVER_GROUP=rspamd # create user to avoid running server as root # 1. create group if not existing if ! getent group | grep -q "^$SERVER_GROUP:" ; then echo -n "Adding group $SERVER_GROUP.." addgroup --quiet --system $SERVER_GROUP 2>/dev/null ||true echo "..done" fi # 2. create homedir if not existing test -d $SERVER_HOME || mkdir $SERVER_HOME test -d $SERVER_RUN || mkdir $SERVER_RUN test -d $SERVER_LOG || mkdir $SERVER_LOG # 3. create user if not existing if ! getent passwd | grep -q "^$SERVER_USER:"; then echo -n "Adding system user $SERVER_USER.." adduser --quiet \ --system \ --ingroup $SERVER_GROUP \ --no-create-home \ --disabled-password \ $SERVER_USER 2>/dev/null || true echo "..done" fi # 4. adjust passwd entry usermod -c "$SERVER_NAME" \ -d $SERVER_HOME \ -g $SERVER_GROUP \ $SERVER_USER # 5. adjust file and directory permissions if ! dpkg-statoverride --list $SERVER_HOME >/dev/null then chown -R $SERVER_USER:$SERVER_GROUP $SERVER_HOME $SERVER_LOG $SERVER_RUN chmod u=rwx,g=rx,o= $SERVER_HOME chmod u=rwx,g=rx,o=rx $SERVER_RUN chmod u=rwx,g=rx,o=rx $SERVER_LOG fi # 6. Add the user to the ADDGROUP group if test -n $ADDGROUP then if ! groups $SERVER_USER | cut -d: -f2 | \ grep -qw $SERVER_GROUP; then adduser $SERVER_USER $SERVER_GROUP fi fi ;; abort-upgrade|upgrade) ;; *) echo "preinst called with unknown argument \`$1'" >&2 exit 1 ;; esac exit 0