#!/bin/sh # postinst script for x2gobroker-daemon # # see: dh_installdeb(1) set -e # summary of how this script can be called: # * `configure' # * `abort-upgrade' # * `abort-remove' `in-favour' # # * `abort-remove' # * `abort-deconfigure' `in-favour' # `removing' # # for details, see http://www.debian.org/doc/debian-policy/ or # the debian-policy package . /usr/share/debconf/confmodule case "$1" in configure) # setup user/group x2gobroker if ! getent group x2gobroker 1>/dev/null; then echo "Creating x2gobroker group." 1>&2 addgroup --system x2gobroker else echo "Group x2gobroker already exists." 1>&2 fi if ! getent passwd x2gobroker 1>/dev/null; then echo "Creating x2gobroker user." 1>&2 adduser --system \ --disabled-password --disabled-login \ --shell /bin/bash --group --home /var/lib/x2gobroker x2gobroker else echo "User x2gobroker already exists." 1>&2 # make sure the home directory exists belongs to x2gobroker:x2gobroker mkdir -p /var/lib/x2gobroker chown x2gobroker:x2gobroker /var/lib/x2gobroker -f # make sure all settings are appropriate if getent passwd x2gobroker | grep /dev/null 1>/dev/null 2>/dev/null; then usermod --home /var/lib/x2gobroker x2gobroker fi if getent passwd x2gobroker | grep /bin/false 1>/dev/null 2>/dev/null; then usermod --shell /bin/bash x2gobroker fi fi db_get x2gobroker-ssh/create-group && create_group=$RET db_get x2gobroker-ssh/use-existing-group && use_existing_group=$RET db_get x2gobroker-ssh/last-group-x2gobroker-users && last_group=$(echo $RET | cut -d" " -f1) db_get x2gobroker-ssh/group-x2gobroker-users && group=$(echo $RET | cut -d" " -f1) db_get x2gobroker-ssh/del-last-group-x2gobroker-users && del_last_group="$RET" db_get x2gobroker-ssh/manual-setup-required && manual_setup="$RET" if [ "$manual_setup" = "false" ]; then if [ "$create_group" = "true" ] && [ "x$group" != "x" ]; then if echo "$group" | egrep '^[[:digit:]]{1,5}$' 1>/dev/null; then echo "Specified group is a gidNumber, not creating any group." 1>&2 elif ! getent group $group >/dev/null; then echo "Creating $group group." 1>&2 addgroup $group # invalidate group cache before proceeding... if which nscd 1>/dev/null; then if ps -C nscd 1>/dev/null; then nscd -i group fi fi else echo "Group $group already exists." 1>&2 fi fi # the x2gobroker-ssh wrapper needs special permissions for its executable if [ "$group" != "$last_group" ] || [ "$create_group" = "true" ]; then if dpkg-statoverride --list /usr/bin/x2gobroker-ssh 1>/dev/null; then dpkg-statoverride --remove /usr/bin/x2gobroker-ssh fi chown root:root /usr/bin/x2gobroker-ssh chmod 0755 /usr/bin/x2gobroker-ssh if getent group $group 1>/dev/null; then dpkg-statoverride --add --update x2gobroker $group 4550 /usr/bin/x2gobroker-ssh else echo "Group $group does not exist. Resetting file permissions of /usr/bin/x2gobroker-ssh to 0755:root:root." 1>&2 fi if [ "$del_last_group" = "true" ]; then # try to remove the formerly used group for this role, on failure, ignore it if getent group $last_group 1>/dev/null && [ $(getent group $last_group | cut -d ":" -f 3) -ge 500 ] && [ $(getent group $last_group | cut -d ":" -f 1) != "nogroup" ]; then delgroup "$last_group" && echo "Removing Posix group $last_group as requested." db_reset x2gobroker-ssh/del-last-group-x2gobroker-users fi fi fi else if dpkg-statoverride --list /usr/bin/x2gobroker-ssh 1>/dev/null; then dpkg-statoverride --remove /usr/bin/x2gobroker-ssh fi chown root:root /usr/bin/x2gobroker-ssh chmod 0755 /usr/bin/x2gobroker-ssh fi mkdir -p /var/log/x2gobroker && chown x2gobroker:adm /var/log/x2gobroker && chmod 2750 /var/log/x2gobroker touch /var/log/x2gobroker/broker.log && chown x2gobroker:adm /var/log/x2gobroker/broker.log touch /var/log/x2gobroker/error.log && chown x2gobroker:adm /var/log/x2gobroker/error.log ;; abort-upgrade|abort-remove|abort-deconfigure) ;; *) echo "postinst called with unknown argument \`$1'" 1>&2 exit 1 ;; esac # dh_installdeb will replace this with shell code automatically # generated by other debhelper scripts. exit 0