PERL-Script *sicher* via sudo aufrufen

20/11/2008 - 07:50 von Manuel Reimer | Report spam
Hallo,

ich habe ein Script geschrieben, welches alle fàlligen Updates für mein
System holt (Slackware Linux), via MD5 *und* GPG deren "Echtheit"
überprüft und die Updates letztlich einspielt.

Da "Updates durchführen" ein hàufig vorkommender Prozess ist und ich
dafür nicht extra "root" werden will möchte ich dieses Script jetzt via
sudo für meinen User zugànglich machen.

In der sudoers habe ich:

Defaults always_set_home
Defaults env_reset

Zusàtzlich am Anfang des Scripts:

$ENV{"PATH"} = "/bin:/sbin:/usr/bin:/usr/sbin";
$ENV{"HOME"} = "/root";
if (defined($ENV{"SUDO_USER"}) && defined($ENV{"PWD"})) {
die ("Set env_reset in sudoers!");
}

PATH setze ich einfach zur Sicherheit, denn secure_path muss beim
Kompilieren bereits gesetzt werden, was mein Distributor nicht tut. HOME
setze ich für den Fall das mein Script auf einem System làuft, wo
"always_set_home" nicht gesetzt ist. Da GPG von dort seine Informationen
holt wàre ein importiertes "Benutzer-HOME" hier eine Sicherheitslücke!
Die letzten Zeilen sollen ein nicht gesetztes "env_reset" erkennen und
aussteigen wenn unerwartete Umgebungsvariablen existieren.

Ja, ich rufe im Perl-Script via "system" externe Programme auf. Im
Detail wàren das "gpg" und "wget".

Hat irgendwer sonst noch Ideen was zu beachten ist, wenn ein Perl-Script
sicher via Sudo aufgerufen werden soll?

CU

Manuel

XPost nach de.comp.os.unix.linux.misc
F'up zurück nach de.comp.lang.perl.misc

www.jetzt-abwaehlen.de Wàhlen gehen 2009! Ein Aufruf etwas zu àndern.
Die letzte Stimme, die man hört, bevor die Welt untergeht, wird die
eines Experten sein, der versichert, das sei gar nicht möglich.
Beitràge mit *X-No-Html Header* kann ich weder lesen noch beantworten!
 

Lesen sie die antworten

#1 Frank Seitz
20/11/2008 - 10:43 | Warnen spam
Manuel Reimer wrote:

Hat irgendwer sonst noch Ideen was zu beachten ist, wenn ein Perl-Script
sicher via Sudo aufgerufen werden soll?



Kurze Antwort: Taint-Mode anschalten (-T) und alles, was Perl bemàngelt, beheben.
Lange Antwort: perldoc perlsec

Grüße
Frank
Dipl.-Inform. Frank Seitz; http://www.fseitz.de/
Anwendungen für Ihr Internet und Intranet
Tel: 04103/180301; Fax: -02; Industriestr. 31, 22880 Wedel

Ähnliche fragen