Wann startet man Dienste als Root?

Hallo,

ich habe auf meinem alten Rechner den Ubuntu-Server installiert.

Mir ist nicht klar, welche Dienste als Root und welche als "normaler" User gestartet werden müssen.

z.B. möchte ich folgende Dienste und Programme starten:

- apache webserver
- apache tomcat

Tomcat werde ich nicht via apt-get installieren. Sondern händig unter /opt

Wann soll man Dienste als root starten und wann als "normaler" User ?

Gruß
Angelika
 
Zuletzt bearbeitet:
Hallo!

Wie es mit Tomcat aussieht weiss ich nicht, aber ich denke mal dass es der gleiche Benutzer ist wie für Apache.
Unter Debian (Ubuntu ist ja ein Abkömmling davon) gibt es für Apache einen eigenen Benutzer in einer eigenen Gruppe.
Benutzer und Gruppe sind jeweils "www-data".
Theoretisch sollte aber auch jeder andere Benutzer und jede andere Gruppe möglich sein.
Ausprobiert habe ich es aber noch nie, daher würde ich eher beim Standard (www-data) bleiben.

Gruss Dr Dau
 
Hallo!
Benutzer und Gruppe sind jeweils "www-data".
Theoretisch sollte aber auch jeder andere Benutzer und jede andere Gruppe möglich sein.
Ausprobiert habe ich es aber noch nie, daher würde ich eher beim Standard (www-data) bleiben.

Nein. Das sind die Benutzer, unter denen der Hauptprozess forkt. Gestartet werden die Daemons als root und zwar über die Initscripte, die bei Debian und dessen Derivaten unter /etc/init.d/ liegen.

Der Hauptprozess eines Daemons läuft meistens unter der UID vom root, da er hier alle benötigen Ressourcen ohne die Einschränkungen eines normalen Users belegen kann. Da die Daemons aber clever programmiert sind, forken sie meistens Childprozesse unter einem User, der eben keine Allmacht hat.
 
Gestartet werden die Daemons als root...
Nur mal ganz kurz zur Erlaeuterung warum das so ist: So ein Dienst muss einen Port oeffnen, das kann nicht jeder dahergelaufene User, sondern eben nur root.
Obwohl man das nun auch wieder genauer erlaeutern muss, denn die Aussage gilt nur fuer alle aktuellen (mir bekannten/in letzter Zeit mal ausprobierten) Linux-Distributionen.

Mit Hilfe von POSIX-Capabilities naemlich sollte sich auch dieses Problem umgehen lassen, nur werden diese bislang so gut wie garnicht eingesetzt.
Darum sind auch Befehle wie ping (ja ping!) und passwd weiterhin SetUID root, auch wenn's garnicht noetig waer...
 
Hallo Zusammen,

danke erst einmal für euere Antworten :)


Ein konkretes Beispiel.

Ich habe "Apache Tomcat" von "http://tomcat.apache.org" gesaugt und entpackt.
In dem Ordner "bin" befindet sich ein start Script.

Ich habe nun die Möglichkeit, den Tomcat-Dienst als "normaler" User oder als Root zu starten.

So wie ich das bis jetzt verstanden habe, soll man Dienste (sofern möglich) IMMER als "normaler" user starten.
Grund: Solche Dienste können Bugs aufweisen. Wird ein Programm via Root gestartet, kann ein böser Mensche die Lücke ausnutzen und via Root-Rechte auf das System zugreifen.
Ist das Programm (Dienst) nicht als Root gestartet worden, kann der böse Mensch nicht gleich per Root auf das System zugreifen.

Stimmt diese Aussage ?

Falls ja, woran kann ich erkenne, ob ein Programm (Dienst) per Root oder User gestartet werden kann bzw. muss ?
Apache lässt sich z.B. nur als Root starten. Das habe ich erst gemerkt, als Apache sich beschwert hat und Root-Rechte angefordert hat.

Tomcat lässt sich z.B. als User starten.

Gruß
Angelika
 
Ja, okay. Haette ich erwaehnen sollen. Aber die meisten Dienste laufen ja gerade in dieser Port Range, von ein paar Ausnahmen (z.B. MySQL) mal abgesehen.
 
Ich fasse zusammen.

Es gilt die Faustregel:

Ports bis 1023 MÜSSEN als Root gestartet werden:
Ports ab 1024 KÖNNEN sowohl als Root als auch als User gestartet werden.

Danke für die Erklärung !
Angelika
 

Neue Beiträge

Zurück