import from HEAD
[freeradius.git] / debian / freeradius.postinst
1 #! /bin/sh
2
3 set -e
4
5 case "$1" in
6   configure)
7         if ! id freerad >/dev/null 2>&1; then
8                 addgroup --system freerad || true
9                 groups freerad 2>/dev/null || adduser --system --no-create-home --home /etc/freeradius --ingroup freerad --disabled-password freerad
10
11                 # make sure there is a user and group 'freerad'
12                 groups freerad |grep freerad >/dev/null
13
14                 # put user freerad in group shadow, so the daemon can auth locally
15                 adduser freerad shadow
16         fi
17
18         update-rc.d freeradius defaults 50 >/dev/null
19
20         if [ ! -d /var/log/freeradius ]; then
21                 mkdir -p /var/log/freeradius
22         fi
23
24         if [ ! -f /var/log/freeradius/radius.log ]; then
25                 touch /var/log/freeradius/radius.log
26         fi
27
28         if [ ! -f /var/log/freeradius/radwtmp ]; then
29                 touch /var/log/freeradius/radwtmp
30         fi
31
32         if [ ! -d /var/run/freeradius ]; then
33                 mkdir /var/run/freeradius
34         fi
35
36         chown -R freerad:freerad /var/log/freeradius
37         chown -R freerad:freerad /var/run/freeradius
38         chgrp -R freerad /etc/freeradius
39
40         # Leave the file /etc/freeradius/dictionary with the default
41         # permissions: it should not contain secrets, and this allows
42         # to run radclient with a non-privileged user.
43         find /etc/freeradius -type d -exec chmod 2751 {} \;
44         find /etc/freeradius -type f \! -name dictionary -exec chmod 640 {} \;
45
46         if [ -z "$2" ]; then
47                 action="start"
48         else
49                 action="restart"
50         fi
51
52         if [ -x "`which invoke-rc.d 2>/dev/null`" ]; then
53                 invoke-rc.d freeradius $action || true
54         else
55                 /etc/init.d/freeradius $action
56         fi
57         ;;
58   abort-upgrade)
59         ;;
60   abort-remove)
61         if [ -x "`which invoke-rc.d 2>/dev/null`" ]; then
62                 invoke-rc.d freeradius start || true
63         else
64                 /etc/init.d/freeradius start
65         fi
66         ;;
67   abort-deconfigure)
68         ;;
69 esac
70
71 #DEBHELPER#
72
73 exit 0