Hallo LaMont,

* LaMont Jones schrieb [13-08-06 18:24]:
> On Sun, Aug 13, 2006 at 04:00:29PM +0200, Udo Mueller wrote:
> > Patch attached but does not suppress any messages.
> 
> Please send me a copy of /etc/postfix/postfix-script.

Attached

Mit freundlichen Grüßen

Udo Müller

-- 
ComputerService Udo Müller              Tel.: 0441-36167578
Schöllkrautweg 16                       Fax.: 0441-36167579
26135 Oldenburg       [EMAIL PROTECTED]     Mobil: 0162-4365411
#!/bin/sh

#++
# NAME
#       postfix-script 1
# SUMMARY
#       execute Postfix administrative commands
# SYNOPSIS
#       \fBpostfix-script\fR \fIcommand\fR
# DESCRIPTION
#       The \fBpostfix-script\fR script executes Postfix administrative
#       commands in an environment that is set up by the \fBpostfix\fR(1)
#       command.
# SEE ALSO
#       master(8) Postfix master program
#       postfix(1) Postfix administrative interface
# LICENSE
# .ad
# .fi
#       The Secure Mailer license must be distributed with this software.
# AUTHOR(S)
#       Wietse Venema
#       IBM T.J. Watson Research
#       P.O. Box 704
#       Yorktown Heights, NY 10598, USA
#--

# Avoid POSIX death due to SIGHUP when some parent process exits.

trap '' 1

case $daemon_directory in
"") echo This script must be run by the postfix command. 1>&2
    echo Do not run directly. 1>&2
    exit 1
esac

LOGGER="$command_directory/postlog -t $MAIL_LOGTAG/postfix-script"
INFO="$LOGGER -p info"
WARN="$LOGGER -p warn"
ERROR="$LOGGER -p error"
FATAL="$LOGGER -p fatal"
PANIC="$LOGGER -p panic"

umask 022
SHELL=/bin/sh

#
# Can't do much without these in place.
#
cd $command_directory || {
        $FATAL no Postfix command directory $command_directory!
        exit 1
}
cd $daemon_directory || {
        $FATAL no Postfix daemon directory $daemon_directory!
        exit 1
}
test -f master || {
        $FATAL no Postfix master program $daemon_directory/master!
        exit 1
}
cd $config_directory || {
        $FATAL no Postfix configuration directory $config_directory!
        exit 1
}
cd $queue_directory || {
        $FATAL no Postfix queue directory $queue_directory!
        exit 1
}

#
# Parse JCL
#
case $1 in

start_msg)

        echo "Start postfix"
        ;;

stop_msg)

        echo "Stop postfix"
        ;;

start)

        $daemon_directory/master -t 2>/dev/null || {
                $FATAL the Postfix mail system is already running
                exit 1
        }
        if [ -f $queue_directory/quick-start ]
        then
                rm -f $queue_directory/quick-start
        else
                $config_directory/postfix-script check-fatal || {
                        $FATAL Postfix integrity check failed!
                        exit 1
                }
                # Foreground this so it can be stopped. All inodes are cached.
                $config_directory/postfix-script check-warn
        fi
        $INFO starting the Postfix mail system
        $daemon_directory/master &
        ;;

drain)

        $daemon_directory/master -t 2>/dev/null && {
                $FATAL the Postfix mail system is not running
                exit 1
        }
        $INFO stopping the Postfix mail system
        kill -9 `sed 1q pid/master.pid`
        ;;

quick-stop)

        $config_directory/postfix-script stop
        touch $queue_directory/quick-start
        ;;

stop)

        $daemon_directory/master -t 2>/dev/null && {
                $FATAL the Postfix mail system is not running
                exit 1
        }
        $INFO stopping the Postfix mail system
        kill `sed 1q pid/master.pid`
        ;;

abort)

        $daemon_directory/master -t 2>/dev/null && {
                $FATAL the Postfix mail system is not running
                exit 1
        }
        $INFO aborting the Postfix mail system
        kill `sed 1q pid/master.pid`
        ;;

reload)

        $daemon_directory/master -t 2>/dev/null && {
                $FATAL the Postfix mail system is not running
                exit 1
        }
        $INFO refreshing the Postfix mail system
        $command_directory/postsuper active || exit 1
        kill -HUP `sed 1q pid/master.pid`
        $command_directory/postsuper &
        ;;

flush)

        cd $queue_directory || {
                $FATAL no Postfix queue directory $queue_directory!
                exit 1
        }
        $command_directory/postqueue -f
        ;;

check)

        $config_directory/postfix-script check-fatal || exit 1
        $config_directory/postfix-script check-warn
        exit 0
        ;;

check-fatal)
        # This command is NOT part of the public interface.

        $SHELL $config_directory/post-install create-missing || {
                $WARN unable to create missing queue directories
                exit 1
        }

        # Look for incomplete installations.

        test -f $config_directory/master.cf || {
                $FATAL no $config_directory/master.cf file found
                exit 1
        }

        # See if all queue files are in the right place. This is slow.
        # We must scan all queues for mis-named queue files before the
        # mail system can run.

        $command_directory/postsuper || exit 1
        exit 0
        ;;

check-warn)
        # This command is NOT part of the public interface.

        for dir in $daemon_directory $config_directory $queue_directory
        do
                ls -lLd $dir | (grep " root " >/dev/null ||
                    $WARN not owned by root: $dir)
        done

        find $daemon_directory/* $config_directory/* ! -user root \
                -exec $WARN not owned by root: {} \;

        find $daemon_directory/. $config_directory/. \
                \( -perm -020 -o -perm -002 \) -type f \
                -exec $WARN group or other writable: {} \;

        find `ls -d $queue_directory/* | \
            egrep 
'/(incoming|active|defer|deferred|bounce|hold|trace|corrupt|public|private|flush)$'`
 \
            ! \( -type p -o -type s \) ! -user $mail_owner \
                -exec $WARN not owned by $mail_owner: {} \;

        find $queue_directory/public $queue_directory/maildrop \
            $command_directory/postqueue $command_directory/postdrop \
            -prune ! -group $setgid_group \
            -exec $WARN not owned by group $setgid_group: {} \;

        find $command_directory/postqueue $command_directory/postdrop \
            -prune ! -perm -02111 \
            -exec $WARN not set-gid or not owner+group+world executable: {} \;

        for name in `ls -d $queue_directory/* | \
            egrep '/(bin|etc|lib|usr)$'` ; \
        do \
            find $name ! -user root \
                -exec $WARN not owned by root: {} \; ; \
        done

        # WARNING: this should not descend into the maildrop directory.
        # maildrop is the least trusted Postfix directory.

        find $queue_directory/maildrop/. -prune ! -user $mail_owner \
            -exec $WARN not owned by $mail_owner: $queue_directory/maildrop \;

        for dir in bin etc lib sbin usr
        do
                test -d $dir && find $dir -type f -print | while read path
                do
                        test -f /$path && {
                            cmp -s $path /$path || 
                                $WARN $queue_directory/$path and /$path differ
                        }
                done
        done

        find corrupt -type f -exec $WARN damaged message: {} \;

        # XXX also: look for weird stuff, weird permissions, etc.

        test -f /usr/sbin/sendmail -a -f /usr/lib/sendmail && {
            cmp -s /usr/sbin/sendmail /usr/lib/sendmail || {
                $WARN /usr/lib/sendmail and /usr/sbin/sendmail differ
                $WARN Replace one by a symbolic link to the other
            }
        }
        exit 0
        ;;

set-permissions|upgrade-configuration)
        $config_directory/post-install create-missing "$@"
        ;;

post-install)
        # Currently not part of the public interface.
        shift
        $config_directory/post-install "$@"
        ;;

/*)
        # Currently not part of the public interface.
        "$@"
        ;;

*)

        $FATAL "usage: postfix start (or stop, reload, abort, flush, check, 
set-permissions, upgrade-configuration)"
        exit 1
        ;;

esac

Attachment: signature.asc
Description: Digital signature

Reply via email to