Halihallo Alain
$mailprog = '/usr/sbin/sendmail'; # oder Äquvalente
einfach vom root aus adressieren, sodass das Programm eineindeutig adressiert ist
(also kein lookup in diverse /bin Verzeichnisse stattfinden muss um das Programm zu
"suchen"). Ein "absoluter Pfad" eben...
also dann ist das $ENV{'PATH'} = '/bin:/usr/sbin/';
auch ok jedefalls funktionierts so auch im taint modus.
Das wiederspricht sich mit der Erklärung, die du gepostet hast. Dein oben genanntes
Beispiel definiert den Search-Path als entweder /bin oder /usr/sbin, somit könnte ein
Programm ohne absolute Pfadadressierung (z.B. über "./program" statt "program") in
zwei Verzeichnissen gefunden werden. Die verlinkte Ressource besagt, dass ein Programm
aber eineindeutig adressiert sein muss, da sonst eine von mehreren Versionen gefunden
werden kann, welche eben nicht "sicher" ist.
Beispiel:
$ENV{PATH} = '/bin:/usr/sbin';
system('try.pl')
sucht zuerst in /bin, dann in /usr/sbin. Wenn du dein try.pl in /usr/sbin erstellt hast,
dann aber ein anderer user ein try.pl in /bin ablegt, um deine Eingaben abzufangen, ist
dies "unsicher", da du auf die Korrektheit des anderen Programmes nicht zählen kannst.
Deshalb soll der Tainted-Modus nur absolute Pfade akzeptieren, sodass du sicher sein
kannst, dass dein Programm (also /usr/sbin/try.pl) ausgeführt wird und nicht ein anderes.
Aber warum hier der Tainted-Modus nicht Einspruch erhebt weiss ich nicht.
Viele Grüsse
Philipp
RTFM! - Foren steigern das Aufkommen von Redundanz im Internet, danke für das lesen der Manuals.
Selbstbedienung! - Das SelfForum ist ein Gratis-Restaurant mit Selbstbedienung, Menüangebot steht in den </faq/> und dem </archiv/>.