diff options
Diffstat (limited to 'debian/taler-exchange.postinst')
-rw-r--r-- | debian/taler-exchange.postinst | 255 |
1 files changed, 130 insertions, 125 deletions
diff --git a/debian/taler-exchange.postinst b/debian/taler-exchange.postinst index 72f8f6c5d..e8ef11d69 100644 --- a/debian/taler-exchange.postinst +++ b/debian/taler-exchange.postinst @@ -2,106 +2,111 @@ set -e - . /usr/share/debconf/confmodule +# usage: fixperm user:group perms file +function fixperm() { + chown "$1" "$3" + chmod "$2" "$3" +} + +# usage: lncfg user target +function lncfg() { + mkdir ~$1/.config + chown $1:$1 ~$1/.config + ln -sf $1/.config/taler.conf $2 +} + case "${1}" in - configure) - db_version 2.0 - - db_get taler-exchange/eusername - _EUSERNAME="${RET:-taler-exchange-httpd}" - - db_get taler-exchange/rsecusername - _RSECUSERNAME="${RET:-taler-exchange-secmod-rsa}" - - db_get taler-exchange/esecusername - _ESECUSERNAME="${RET:-taler-exchange-secmod-eddsa}" - - db_get taler-exchange/wireusername - _WIREUSERNAME="${RET:-taler-exchange-wire}" - - db_get taler-exchange/aggrusername - _AGGRUSERNAME="${RET:-taler-exchange-aggregator}" - - db_get taler-exchange/groupname - _GROUPNAME="${RET:-taler-private}" - - db_get taler-exchange/dbgroupname - _DBGROUPNAME="${RET:-taler-exchange-db}" - - db_stop - - CONFIG_FILE="/etc/default/taler-exchange" - TALER_HOME="/var/lib/taler-exchange" - - # Creating taler groups as needed - if ! getent group ${_GROUPNAME} > /dev/null - then - echo -n "Creating new Taler group ${_GROUPNAME}:" - addgroup --quiet --system ${_GROUPNAME} - echo " done." - fi - if ! getent group ${_DBGROUPNAME} > /dev/null - then - echo -n "Creating new Taler group ${_DBGROUPNAME}:" - addgroup --quiet --system ${_DBGROUPNAME} - echo " done." - fi - - # Creating taler users if needed - if ! getent passwd ${_EUSERNAME} > /dev/null - then - echo -n "Creating new Taler user ${_EUSERNAME}:" - adduser --quiet --system --ingroup ${_GROUPNAME} --home ${TALER_HOME}/httpd ${_EUSERNAME} - adduser ${_EUSERNAME} ${_DBGROUPNAME} - echo " done." - fi - if ! getent passwd ${_RSECUSERNAME} > /dev/null - then - echo -n "Creating new Taler user ${_RSECUSERNAME}:" - adduser --quiet --system --ingroup ${_GROUPNAME} --home ${TALER_HOME}/secmod-rsa ${_RSECUSERNAME} - echo " done." - fi - if ! getent passwd ${_ESECUSERNAME} > /dev/null - then - echo -n "Creating new Taler user ${_ESECUSERNAME}:" - adduser --quiet --system --ingroup ${_GROUPNAME} --home ${TALER_HOME}/secmod-eddsa ${_ESECUSERNAME} - echo " done." - fi - if ! getent passwd ${_WIREUSERNAME} > /dev/null - then - echo -n "Creating new Taler user ${_WIREUSERNAME}:" - adduser --quiet --system --home ${TALER_HOME}/wire ${_WIREUSERNAME} - adduser --quiet ${_WIREUSERNAME} ${_DBGROUPNAME} - echo " done." - fi - if ! getent passwd ${_AGGRUSERNAME} > /dev/null - then - echo -n "Creating new Taler user ${_AGGRUSERNAME}:" - adduser --quiet --system --home ${TALER_HOME}/aggregator ${_AGGRUSERNAME} - adduser --quiet ${_AGGRUSERNAME} ${_DBGROUPNAME} - echo " done." - fi - - # Writing new values to configuration file - echo -n "Writing new configuration file:" - CONFIG_NEW=$(tempfile) - -cat > "${CONFIG_NEW}" <<EOF +configure) + db_version 2.0 + + db_get taler-exchange/eusername + _EUSERNAME="${RET:-taler-exchange-httpd}" + + db_get taler-exchange/rsecusername + _RSECUSERNAME="${RET:-taler-exchange-secmod-rsa}" + + db_get taler-exchange/esecusername + _ESECUSERNAME="${RET:-taler-exchange-secmod-eddsa}" + + db_get taler-exchange/wireusername + _WIREUSERNAME="${RET:-taler-exchange-wire}" + + db_get taler-exchange/aggrusername + _AGGRUSERNAME="${RET:-taler-exchange-aggregator}" + + db_get taler-exchange/groupname + _GROUPNAME="${RET:-taler-private}" + + db_get taler-exchange/dbgroupname + _DBGROUPNAME="${RET:-taler-exchange-db}" + + db_stop + + CONFIG_FILE="/etc/default/taler-exchange" + TALER_HOME="/var/lib/taler-exchange" + + # Creating taler groups as needed + if ! getent group ${_GROUPNAME} >/dev/null; then + echo -n "Creating new Taler group ${_GROUPNAME}:" + addgroup --quiet --system ${_GROUPNAME} + echo " done." + fi + if ! getent group ${_DBGROUPNAME} >/dev/null; then + echo -n "Creating new Taler group ${_DBGROUPNAME}:" + addgroup --quiet --system ${_DBGROUPNAME} + echo " done." + fi + + # Creating taler users if needed + if ! getent passwd ${_EUSERNAME} >/dev/null; then + echo -n "Creating new Taler user ${_EUSERNAME}:" + adduser --quiet --system --ingroup ${_GROUPNAME} --home ${TALER_HOME}/httpd ${_EUSERNAME} + adduser ${_EUSERNAME} ${_DBGROUPNAME} + echo " done." + fi + if ! getent passwd ${_RSECUSERNAME} >/dev/null; then + echo -n "Creating new Taler user ${_RSECUSERNAME}:" + adduser --quiet --system --ingroup ${_GROUPNAME} --home ${TALER_HOME}/secmod-rsa ${_RSECUSERNAME} + echo " done." + fi + if ! getent passwd ${_ESECUSERNAME} >/dev/null; then + echo -n "Creating new Taler user ${_ESECUSERNAME}:" + adduser --quiet --system --ingroup ${_GROUPNAME} --home ${TALER_HOME}/secmod-eddsa ${_ESECUSERNAME} + echo " done." + fi + if ! getent passwd ${_WIREUSERNAME} >/dev/null; then + echo -n "Creating new Taler user ${_WIREUSERNAME}:" + adduser --quiet --system --home ${TALER_HOME}/wire ${_WIREUSERNAME} + adduser --quiet ${_WIREUSERNAME} ${_DBGROUPNAME} + echo " done." + fi + if ! getent passwd ${_AGGRUSERNAME} >/dev/null; then + echo -n "Creating new Taler user ${_AGGRUSERNAME}:" + adduser --quiet --system --home ${TALER_HOME}/aggregator ${_AGGRUSERNAME} + adduser --quiet ${_AGGRUSERNAME} ${_DBGROUPNAME} + echo " done." + fi + + # Writing new values to configuration file + echo -n "Writing new configuration file:" + CONFIG_NEW=$(tempfile) + + cat >"${CONFIG_NEW}" <<EOF # This file controls the behaviour of the Taler init script. # It will be parsed as a shell script. # please do not edit by hand, use 'dpkg-reconfigure taler-exchange'. TALER_EUSER=${_EUSERNAME} -TALER_RSECUSER=${_RESCUSERNAME} +TALER_RSECUSER=${_RSECUSERNAME} TALER_ESECUSER=${_ESECUSERNAME} TALER_WIREUSER=${_WIREUSERNAME} TALER_AGGRUSER=${_AGGRUSERNAME} TALER_GROUP=${_GROUPNAME} EOF -cat > "/etc/systemd/system/taler-exchange-httpd.socket" <<EOF + cat >"/etc/systemd/system/taler-exchange-httpd.socket" <<EOF [Unit] Description=Taler Exchange Socket PartOf=taler-exchange-httpd.service @@ -118,7 +123,7 @@ SocketMode=0660 WantedBy=sockets.target EOF -cat > "/etc/systemd/system/taler-exchange-httpd.service" <<EOF + cat >"/etc/systemd/system/taler-exchange-httpd.service" <<EOF [Unit] Description=GNU Taler payment system exchange REST API AssertPathExists=/var/lib/taler-exchange/ @@ -131,7 +136,7 @@ EnvironmentFile=/etc/default/taler-exchange User=${_EUSERNAME} Type=simple Restart=on-failure -ExecStart=/usr/bin/taler-exchange-httpd -c /etc/taler-exchange.conf +ExecStart=/usr/bin/taler-exchange-httpd -c /etc/taler/exchange-service-default.conf PrivateTmp=no PrivateDevices=yes ProtectSystem=full @@ -140,7 +145,7 @@ ProtectSystem=full WantedBy=multi-user.target EOF -cat > "/etc/systemd/system/taler-exchange-secmod-rsa.service" <<EOF + cat >"/etc/systemd/system/taler-exchange-secmod-rsa.service" <<EOF [Unit] Description=GNU Taler payment system exchange RSA security module @@ -149,13 +154,13 @@ EnvironmentFile=/etc/default/taler-exchange User=${_RSECUSERNAME} Type=simple Restart=on-failure -ExecStart=/usr/bin/taler-exchange-secmod-rsa -c /etc/taler-secmod.conf +ExecStart=/usr/bin/taler-exchange-secmod-rsa -c /etc/taler/exchange-service-default.conf PrivateTmp=no PrivateDevices=yes ProtectSystem=full EOF -cat > "/etc/systemd/system/taler-exchange-secmod-eddsa.service" <<EOF + cat >"/etc/systemd/system/taler-exchange-secmod-eddsa.service" <<EOF [Unit] Description=GNU Taler payment system exchange EdDSA security module @@ -164,13 +169,13 @@ EnvironmentFile=/etc/default/taler-exchange User=${_ESECUSERNAME} Type=simple Restart=on-failure -ExecStart=/usr/bin/taler-exchange-secmod-eddsa -c /etc/taler-secmod.conf +ExecStart=/usr/bin/taler-exchange-secmod-eddsa -c /etc/taler/exchange-service-default.conf PrivateTmp=no PrivateDevices=yes ProtectSystem=full EOF -cat > "/etc/systemd/system/taler-exchange-wirewatch.service" <<EOF + cat >"/etc/systemd/system/taler-exchange-wirewatch.service" <<EOF [Unit] Description=GNU Taler payment system exchange wirewatch service After=network.target @@ -180,14 +185,14 @@ EnvironmentFile=/etc/default/taler-exchange User=${_WIREUSERNAME} Type=simple Restart=on-failure -ExecStart=/usr/bin/taler-exchange-wirewatch -c /etc/taler-wire.conf +ExecStart=/usr/bin/taler-exchange-wirewatch -c /etc/taler/exchange-service-wire.conf PrivateTmp=yes PrivateDevices=yes ProtectSystem=full EOF -cat > "/etc/systemd/system/taler-exchange-transfer.service" <<EOF + cat >"/etc/systemd/system/taler-exchange-transfer.service" <<EOF [Unit] Description=GNU Taler payment system exchange transfer service After=network.target @@ -197,13 +202,13 @@ EnvironmentFile=/etc/default/taler-exchange User=${_WIREUSERNAME} Type=simple Restart=on-failure -ExecStart=/usr/bin/taler-exchange-wirewatch -c /etc/taler-wire.conf +ExecStart=/usr/bin/taler-exchange-wirewatch -c /etc/taler/exchange-service-wire.conf PrivateTmp=yes PrivateDevices=yes ProtectSystem=full EOF -cat > "/etc/systemd/system/taler-exchange-aggregator.service" <<EOF + cat >"/etc/systemd/system/taler-exchange-aggregator.service" <<EOF [Unit] Description=GNU Taler payment system exchange aggregator service @@ -212,7 +217,7 @@ EnvironmentFile=/etc/default/taler-exchange User=${_AGGRUSERNAME} Type=simple Restart=on-failure -ExecStart=/usr/bin/taler-exchange-aggregator -c /etc/taler.conf +ExecStart=/usr/bin/taler-exchange-aggregator -c /etc/taler/exchange-service-default.conf PrivateTmp=yes PrivateDevices=yes ProtectSystem=full @@ -220,42 +225,42 @@ ProtectSystem=full EOF - cp -f "${CONFIG_NEW}" "${CONFIG_FILE}" - rm -f "${CONFIG_NEW}" - echo " done." + cp -f "${CONFIG_NEW}" "${CONFIG_FILE}" + rm -f "${CONFIG_NEW}" + echo " done." - echo -n "Setting up system services " + echo -n "Setting up system services " - mkdir -p /var/lib/taler-exchange/tmp - chown root:${_GROUPNAME} /var/lib/taler-exchange/tmp - chmod 770 /var/lib/taler-exchange/tmp - chmod +s /var/lib/taler-exchange/tmp + mkdir -p /var/lib/taler-exchange/tmp + chown root:${_GROUPNAME} /var/lib/taler-exchange/tmp + chmod 770 /var/lib/taler-exchange/tmp + chmod +s /var/lib/taler-exchange/tmp - chown root:${_GROUPNAME} /etc/taler-secmod.conf - chmod 640 /etc/taler-secmod.conf - chown ${_WIREUSERNAME}:root /etc/taler-wire.conf - chmod 460 /etc/taler-wire.conf - chown root:${_DBGROUPNAME} /etc/taler-exchange-db.conf - chmod 640 /etc/taler-exchange-db.conf - chown ${_EUSERNAME}:${_GROUPNAME} /etc/taler-exchange.conf - chmod 460 /etc/taler-wire.conf + fixperm ${_WIREUSERNAME}:root 460 /etc/taler/exchange-wire-gateway.conf + fixperm root:${_DBGROUPNAME} 640 /etc/taler/exchange-db.conf - systemctl daemon-reload >/dev/null 2>&1 || true + systemctl daemon-reload >/dev/null 2>&1 || true + echo "done." - echo "done." + echo -n "Linking config files" + lncfg ${_EUSERNAME} /etc/taler/exchange-service-default.conf + lncfg ${_RSECUSERNAME} /etc/taler/exchange-service-default.conf + lncfg ${_ESECUSERNAME} /etc/taler/exchange-service-default.conf + lncfg ${_AGGRUSERNAME} /etc/taler/exchange-service-default.conf + lncfg ${_WIREUSERNAME} /etc/taler/exchange-service-wire.conf + echo " done" - # Cleaning - echo "All done." - ;; + # Cleaning + echo "All done." + ;; - abort-upgrade|abort-remove|abort-deconfigure) - ;; +abort-upgrade | abort-remove | abort-deconfigure) ;; - *) - echo "postinst called with unknown argument \`${1}'" >&2 - exit 1 - ;; +*) + echo "postinst called with unknown argument \`${1}'" >&2 + exit 1 + ;; esac #DEBHELPER# |