mirror of
https://github.com/Ponce/slackbuilds
synced 2024-11-07 20:27:02 +01:00
888ec031ac
Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
305 lines
7.9 KiB
Bash
305 lines
7.9 KiB
Bash
#!/bin/sh
|
|
|
|
# Dave Sill, 2003-11-10
|
|
# http://lifewithqmail.org/inst_check
|
|
|
|
# set to n if you're not running a pop3 server, y if you are
|
|
CHECKPOP=n
|
|
|
|
QMHOME=/var/qmail
|
|
LBIN=/usr/bin
|
|
|
|
OK=1
|
|
|
|
if [ $# -eq 1 ]; then
|
|
if [ "$1" = "-v" ]; then
|
|
VERB=y
|
|
else
|
|
VERB=n
|
|
fi
|
|
fi
|
|
|
|
if [ ! -d $QMHOME ]; then
|
|
echo "! Couldn't find qmail's home directory, $QMHOME!"
|
|
else
|
|
if [ "$VERB" = y ]; then
|
|
echo "$QMHOME exists"
|
|
fi
|
|
for i in alias bin boot control queue supervise users; do
|
|
if [ ! -d $QMHOME/$i ]; then
|
|
echo "! Couldn't find $QMHOME/$i!"
|
|
OK=0
|
|
elif [ "$VERB" = y ]; then
|
|
echo "$QMHOME/$i exists"
|
|
fi
|
|
done
|
|
|
|
if [ ! -f $QMHOME/rc ]; then
|
|
echo "! $QMHOME/rc is missing"
|
|
OK=0
|
|
elif [ ! -x $QMHOME/rc ]; then
|
|
echo "! $QMHOME/rc is not executable"
|
|
echo "...try: chmod 755 $QMHOME/rc"
|
|
OK=0
|
|
elif [ `head -1 $QMHOME/rc|cat -vet` != '#!/bin/sh$' ]; then
|
|
echo "! $QMHOME/rc has bad magic cookie"
|
|
echo "...try: dos2unix $QMHOME/rc"
|
|
OK=0
|
|
elif [ "$VERB" = y ]; then
|
|
echo "$QMHOME/rc is executable and has a valid magic cookie"
|
|
fi
|
|
fi
|
|
|
|
for i in alias qmaild qmaill qmailp qmailq qmailr qmails; do
|
|
grep "^$i:" /etc/passwd >/dev/null
|
|
if [ $? -ne 0 ]; then
|
|
echo "! Couldn't find $i user in /etc/passwd"
|
|
OK=0
|
|
elif [ "$VERB" = y ]; then
|
|
echo "$i user exists"
|
|
fi
|
|
done
|
|
|
|
for i in qmail nofiles; do
|
|
grep "^$i:" /etc/group >/dev/null
|
|
if [ $? -ne 0 ]; then
|
|
echo "! Couldn't find $i group in /etc/group"
|
|
OK=0
|
|
elif [ "$VERB" = y ]; then
|
|
echo "$i group exists"
|
|
fi
|
|
done
|
|
|
|
for i in tcprules tcpserver; do
|
|
if [ ! -x $LBIN/$i ]; then
|
|
echo "! Couldn't find $LBIN/$i from ucspi-tcp"
|
|
OK=0
|
|
elif [ "$VERB" = y ]; then
|
|
echo "$i from ucspi-tcp is installed"
|
|
fi
|
|
done
|
|
|
|
for i in multilog softlimit setuidgid supervise svok svscan tai64nlocal; do
|
|
if [ ! -x $LBIN/$i ]; then
|
|
echo "! Couldn't find $LBIN/$i from daemontools"
|
|
OK=0
|
|
elif [ "$VERB" = y ]; then
|
|
echo "$i from daemontools is installed"
|
|
fi
|
|
done
|
|
|
|
if [ ! -d /service ]; then
|
|
echo "! /service directory is missing"
|
|
OK=0
|
|
elif [ "$VERB" = y ]; then
|
|
echo "/service directory exists"
|
|
fi
|
|
|
|
if [ -f /etc/inittab ]; then
|
|
grep "^SV" /etc/inittab >/dev/null
|
|
if [ $? -ne 0 ]; then
|
|
echo "! Couldn't find SV entry in inittab"
|
|
OK=0
|
|
elif [ "$VERB" = y ]; then
|
|
echo "svscan /service is configured to run via /etc/inittab"
|
|
fi
|
|
PS="ps -ef"
|
|
else
|
|
grep "svscanboot" /etc/rc.local >/dev/null
|
|
if [ $? -ne 0 ]; then
|
|
echo "! Couldn't find 'csh -cf '/command/svscanboot &' in /etc/rc.local"
|
|
OK=0
|
|
elif [ "$VERB" = y ]; then
|
|
echo "/command/svscanboot is configured to run via /etc/rc.local"
|
|
fi
|
|
PS="ps -waux"
|
|
fi
|
|
|
|
SVRUN=`$PS | grep "svscan /service" | grep -v grep`
|
|
if [ -z "$SVRUN" ]; then
|
|
echo "'! svscan /service' doesn't seem to be running"
|
|
OK=0
|
|
elif [ "$VERB" = y ]; then
|
|
echo "svscan /service is running"
|
|
fi
|
|
|
|
if [ ! -f $QMHOME/control/defaultdelivery ]; then
|
|
echo "! Couldn't find $QMHOME/control/defaultdelivery"
|
|
OK=0
|
|
elif [ ! -s $QMHOME/control/defaultdelivery ]; then
|
|
echo "! $QMHOME/control/defaultdelivery is empty"
|
|
OK=0
|
|
elif [ "$VERB" = y ]; then
|
|
echo "$QMHOME/control/defaultdelivery looks OK"
|
|
fi
|
|
|
|
if [ ! -f $QMHOME/bin/qmailctl ]; then
|
|
echo "! $QMHOME/bin/qmailctl is missing"
|
|
OK=0
|
|
elif [ ! -s $QMHOME/bin/qmailctl ]; then
|
|
echo "! $QMHOME/bin/qmailctl is empty"
|
|
OK=0
|
|
elif [ `head -1 $QMHOME/bin/qmailctl|cat -vet` != '#!/bin/sh$' ]; then
|
|
echo "! $QMHOME/bin/qmailctl has bad magic cookie"
|
|
echo "...try: dos2unix $QMHOME/bin/qmailctl"
|
|
OK=0
|
|
elif [ ! -x $QMHOME/bin/qmailctl ]; then
|
|
echo "! $QMHOME/bin/qmailctl is not executable"
|
|
echo "...try: chmod 755 $QMHOME/bin/qmailctl"
|
|
OK=0
|
|
elif [ "$VERB" = y ]; then
|
|
echo "$QMHOME/bin/qmailctl looks OK"
|
|
fi
|
|
if [ ! -L /usr/bin/qmailctl ]; then
|
|
echo "! /usr/bin/qmailctl is missing"
|
|
echo "...try: ln -s $QMHOME/bin/qmailctl /usr/bin"
|
|
OK=0
|
|
elif [ "$VERB" = y ]; then
|
|
echo "/usr/bin/qmailctl exists"
|
|
fi
|
|
|
|
SVCDIRS="qmail-send qmail-send/log qmail-smtpd qmail-smtpd/log"
|
|
if [ "$CHECKPOP" = "y" ]; then
|
|
SVCDIRS="$SVCDIRS qmail-pop3d qmail-pop3d/log"
|
|
fi
|
|
for i in $SVCDIRS; do
|
|
if [ ! -f $QMHOME/supervise/$i/run ]; then
|
|
echo "! $QMHOME/supervise/$i/run file is missing"
|
|
OK=0
|
|
elif [ `head -1 $QMHOME/supervise/$i/run|cat -vet` != '#!/bin/sh$' ]; then
|
|
echo "! $QMHOME/supervise/$i/run has bad magic cookie"
|
|
echo "...try: dos2unix $QMHOME/supervise/$i/run"
|
|
OK=0
|
|
elif [ ! -x $QMHOME/supervise/$i/run ]; then
|
|
echo "! $QMHOME/supervise/$i/run file is not executable"
|
|
OK=0
|
|
elif [ "$VERB" = y ]; then
|
|
echo "$QMHOME/supervise/$i/run looks OK"
|
|
fi
|
|
done
|
|
|
|
if [ ! -f $QMHOME/control/concurrencyincoming ]; then
|
|
echo "! $QMHOME/control/concurrencyincoming is missing"
|
|
echo "...try: echo 20 >$QMHOME/control/concurrencyincoming"
|
|
OK=0
|
|
elif [ "$VERB" = y ]; then
|
|
echo "$QMHOME/control/concurrencyincoming looks OK"
|
|
fi
|
|
|
|
LOGDIRS="/var/log/qmail /var/log/qmail/smtpd"
|
|
if [ "$CHECKPOP" = "y" ]; then
|
|
LOGDIRS="$LOGDIRS /var/log/qmail/pop3d"
|
|
fi
|
|
for i in $LOGDIRS; do
|
|
if [ ! -d $i ]; then
|
|
echo "! $i is missing"
|
|
echo "...try: mkdir -p $i"
|
|
OK=0
|
|
elif [ "`ls -ld $i|awk '{print $3}'`" != "qmaill" ]; then
|
|
echo "! $i has wrong owner, should be qmaill"
|
|
echo "...try: chown qmaill $i"
|
|
OK=0
|
|
elif [ "`ls -ld $i|awk '{print $1}'`" != "drwxr-xr-x" ]; then
|
|
echo "! $i has wrong mode, should be 755"
|
|
echo "...try: chmod 755 $i"
|
|
OK=0
|
|
elif [ "$VERB" = y ]; then
|
|
echo "$i looks OK"
|
|
fi
|
|
done
|
|
|
|
SVCLINKS="/service/qmail-send /service/qmail-smtpd"
|
|
if [ "$CHECKPOP" = "y" ]; then
|
|
SVCLINKS="$SVCLINKS /service/qmail-pop3d"
|
|
fi
|
|
for i in $SVCLINKS; do
|
|
if [ ! -L $i ]; then
|
|
echo "! $i is missing"
|
|
echo "...try: ln -s $QMHOME$i $i"
|
|
OK=0
|
|
elif [ "$VERB" = y ]; then
|
|
echo "$i exists"
|
|
fi
|
|
done
|
|
|
|
if [ ! -f /etc/tcp.smtp ]; then
|
|
echo "! /etc/tcp.smtp is missing"
|
|
echo "...try: echo '127.:allow,RELAYCLIENT=\"\"' >>/etc/tcp.smtp"
|
|
OK=0
|
|
elif [ "$VERB" = y ]; then
|
|
echo "/etc/tcp.smtp exists"
|
|
fi
|
|
|
|
if [ ! -f /etc/tcp.smtp.cdb ]; then
|
|
echo "! /etc/tcp.smtp.cdb is missing"
|
|
echo "...try: $QMHOME/bin/qmailctl cdb"
|
|
OK=0
|
|
elif [ "$VERB" = y ]; then
|
|
echo "/etc/tcp.smtp.cdb exists"
|
|
fi
|
|
|
|
AHOME=`grep "^alias:" /etc/passwd | awk -F: '{print $6}'`
|
|
if [ -z "$AHOME" ]; then
|
|
echo "! Couldn't find user alias's home directory"
|
|
OK=0
|
|
else
|
|
for i in root postmaster mailer-daemon; do
|
|
if [ ! -f $AHOME/.qmail-$i ]; then
|
|
echo "! Alias for $i is missing"
|
|
echo "...try: echo me >$AHOME/.qmail-$i"
|
|
OK=0
|
|
elif [ "$VERB" = y ]; then
|
|
echo "$i alias exists"
|
|
fi
|
|
done
|
|
fi
|
|
|
|
if netstat -a | grep smtp | grep -i listen >/dev/null; then
|
|
if $PS | grep sendmail | grep -v grep >/dev/null; then
|
|
echo "! Sendmail is still running"
|
|
echo "...try: $RCDIR/init.d/sendmail stop"
|
|
OK=0
|
|
elif $LBIN/svok /service/qmail-smtpd; then
|
|
if [ "$VERB" = y ]; then
|
|
echo "/service/qmail-smtpd is running"
|
|
fi
|
|
else
|
|
echo "! Something is listening on port 25 (not tcpserver/qmail-smtpd)"
|
|
echo "...try: disabling current MTA"
|
|
OK=0
|
|
fi
|
|
fi
|
|
|
|
if [ "$CHECKPOP" = "y" ]; then
|
|
if netstat -a | grep pop | grep -i listen >/dev/null; then
|
|
if $LBIN/svok /service/qmail-pop3d; then
|
|
if [ "$VERB" = y ]; then
|
|
echo "/service/qmail-pop3d is running"
|
|
fi
|
|
else
|
|
echo "! Something is listening on port 110 (not tcpserver/qmail-pop3d)"
|
|
echo "...try: disabling other POP server"
|
|
OK=0
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
for i in /usr/lib/sendmail /usr/sbin/sendmail; do
|
|
if [ -f $i -a ! -L $i ]; then
|
|
echo "! $i is a file, should be a link"
|
|
echo "...try: uninstalling current MTA or: mv $i $i.old; ln -s $QMHOME/bin/sendmail $i"
|
|
OK=0
|
|
elif [ ! -f $i ];then
|
|
echo "! $i is missing"
|
|
echo "...try: ln -s $QMHOME/bin/sendmail $i"
|
|
OK=0
|
|
elif [ "$VERB" = y ]; then
|
|
echo "$i exists"
|
|
fi
|
|
done
|
|
|
|
if [ $OK -eq 1 ]; then
|
|
echo "Congratulations, your LWQ installation looks good!"
|
|
elif [ "$VERB" = y ]; then
|
|
echo "! Potential problems were found with your LWQ installation"
|
|
fi
|