aboutsummaryrefslogtreecommitdiffstats
path: root/debian/preinst
blob: 48d61b9791320ebe25c66b45e2fa98d49d6db63b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#!/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