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 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130
|
#!/bin/sh
# postinst script for x2gobroker-daemon
#
# see: dh_installdeb(1)
set -e
# summary of how this script can be called:
# * <postinst> `configure' <most-recently-configured-version>
# * <old-postinst> `abort-upgrade' <new version>
# * <conflictor's-postinst> `abort-remove' `in-favour' <package>
# <new-version>
# * <postinst> `abort-remove'
# * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
# <failed-install-package> <version> `removing'
# <conflicting-package> <version>
# 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
nscd -i group
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.
#DEBHELPER#
exit 0
|