-
-
Notifications
You must be signed in to change notification settings - Fork 41
/
Copy pathpostinst
executable file
·54 lines (45 loc) · 1.61 KB
/
postinst
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
#!/bin/sh
set -e
KRILL_CONF="/etc/krill.conf"
KRILL_CONF_PERMS=640
KRILL_HOME="/var/lib/krill/"
KRILL_DATA="${KRILL_HOME}data/"
KRILL_USER="krill"
create_user() {
if id ${KRILL_USER} > /dev/null 2>&1; then return; fi
adduser --system --home "${KRILL_HOME}" --group ${KRILL_USER}
}
generate_password() {
# Tries not to depend on too many other commmands
# being installed.
date | md5sum | awk '{print $1}'
}
create_first_time_configuration() {
if [ ! -f "${KRILL_CONF}" ]; then
# generate a token for authenticating with Krill
ADMIN_TOKEN="$(generate_password)"
# generate a config file using our preferred filesystem locations
# and generated admin token
# note: we don't configure Krill to store its PID file under /var/run/
# because that requires root privileges potentially at least once per
# boot, and Krill doesn't drop privileges yet so when run as a non-root
# user has no right to create the file or missing /var/run/subdir.
# See: https://stackoverflow.com/a/28312577
krillc config simple \
--data "${KRILL_DATA}" \
--token "${ADMIN_TOKEN}" |
sed -e "s|^\(### log_type.\+\)|\1\nlog_type = \"syslog\"|" \
> "${KRILL_CONF}"
# Ensure that the config file has the correct ownership
chown ${KRILL_USER}:${KRILL_USER} ${KRILL_CONF}
# Ensure that the config file has the correct permissions
chmod ${KRILL_CONF_PERMS} ${KRILL_CONF}
fi
}
case "$1" in
configure)
create_user
create_first_time_configuration
;;
esac
#DEBHELPER#