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 92 93 94 95 96 97 98 99 100 101 102
|
#!/bin/sh
set -e
TRYTON_USER="tryton"
TRYTON_CONFDIR="/etc/tryton"
TRYTON_SHAREDIR="/usr/share/tryton-server"
TRYTON_CONFFILE="${TRYTON_CONFDIR}/trytond.conf"
TRYTON_CONFTEMPLATE="${TRYTON_SHAREDIR}/default/trytond.conf"
TRYTON_LOGCONFFILE="${TRYTON_CONFDIR}/trytond_log.conf"
TRYTON_LOGCONFTEMPLATE="${TRYTON_SHAREDIR}/default/trytond_log.conf"
TRYTON_LOGDIR="/var/log/tryton"
TRYTON_HOMEDIR="/var/lib/tryton"
# POSIX-compliant shell function to check for the existence of a command
# s. developers-reference 6.4
pathfind() {
OLDIFS="$IFS"
IFS=:
for p in $PATH; do
if [ -x "$p/$*" ]; then
IFS="$OLDIFS"
return 0
fi
done
IFS="$OLDIFS"
return 1
}
case "${1}" in
configure)
# Creating system user
adduser --home "${TRYTON_HOMEDIR}" --no-create-home --quiet --system --group "${TRYTON_USER}"
# Creating home directory (also used for storage of attachments)
mkdir -p "${TRYTON_HOMEDIR}"
chown "${TRYTON_USER}":"${TRYTON_USER}" "${TRYTON_HOMEDIR}"
# Creating log directory
mkdir -p "${TRYTON_LOGDIR}"
chown "${TRYTON_USER}":adm "${TRYTON_LOGDIR}"
# Create the configuration directory, copy configuration defaults
# if the target does not exist yet and register the configuration files
mkdir -p "${TRYTON_CONFDIR}"
if [ ! -e $TRYTON_CONFFILE ]; then
cp "${TRYTON_CONFTEMPLATE}" "${TRYTON_CONFFILE}"
if pathfind ucf; then
ucf --debconf-ok --src-dir "$TRYTON_SHAREDIR/default/" "$TRYTON_CONFTEMPLATE" "$TRYTON_CONFFILE"
ucfr --force tryton-server "${TRYTON_CONFFILE}"
fi
fi
if [ ! -e $TRYTON_LOGCONFFILE ]; then
cp "${TRYTON_LOGCONFTEMPLATE}" "${TRYTON_LOGCONFFILE}"
if pathfind ucf; then
ucf --debconf-ok --src-dir "$TRYTON_SHAREDIR/default/" "$TRYTON_LOGCONFTEMPLATE" "$TRYTON_LOGCONFFILE"
ucfr --force tryton-server "${TRYTON_LOGCONFFILE}"
fi
fi
# Set ownership and permissions on configuration files:
# otherwise trytond uses internal defaults, if it cannot
# read the configuration files.
for _ITEM in "${TRYTON_CONFFILE}" "${TRYTON_LOGCONFFILE}"; do
if ! dpkg-statoverride --list "${_ITEM}" > /dev/null 2>&1
then
chown "${TRYTON_USER}":"${TRYTON_USER}" "${_ITEM}"
chmod 0440 "${_ITEM}"
fi
done
# Restricting access to home and log directories for security reasons (private information)
for _DIRECTORY in "${TRYTON_HOMEDIR}" "${TRYTON_LOGDIR}"
do
if ! dpkg-statoverride --list "${_DIRECTORY}" > /dev/null 2>&1
then
chmod 0750 "${_DIRECTORY}"
fi
done
# Add the tryton user to the ssl-cert group on fresh installs
if [ -z "$2" ]; then
if getent group ssl-cert > /dev/null 2>&1
then
adduser --quiet "${TRYTON_USER}" ssl-cert
fi
fi
;;
abort-upgrade|abort-remove|abort-deconfigure)
;;
*)
echo "postinst called with unknown argument \`{$1}'" >&2
exit 1
;;
esac
#DEBHELPER#
exit 0
|