#!/bin/sh -e KRILL_CONF="/etc/krill.conf" 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 GENERATED_TOKEN="$(generate_password)" # generate a config file using our preferred filesystem locations # and generated 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 "${GENERATED_TOKEN}" | sed -e "s|^\(### log_type.\+\)|\1\nlog_type = \"syslog\"|" \ > "${KRILL_CONF}" fi } case "$1" in configure) create_user create_first_time_configuration ;; esac