summaryrefslogtreecommitdiffstats
path: root/debian/icinga2-common.postinst
blob: 9f7aa20f4e43e18cacecd2eed6c8cc2d242b12db (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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
#!/bin/sh
# postinst script for icinga2-common

set -e

setperm() {
    ownopt=
    if [ "$1" = -R ]; then
        ownopt="-R"
        shift
    fi
    user="$1"
    group="$2"
    mode="$3"
    file="$4"
    shift 4
    # only do something when no setting exists
    if ! dpkg-statoverride --list "$file" >/dev/null 2>&1; then
      chown $ownopt "$user":"$group" "$file"
      chmod "$mode" "$file"
    fi
}

is_fresh_install()
{
    if [ -z "$2" ] ; then
        return 0
    fi
    return 1
}

case "$1" in
    configure)
        if ! getent passwd nagios > /dev/null ; then
            echo 'Adding system-user for nagios' 1>&2
            adduser --system --group --home /var/lib/nagios \
                    --disabled-login --force-badname nagios > /dev/null
        fi

        # explicitly set permissions on some files that are dependent
        # on the uid/gid of the nagios user, which is dynamically created.
        if ! dpkg-statoverride --list /etc/icinga2; then
            setperm nagios nagios 0750 /etc/icinga2
            setperm nagios nagios 0640 /etc/icinga2/icinga2.conf
            setperm nagios nagios 0640 /etc/icinga2/constants.conf
            setperm nagios nagios 0640 /etc/icinga2/zones.conf
            setperm -R nagios nagios 0700 /etc/icinga2/pki
            setperm -R nagios nagios 0750 /etc/icinga2/conf.d
            setperm -R nagios nagios 0750 /etc/icinga2/features-enabled
            setperm -R nagios nagios 0750 /etc/icinga2/features-available
            setperm nagios nagios 0750 /etc/icinga2/zones.d
        fi

        setperm nagios adm 2751 /var/log/icinga2
        setperm nagios adm 2751 /var/log/icinga2/compat
        setperm nagios adm 2755 /var/log/icinga2/compat/archives
        setperm nagios adm 2751 /var/log/icinga2/crash

        setperm nagios nagios 0750 /var/lib/icinga2
        setperm nagios nagios 0750 /var/lib/icinga2/api
        setperm nagios nagios 0750 /var/lib/icinga2/api/log
        setperm nagios nagios 0750 /var/lib/icinga2/api/repository
        setperm nagios nagios 0750 /var/lib/icinga2/api/zones

        setperm nagios www-data 0750 /var/cache/icinga2

        setperm nagios nagios 0750 /var/spool/icinga2
        setperm nagios nagios 0770 /var/spool/icinga2/perfdata
        setperm nagios nagios 0750 /var/spool/icinga2/tmp

    ;;

    abort-upgrade|abort-remove|abort-deconfigure)
    ;;

    *)
        echo "postinst called with unknown argument \`$1'" >&2
        exit 1
    ;;
esac

init_failed ()
{
    echo "Icinga 2 was unable to start due to configuration errors.";
    echo "Please fix them and manually restart the icinga2 daemon using";
    echo " ´service icinga2 start´";
}

#DEBHELPER#

exit 0