77 lines
2.0 KiB
Bash
77 lines
2.0 KiB
Bash
#!/bin/sh
|
|
# preinst script for fail2ban-p2p
|
|
#
|
|
# see: dh_installdeb(1)
|
|
|
|
set -e
|
|
|
|
# summary of how this script can be called:
|
|
# * <new-preinst> `install'
|
|
# * <new-preinst> `install' <old-version>
|
|
# * <new-preinst> `upgrade' <old-version>
|
|
# * <old-preinst> `abort-upgrade' <new-version>
|
|
# for details, see http://www.debian.org/doc/debian-policy/ or
|
|
# the debian-policy package
|
|
|
|
|
|
case "$1" in
|
|
install|upgrade)
|
|
# see http://www.debian.org/doc/manuals/securing-debian-howto/ch9.en.html
|
|
# Sane defaults:
|
|
[ -z "$SERVER_HOME" ] && SERVER_HOME="/var/run/fail2ban-p2p"
|
|
[ -z "$SERVER_USER" ] && SERVER_USER="fail2ban-p2p"
|
|
[ -z "$SERVER_NAME" ] && SERVER_NAME="Fail2ban-p2p user"
|
|
[ -z "$SERVER_GROUP" ] && SERVER_GROUP="fail2ban-p2p"
|
|
|
|
# create user
|
|
# 1. create group if not existing
|
|
if ! getent group | grep -q "^$SERVER_GROUP:" ; then
|
|
echo -n "Adding group $SERVER_GROUP.."
|
|
addgroup --quiet --system $SERVER_GROUP 2>/dev/null ||true
|
|
echo "..done"
|
|
fi
|
|
# 2. create homedir if not existing
|
|
test -d $SERVER_HOME || mkdir $SERVER_HOME
|
|
# 3. create user if not existing
|
|
if ! getent passwd | grep -q "^$SERVER_USER:"; then
|
|
echo -n "Adding system user $SERVER_USER.."
|
|
adduser --quiet \
|
|
--system \
|
|
--ingroup $SERVER_GROUP \
|
|
--no-create-home \
|
|
--disabled-password \
|
|
$SERVER_USER 2>/dev/null || true
|
|
echo "..done"
|
|
fi
|
|
# 4. adjust passwd entry
|
|
usermod -c "$SERVER_NAME" \
|
|
-d $SERVER_HOME \
|
|
-g $SERVER_GROUP \
|
|
$SERVER_USER
|
|
# 5. adjust file and directory permissions
|
|
if ! dpkg-statoverride --list $SERVER_HOME >/dev/null
|
|
then
|
|
chown -R $SERVER_USER:adm $SERVER_HOME
|
|
chmod u=rwx,g=rxs,o= $SERVER_HOME
|
|
fi
|
|
# create logfile and make it owned by the user
|
|
test -f /var/log/fail2ban-p2p.log || touch /var/log/fail2ban-p2p.log
|
|
chown $SERVER_USER:adm /var/log/fail2ban-p2p.log > /dev/null
|
|
;;
|
|
|
|
abort-upgrade)
|
|
;;
|
|
|
|
*)
|
|
echo "preinst called with unknown argument \`$1'" >&2
|
|
exit 1
|
|
;;
|
|
esac
|
|
|
|
# dh_installdeb will replace this with shell code automatically
|
|
# generated by other debhelper scripts.
|
|
|
|
#DEBHELPER#
|
|
|
|
exit 0
|