85 lines
2.5 KiB
Bash
85 lines
2.5 KiB
Bash
#!/bin/bash
|
|
|
|
set -e
|
|
|
|
. /usr/share/debconf/confmodule
|
|
|
|
TALER_HOME="/var/lib/taler-exchange"
|
|
CONFIG_FILE="/etc/default/taler-exchange"
|
|
_GROUPNAME=taler-exchange-secmod
|
|
_DBGROUPNAME=taler-exchange-db
|
|
_EUSERNAME=taler-exchange-httpd
|
|
_RSECUSERNAME=taler-exchange-secmod-rsa
|
|
_ESECUSERNAME=taler-exchange-secmod-eddsa
|
|
_AGGRUSERNAME=taler-exchange-aggregator
|
|
_WIREUSERNAME=taler-exchange-wire
|
|
|
|
# usage: fixperm user:group perms file
|
|
function fixperm() {
|
|
chown "$1" "$3"
|
|
chmod "$2" "$3"
|
|
}
|
|
|
|
# usage: lncfg user home target
|
|
function lncfg() {
|
|
local cf=$TALER_HOME/$2/.config
|
|
if [ ! -e $cf ]; then
|
|
mkdir $cf
|
|
chown $(stat -L -c %u $TALER_HOME/$2):$(stat -L -c %g $TALER_HOME/$2) $cf
|
|
fi
|
|
ln -sf $3 $cf/taler.conf
|
|
}
|
|
|
|
case "${1}" in
|
|
configure)
|
|
|
|
# Create taler groups as needed
|
|
if ! getent group ${_GROUPNAME} >/dev/null; then
|
|
addgroup --quiet --system ${_GROUPNAME}
|
|
fi
|
|
if ! getent group ${_DBGROUPNAME} >/dev/null; then
|
|
addgroup --quiet --system ${_DBGROUPNAME}
|
|
fi
|
|
|
|
# Create taler users if needed
|
|
if ! getent passwd ${_EUSERNAME} >/dev/null; then
|
|
adduser --quiet --system --ingroup ${_GROUPNAME} --home ${TALER_HOME}/httpd ${_EUSERNAME}
|
|
adduser --quiet ${_EUSERNAME} ${_DBGROUPNAME}
|
|
fi
|
|
if ! getent passwd ${_RSECUSERNAME} >/dev/null; then
|
|
adduser --quiet --system --ingroup ${_GROUPNAME} --home ${TALER_HOME}/secmod-rsa ${_RSECUSERNAME}
|
|
fi
|
|
if ! getent passwd ${_ESECUSERNAME} >/dev/null; then
|
|
adduser --quiet --system --ingroup ${_GROUPNAME} --home ${TALER_HOME}/secmod-eddsa ${_ESECUSERNAME}
|
|
fi
|
|
if ! getent passwd ${_WIREUSERNAME} >/dev/null; then
|
|
adduser --quiet --system --home ${TALER_HOME}/wire ${_WIREUSERNAME}
|
|
adduser --quiet ${_WIREUSERNAME} ${_DBGROUPNAME}
|
|
fi
|
|
if ! getent passwd ${_AGGRUSERNAME} >/dev/null; then
|
|
adduser --quiet --system --home ${TALER_HOME}/aggregator ${_AGGRUSERNAME}
|
|
adduser --quiet ${_AGGRUSERNAME} ${_DBGROUPNAME}
|
|
fi
|
|
|
|
fixperm ${_WIREUSERNAME}:root 460 /etc/taler/exchange-wire-gateway.conf
|
|
fixperm root:${_DBGROUPNAME} 640 /etc/taler/exchange-db.conf
|
|
|
|
lncfg ${_EUSERNAME} httpd /etc/taler/exchange-service-default.conf
|
|
lncfg ${_RSECUSERNAME} secmod-rsa /etc/taler/exchange-service-default.conf
|
|
lncfg ${_ESECUSERNAME} secmod-eddsa /etc/taler/exchange-service-default.conf
|
|
lncfg ${_AGGRUSERNAME} aggregator /etc/taler/exchange-service-default.conf
|
|
lncfg ${_WIREUSERNAME} wire /etc/taler/exchange-service-wire.conf
|
|
;;
|
|
|
|
abort-upgrade | abort-remove | abort-deconfigure) ;;
|
|
|
|
*)
|
|
echo "postinst called with unknown argument \`${1}'" >&2
|
|
exit 1
|
|
;;
|
|
esac
|
|
|
|
#DEBHELPER#
|
|
|
|
exit 0
|