Mailinglist Archive: opensuse-de (7975 mails)

< Previous Next >
Re: setuid root von cgi-scripten unter Apache wirkungslos
Hallo,

Ratti:
ich möchte auf meinem apache einige cgi-scripte verwenden, die tief ins
System eingreifen und daher root-Rechte benötigen.

Ich hab es mit eurer Hilfe geschafft.
Das war wirklich ein weiter Weg. Ich dokumentiere ihn hier noch mal
zusammenfassend.


Suse erlaubt kein s-Bit bei Scripten. Von dieser Einstellung sind auch
cgis in perl betroffen.
Um das zu umgehen, gibt es suidperl.

Erster Fallstrick: Ich hatte irgendwann mal perl selbst kompiliert.
Beim konfigurieren wird man gefragt, ob das System "sicher" sei und ob
man gerne die Möglichkeit hätte, Scripte als root auszuführen.
Defaultantwort ist NEIN. Das ist schonmal schlecht. Hier "ja" angeben,
sonst wird suidperl gar nicht erst erzeugt.

Wenn man es dann endlich hat, hat es aber die falschen Rechte. Dazu
befindet sich ein Artikel in der SDB. Kurzfassung:
In die Datei /etc/permissions.local eintragen:
/usr/bin/suidperl root.root 4755
und SuSEconfig starten. Dann werden die Rechte korrekt gesetzt und
bleiben es auch.

Zweiter Fallstrick:
Das perl-Script muß gegenüber einem "normalen" Script verändert werden.
Es wurde hier angegeben, daß der suidperl als Interpreter im !#
angegeben werden müsste. Das ist m.E. nicht nötig.
Allerdings muß der Pfad "beschnitten" werden. So lieferte
print `whoami`;
ebenso eine Fehlermeldung wie
print `/usr/bin/whoami`;

Erst durch vorheriges Einfügen von
$ENV{'PATH'} = '/bin:/usr/bin:/usr/sbin:/usr/bsd:/usr/local/bin';
ließ sich das Script dann endlich zum funktionieren bewegen.


Permissions und Eigentümer:

ls -la probe.pl
-rws--s--x 1 root root 187 Apr 2 21:55 probe.pl

Inhalt der Datei:

#!/usr/bin/perl

print ("Content-type: text/html\n\n");
print "<HTML>";
$ENV{'PATH'} = '/bin:/usr/bin:/usr/sbin:/usr/bsd:/usr/local/bin';
$x= `/usr/bin/whoami`;

print "I am $x<\/HTML>";


Und schliesslich der HTML-Output:

I am root



Yes, you are. :-)

Danke nochmal,
Gruß,
Ratti



< Previous Next >
Follow Ups
References