From ecee28e6852d1b81ee6a439723442f513a7d5cff Mon Sep 17 00:00:00 2001 From: john Date: Fri, 6 Dec 2019 08:50:17 -0500 Subject: [PATCH] Improved installation --- Makefile | 3 ++- install.sh | 47 ++++++++++++++++++++++++++--------------------- 2 files changed, 28 insertions(+), 22 deletions(-) diff --git a/Makefile b/Makefile index d1dbd65..e773eb2 100644 --- a/Makefile +++ b/Makefile @@ -20,6 +20,7 @@ src := \ ez_es.c \ ez_libc.c \ ez_libdb.c \ + ez_libpthread.c \ ez_libz.c \ iptables.c \ logType.c \ @@ -79,7 +80,7 @@ install : release @[ $(install_dir)_foo = _foo ] || cp release/ban2fail $(install_dir)/ @strip release/fsckdns @[ $(install_dir)_foo = _foo ] || cp release/fsckdns $(install_dir)/ - @[ -e install.sh ] && INSTALLDIR=$(install_dir) INSTALLTYPE=$(install_type) ./install.sh + @[ -e install.sh ] && INSTALLDIR=$(install_dir) INSTALLTYPE=$(install_type) sudo ./install.sh uninstall : clean : $(RM) -r $(versions) core *.bak *.tab.h *.tab.c *.yy.c *.yy.h diff --git a/install.sh b/install.sh index 1dfd7b2..97c6aa8 100755 --- a/install.sh +++ b/install.sh @@ -2,6 +2,11 @@ set -u +if [[ $(id -u) != 0 ]]; then + echo 'This script must be run as root!' + exit 1 +fi + BINDIR=/usr/local/bin CONFDIR=/etc/ban2fail OTHERDIR=/usr/local/share/ban2fail @@ -17,38 +22,38 @@ LOCKDIR=/run/lock/ban2fail TEST_LOCKDIR=${LOCKDIR}-test # Make sure directories exist with correct ownership & mode -[[ -e $OTHERDIR ]] || sudo mkdir $OTHERDIR -sudo chmod 2755 $OTHERDIR -sudo chown .adm $OTHERDIR +[[ -e $OTHERDIR ]] || mkdir $OTHERDIR +chmod 2755 $OTHERDIR +chown .adm $OTHERDIR -[[ -e $CONFDIR ]] || sudo mkdir $CONFDIR -sudo chmod 2750 $CONFDIR -sudo chown .adm $CONFDIR +[[ -e $CONFDIR ]] || mkdir $CONFDIR +chmod 2750 $CONFDIR +chown .adm $CONFDIR # TODO: substitute correct hostname in config -[[ -e $CONFDIR/$CONF ]] || sudo cp $CONF $CONFDIR +[[ -e $CONFDIR/$CONF ]] || cp $CONF $CONFDIR -[[ -e $BINDIR ]] || sudo mkdir $BINDIR +[[ -e $BINDIR ]] || mkdir $BINDIR # No need for debugging symbols in binary strip release/$BIN -sudo cp -f release/$BIN $BINDIR/ -sudo chown .adm $BINDIR/$BIN +cp -f release/$BIN $BINDIR/ +chown .adm $BINDIR/$BIN # Need suid bit so non-root can run iptables -sudo chmod 4755 $BINDIR/$BIN +chmod 4755 $BINDIR/$BIN chmod +x $SVCSH -sudo cp -f $SVCSH $OTHERDIR/ +cp -f $SVCSH $OTHERDIR/ -systemctl status ban2fail &>/dev/null && sudo systemctl stop ban2fail +systemctl status ban2fail &>/dev/null && systemctl stop ban2fail # Clean out cache and lockfiles -[[ -e $CACHEDIR ]] && sudo rm -r $CACHEDIR -[[ -e $TEST_CACHEDIR ]] && sudo rm -r $TEST_CACHEDIR -[[ -e $LOCKDIR ]] && sudo rm -r $LOCKDIR -[[ -e $TEST_LOCKDIR ]] && sudo rm -r $TEST_LOCKDIR -sudo cp $SVC $SVCDIR/ -sudo systemctl daemon-reload -sudo systemctl start ban2fail -sudo systemctl enable ban2fail +[[ -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 echo "Installation completed successfully" systemctl status ban2fail