Hello,
I wrote a small script for userconf (part of linuxconf, the
redhat-system-manager), which will update some qmail-entries each time a
user is created/deleted.
What it'll do:
- create/delete a new entry in /var/qmail/users/mailnames to automatically 
  send redirect mail for [EMAIL PROTECTED] to the useraccount
- create/delete an entry in .qmail-alle (may be changed) for messages to 
  all users of the machine.
- create/delete a link from $HOME/Mailbox to /var/spool/mail/$USER for older
  pop/imap/mail-clients

To install:
- copy somewhere, make a link from useradd.local to userdel.local
- configure userconf to execute user(add|del).local after creating/deleting
  an account


Any comments are welcome!

Regards
Mirko
#!/bin/sh
. /usr/lib/linuxconf/lib/accountcmd.sh
PATH="/var/qmail/bin:$PATH"
mCMD="$(basename $0)"
HOMEDIR="/$HOMEDIR"
ALIAS_ALL=/var/qmail/alias/.qmail-alle
F_ASSIGN=/var/qmail/users/assign
F_MAILNS=/var/qmail/users/mailnames
F_PASSWD=/etc/passwd
NAME_ALIAS=$(echo "$NAME" | sed 's/\ /\./')
{
        case "$mCMD" in
                useradd.local)
                        echo "      ""Create alias: $NAME_ALIAS -> $USERID"
                        echo "$USERID:$USERID:$NAME_ALIAS" >> $F_MAILNS
                        echo "      ""Create $ALIAS_ALL-entry: $USERID"
                        echo $USERID >> $ALIAS_ALL
                        echo "      ""Create link $HOMEDIR/Mailbox -> 
/var/spool/mail/$USERID"
                        ln -sf $HOMEDIR/Mailbox /var/spool/mail/$USERID
                        chown alias.nofiles $ALIAS_PATH/.*
                        ;;
                userdel.local)
                        echo "      ""Delete alias: $NAME_ALIAS"
                        sed '/^'$USERID':/d' $F_MAILNS > $F_MAILNS.tmp && {
                                cp -f $F_MAILNS.tmp $F_MAILNS
                                rm -f $F_MAILNS.tmp
                        }
                        echo "      ""Delete $ALIAS_ALL-entry: $USERID"
                        sed '/^'"$USERID"'$/d' $ALIAS_ALL > $ALIAS_ALL.tmp && {
                                cp -f $ALIAS_ALL.tmp $ALIAS_ALL
                                rm -f $ALIAS_ALL.tmp
                        }
                        echo "      ""Delete mail-link /var/spool/mail/$USERID"
                        rm -f /var/spool/mail/$USERID
                        ;;
        esac
        qmail-pw2u < $F_PASSWD > $F_ASSIGN
        qmail-newu
}
exit 0

Reply via email to