[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

[Debian]:Re: richtige permissions in /etc/init.d



Frank Fuerst <ffrank@rz.uni-potsdam.de> wrote:

> ich habe gerade festgestellt, dass auf meinem Potato alle Skripten
> in /etc/init.d die Rechte 755 haben - das kann doch nicht richtig
> sein?

Doch, das ist in der Policy sogar explizit so vorgeschrieben.

> Da dürfte ja jeder Dummusers mal eben /etc/init.d/networking stop
> eingeben!

Darf er. Viel Freude wird er daran nicht haben, weil er ja dummuser
und nicht root ist und die Kommandos ifconfig, route etc. mit den
Rechten von dummuser nur den Status des Netzwerks anzeigen, aber keine
Änderungen zulassen (dafür müßte er Root-Rechte haben).

Auch wenn Du die Datei für den Dummuser nicht ausführbar machen
würdest, könnte er sie sich ja in sein Home kopieren, dort das
Execution-bit setzen und sie ausführen und wenn Du die Datei nur für
root lesbar machst, könnte sich der Dummuser die Datei (es handelt
sich ja nur um eine Textdatei) trotzdem von einem beliebigen
Debian-Mirror holen, in sein Home legen und dort ausführen.

Durch Permissions 700 könntest Du natürlich verhindern, daß er sich
die Datei anschaut, aber das bringt Dir bestenfalls
Security-by-Obscurity, aber sicherer wird Dein System dadurch nicht.
Einschränkungen der Rechte sind also nur dann sinnvoll, wenn es sich
um Passwortdateien oder ähnliches handelt oder wenn SUID/SGID-Bits im
Spiel sind, alles andere kann der User sich ohnehin aus dem Netz
ziehen, in sein Home legen und dort ausführen.

> Ich dachte dann, das würde vielleicht in den Skripten selbst nochmal
> überprüft, aber bei /etc/init.d/samba restart als nicht-root kommt
> eine Fehlermeldung erst vom Dämonen selber, weil der nur mit UID 0
> laufen mag.

Was spricht dagegen? Einen entsprechend konfigurierten Webserver (Port
jenseits von 1024) kann ohnehin jeder User starten, das ist bei
Unix-Systemen ausdrücklich vorgesehen. Ein User darf auf einem
Unix-System halt vieles, wenn Du das nicht willst, darfst Du ihm im
Grunde keine Shell geben. Die Sicherheit besteht also darin, daß die
Programme, die wirklich Dinge tun könnten, die schädlich sind
(Änderung des Routings, Start von Daemonen auf privilegierten Ports
etc.) gewöhnlich root-Rechte benötigt werden, aber nicht zum Ausführen
des /etc/init.d/*-Skripts sondern zum Ausführen des eigentlichen
Programms, das dann auf irgendwelche Ressourcen zugreift, auf die halt
nur root Zugriff hat.

> Bis dahin kann so ein Skript aber schon eine ganze Menge Mist
> angerichtet haben, oder?

Nichts wirklich schlimmes. Wenn doch, ist das ein Security-Bug in dem
Skript, den Du mit hoher Severity reporten solltest.

Tschoeeee

        Roland

-- 
 * roland@spinnaker.de * http://www.spinnaker.de/ *
------------------------------------------------
Um sich aus der Liste auszutragen schicken Sie
bitte eine E-Mail an majordomo@jfl.de die im Body
"unsubscribe debian-user-de <deine emailadresse>"
enthaelt.
Bei Problemen bitte eine Mail an: Jan.Otto@jfl.de
------------------------------------------------
Anzahl der eingetragenen Mitglieder:     738


Reply to: