WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Linux, UNIX, Open Source

Linux, UNIX, Open Source Rat & Tat bei Problemen und Fragen rund um GNU/Linux, BSD und sonstige UNIXe

Microsoft KARRIERECAMPUS

Antwort
 
Themen-Optionen Ansicht
Alt 08.03.2006, 01:12   #1
RaistlinMajere
Inventar
 
Registriert seit: 06.04.2001
Alter: 44
Beiträge: 2.343


Standard ubuntu: wie kann man prozesse bei linux-start nicht als root starten?

bin bzgl. linux noch nicht wirklich versiert und bin beim arbeiten mit ubuntu auf ein paar fragen bzgl. dem start von diensten beim OS-start gestoßen.

es ist ja bekanntlich keine gute idee, bestimmte services wie z.b. einen webserver als root laufen zu lassen, weil im falle eines erfolgreichen exploits der angreifer dann entsprechende rechte hat.

nun ist es aber scheinbar so, daß alle dienste, die per runlevel-script gestartet werden, unter root laufen. dies gilt dann wohl auch für einen webserver, oder? wie kann ich das unterbinden, d.h. dafür sorgen, daß der webserver nicht als root gestartet wird? kann ich das dann nicht über runlevels machen oder muß ich da dann das runlevelscript ggf. umschreiben?

welche möglichkeiten existieren generell, dienste/scripts beim systemstart zu starten, abgesehen von runlevels und (in bestimmten fällen) tcpwrappern, die ja über inetd gestartet werden (der wiederum im runlevel gestartet wird)?
____________________________________
"Life is like a box of rockets," said the Marine. "You never know what you´re gonna ret."
Then he pulled the trigger of his BFG9000.
RaistlinMajere ist offline   Mit Zitat antworten
Alt 08.03.2006, 08:54   #2
spunz
Super-Moderator
 
Registriert seit: 22.03.2000
Beiträge: 9.666


spunz eine Nachricht über ICQ schicken
Standard

nö, die dienste laufen schon mit dem richtigen user. du kannst es ja jederzeit mit ps/top überprüfen.
spunz ist offline   Mit Zitat antworten
Alt 08.03.2006, 12:40   #3
m@rio
Master
 
Registriert seit: 10.10.2002
Beiträge: 711


Standard Re: ubuntu: wie kann man prozesse bei linux-start nicht als root starten?

Stimmt, alle Dienste die über initscripte gestartet werden laufen erstmal prinzipell als root. Das ist aber auch gut so, weil für diese Dinge meistens auch root Privilegien erforderlich sind. So kannst du zb. nur als root Services auf Ports <1024 binden. Alle Services, die nicht als root weiterlaufen sollen droppen im Regelfall nach dem Start automatisch ihre Priviliegien und laufen unter einem unprivilegierten User weiter. Welcher User das ist kann man in der Konfiguration der jeweiligen Applikationen konfigurieren.

Wenn eine Applikation diese Möglichkeit nicht hat (kommt so gut wie nie vor), könnte man sie im initscript mit su username -c applikation als anderer User starten.
m@rio ist offline   Mit Zitat antworten
Alt 09.03.2006, 14:09   #4
RaistlinMajere
Inventar
 
Registriert seit: 06.04.2001
Alter: 44
Beiträge: 2.343


Standard @mario

ok, das leuchtet mir schon ein.

hab jetzt probehalber einfach mal einen apache 2 installiert.

ps -aux | grep apache gibt mir folgendes aus:

Code:
root      7708  0.0  0.5   7296  2860 ?        Ss   13:40   0:00 /usr/sbin/apache2 -k start -DSSL
www-data  7711  0.0  0.5   7088  2628 ?        S    13:40   0:00 /usr/sbin/apache2 -k start -DSSL
www-data  7712  0.0  0.6 228900  3452 ?        Sl   13:40   0:00 /usr/sbin/apache2 -k start -DSSL
www-data  7714  0.0  0.6 228900  3328 ?        Sl   13:40   0:00 /usr/sbin/apache2 -k start -DSSL
root      8092  0.0  0.1   3228   584 pts/1    R+   14:02   0:00 grep apache
wie man sieht, wird ein prozess als root gefahren. ich habe mir jetzt mal die /etc/apache2/apache2.conf angesehen, sehe dort aber keine moeglichkeit, zu bestimmen, dasz der webserver unter einem anderen user laufen soll. wenn, dann muesste man das doch dort finden, oder? im runlevel-script finde ich auch nichts dazu.
____________________________________
"Life is like a box of rockets," said the Marine. "You never know what you´re gonna ret."
Then he pulled the trigger of his BFG9000.
RaistlinMajere ist offline   Mit Zitat antworten
Alt 09.03.2006, 15:30   #5
m@rio
Master
 
Registriert seit: 10.10.2002
Beiträge: 711


Standard Re: @mario

Mach nicht ps -aux sondern ps -faux. Dann siehst du, daß nur der Apache Master Prozess als root läuft. Das ist wie oben schon mal geschrieben auch notwendig um Port 80 nutzen zu können.
Die Child Prozesse, die die eigentliche Arbeit machen, laufen unter dem User den du in der Apache Konfiguration mit User definiert hast (in deinem Fall User www-data).

Siehe: http://httpd.apache.org/docs/2.0/de/invoking.html
m@rio ist offline   Mit Zitat antworten
Alt 09.03.2006, 18:27   #6
RaistlinMajere
Inventar
 
Registriert seit: 06.04.2001
Alter: 44
Beiträge: 2.343


Standard

alles klar, danke.
____________________________________
"Life is like a box of rockets," said the Marine. "You never know what you´re gonna ret."
Then he pulled the trigger of his BFG9000.
RaistlinMajere ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 15:29 Uhr.


Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Forum SEO by Zoints
© 2009 FSL Verlag