Re: 6.0 RC1 sendmail & Bootproblem ("Recipient names must be specified")

From: Oliver Fromme <olli(at)lurza.secnetix.de>
Date: Fri, 4 Nov 2005 18:33:57 +0100 (CET)

Nicola Tiling <nt(at)w4w.net> wrote:
> Danke für Deine Antwort - hier die rc.conf. M.E. ohne irgenwelche
> Merkwürdigkeiten:

Sieht OK aus. Eine rc.conf.local hast Du nicht, oder?
Und an der defaults/rc.conf hast Du nichts manipuliert,
nicht wahr?

> Noch mal das was ich glaube rausgefunden zu haben: Wenn ein Prozess > (beim
> booten z.B.) in der defaults/rc.conf
> Die Funktion "source_rc_confs" anspricht wurde sendmail aufgerufen. Dies
> auch z.B. von "save-entropy"

Ist klar ... save-entropy (u.a.) ruft source_rc_confs auf.

> - ohne irgendwelche Optionen, so dass sendmail natürlich nach dem
> recipienten meckerte.

Dann ist da auf jeden Fall irgendwo ein Bug.

> defaults/rc.conf
> if [ -z "${source_rc_confs_defined}" ]; then
> source_rc_confs_defined=yes
> source_rc_confs () {

Füge doch hier mal eine Zeile "set -x" ein, und ...

> local i sourced_files
> for i in ${rc_conf_files}; do
> case ${sourced_files} in
> *:$i:*)
> ;;
> *)
> sourced_files="${sourced_files}:$i:"
> if [ -r $i ]; then
> . $i
> fi
> ;;
> esac
> done

hier eine Zeile "set +x".

> }
> fi

Wenn die Anweisungen zwischen "set -x" und "set +x" abgear-
beitet werden, wird jedes Kommando (nach Variablen-Expan-
sion) auf stderr ausgegeben. Das ist zum Debuggen von
Shell-Skripten sehr hilfreich. In diesem Fall wird z.B.
ausgegeben, welche Dateien genau gesourced werden. Dann
sollte eigentlich festgestellt werden können, welche Stelle
genau den sendmail-Aufruf verursacht.

> #! /bin/sh
> LOG="/tmp/sendmail-debug.log"
>
> date >> $LOG

Kleine, allgemeine Bemerkung am Rande (ist nicht an Dich
gerichtet): Sowas sollte in einem Skript, das als root
ausgeführt wird, nicht drinstehen. Eigentlich in _keinem_
Skript. Damit öffnet man nämlich eine Race-Condition, mit
der unprivilegierte Benutzer beliebige Dateien überschrei-
ben können. Entweder verwendet man ein Verzeichnis, das
nicht world-writable ist (also nicht /tmp), oder man legt
die temporäre Datei zumindest mit mktemp(1) an.

Mir ist klar, daß das für den vorliegenden Fall vermutlich
irrelevant ist. Ich wollte es nur erwähnen, damit niemand
sowas in einem anderen Fall nachmacht und sich am nächsten
Tag über ein root-kit auf seinem Rechner erfreut. ;-)

Gruß
   Olli

-- 
Oliver Fromme,  secnetix GmbH & Co. KG, Marktplatz 29, 85567 Grafing
Dienstleistungen mit Schwerpunkt FreeBSD: http://www.secnetix.de/bsd
Any opinions expressed in this message may be personal to the author
and may not necessarily reflect the opinions of secnetix in any way.
I suggested holding a "Python Object Oriented Programming Seminar",
but the acronym was unpopular.
        -- Joseph Strout
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Fri 04 Nov 2005 - 18:34:45 CET

search this site