#!/bin/sh DGID="email" DHOME="/home/email" QHOME="/var/qmail" # Check if we're root. if [ "$UID" != "0" ]; then echo "Error: Must be root" exit 1 fi # Check for omitted params if [ -z "$1" ]; then echo "Usage: `basename $0` newdomain.com" exit 1 fi # Check if this domain already exists in virtualdomains. if [ -f $QHOME/control/virtualdomains ]; then if egrep -q "^$1:" $QHOME/control/virtualdomains; then echo "Error: Domain $1 exists" exit 1 fi fi NEWDOM=$1 BASEUSER=`echo $NEWDOM | sed 's/\./_/g'` echo -n "Base Username [$BASEUSER]: " read REPLY if test ! -z $REPLY; then BASEUSER=$REPLY; fi # Check if we already have this baseuser. Loop if necessary. while egrep -q "^$BASEUSER:" /etc/passwd; do echo "Base username $BASEUSER already exists. Please provide another." echo -n "Base Username [$BASEUSER]: " read REPLY if test $REPLY; then BASEUSER=$REPLY; fi done echo "Creating new domain '$NEWDOM'." UFLAGS="-d $DHOME/$NEWDOM -g $DGID -m" useradd $UFLAGS $BASEUSER echo "Domain base user created in $DHOME/$NEWDOM." echo "Please provide domain password for VmailMgr." passwd $BASEUSER echo -n "Adding domain to control/virtualdomains..." echo "$NEWDOM:$BASEUSER" >> $QHOME/control/virtualdomains echo "done" echo -n "Adding records to control/rcpthosts..." echo "$NEWDOM" >> $QHOME/control/rcpthosts echo "done" echo "Setting up the domain dir for vmailmgr..." su $BASEUSER -c "/usr/local/bin/vsetup" echo "...done" echo -n "Restarting Qmail..." killall qmail-lspawn killall qmail-send $QHOME/rc & echo echo "All done! Domain $NEWDOM created."