ban2fail/install.sh

61 lines
1.4 KiB
Bash
Raw Normal View History

2019-12-04 03:08:14 +00:00
#!/bin/bash -e
2019-12-04 22:35:27 +00:00
set -u
2019-12-06 13:50:17 +00:00
if [[ $(id -u) != 0 ]]; then
echo 'This script must be run as root!'
exit 1
fi
2019-12-04 03:08:14 +00:00
BINDIR=/usr/local/bin
2019-12-04 22:35:27 +00:00
CONFDIR=/etc/ban2fail
OTHERDIR=/usr/local/share/ban2fail
SVCDIR=/etc/systemd/system
BIN=ban2fail
CONF=ban2fail.cfg
SVC=ban2fail.service
SVCSH=ban2fail.sh
2019-12-05 03:48:50 +00:00
CACHEDIR=/var/cache/ban2fail
TEST_CACHEDIR=${CACHEDIR}-test
LOCKDIR=/run/lock/ban2fail
TEST_LOCKDIR=${LOCKDIR}-test
2019-12-04 22:35:27 +00:00
# Make sure directories exist with correct ownership & mode
2019-12-06 13:50:17 +00:00
[[ -e $OTHERDIR ]] || mkdir $OTHERDIR
chmod 2755 $OTHERDIR
chown .adm $OTHERDIR
2019-12-04 22:35:27 +00:00
2019-12-06 13:50:17 +00:00
[[ -e $CONFDIR ]] || mkdir $CONFDIR
chmod 2750 $CONFDIR
chown .adm $CONFDIR
2019-12-05 03:48:50 +00:00
# TODO: substitute correct hostname in config
2019-12-06 13:50:17 +00:00
[[ -e $CONFDIR/$CONF ]] || cp $CONF $CONFDIR
2019-12-04 22:35:27 +00:00
2019-12-06 13:50:17 +00:00
[[ -e $BINDIR ]] || mkdir $BINDIR
2019-12-04 22:35:27 +00:00
# No need for debugging symbols in binary
strip release/$BIN
2019-12-06 13:50:17 +00:00
cp -f release/$BIN $BINDIR/
chown .adm $BINDIR/$BIN
2019-12-04 22:35:27 +00:00
# Need suid bit so non-root can run iptables
2019-12-06 13:50:17 +00:00
chmod 4755 $BINDIR/$BIN
2019-12-04 03:08:14 +00:00
2019-12-04 22:35:27 +00:00
chmod +x $SVCSH
2019-12-06 13:50:17 +00:00
cp -f $SVCSH $OTHERDIR/
2019-12-04 03:08:14 +00:00
2019-12-06 13:50:17 +00:00
systemctl status ban2fail &>/dev/null && systemctl stop ban2fail
2019-12-05 03:48:50 +00:00
# Clean out cache and lockfiles
2019-12-06 13:50:17 +00:00
[[ -e $CACHEDIR ]] && rm -r $CACHEDIR
[[ -e $TEST_CACHEDIR ]] && rm -r $TEST_CACHEDIR
[[ -e $LOCKDIR ]] && rm -r $LOCKDIR
[[ -e $TEST_LOCKDIR ]] && rm -r $TEST_LOCKDIR
cp $SVC $SVCDIR/
systemctl daemon-reload
systemctl start ban2fail
systemctl enable ban2fail
2019-12-04 03:08:14 +00:00
2019-12-04 22:35:27 +00:00
echo "Installation completed successfully"
2019-12-05 03:48:50 +00:00
systemctl status ban2fail
2019-12-04 03:08:14 +00:00
exit 0