Prozessübergabe von Root nach User

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
minimike
Beiträge: 5616
Registriert: 26.03.2003 02:21:19
Lizenz eigener Beiträge: neue BSD Lizenz
Wohnort: Köln
Kontaktdaten:

Prozessübergabe von Root nach User

Beitrag von minimike » 21.03.2011 03:32:48

Hi

Ich bastele gerade an einer Mailserverlösung komplett in JAVA. Sofern ich einen Apache Tomcat mit einem Daemon wie Taniku oder JSVC mit Pid und Logfiles betreibe. Welche Möglichkeiten habe ich generrel unter Linux den Prozess des Daemons mitsammt Pid und Logfiles sowie Kindprozessen von Root nach einem unpriveligierten User zu verlagern? Hintergrund ist das Ich als Root den Service mitsammt Ports für SMTP. LMTP, IMAP, LDAP unterhalb den 1024 starte. Das sollte aber auf Dauer nicht so bleiben.
"Lennart Poettering is one of those typical IT leaders..." "like Linus Torvalds and Theo de Raadt?" "more like Bozo the Clown" After all, now a good employee of Microsoft

Colttt
Beiträge: 3012
Registriert: 16.10.2008 23:25:34
Wohnort: Brandenburg
Kontaktdaten:

Re: Prozessübergabe von Root nach User

Beitrag von Colttt » 21.03.2011 07:40:39

ok, ich stell es mir zwar jetzt etwas einfach vor, aber ich machs trotzdem mal:

als root unter /var/log/ ein ordner anlegen für deine logs user-rechte ändern, fertig, das selbe nochmal für die pid und das programm selbst, das sollte es eigentlich schon in meinen augen gewesen sein. denn was anderes machen die anderen programme ja auch nicht und deswegen brauchen diese ja auch root-rechte bei der installation.
Debian-Nutzer :D

ZABBIX Certified Specialist

Benutzeravatar
bmario
Beiträge: 1257
Registriert: 05.09.2007 12:15:47
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Dresden

Re: Prozessübergabe von Root nach User

Beitrag von bmario » 21.03.2011 15:57:48

Das war nicht die Frage, der Dienst muss als root gestartet werden, da nur root Ports unterhalb von 1024 öffnen darf. Nachdem das erledigt ist, "droppen" Dienste in der Regel ihre Privilegien. Apache etwa zu www-data.

Minimike, kannst du vlt. mit iptables einfach nen Forward der Port's machen, oder eine andere Art Stellvertreter, so dass die Java-Dienste an Ports >1024 horchen und damit keine root-Rechte beim Start brauchen?
Nichts zu tun ist viel besser,
als mit viel Mühe nichts zu schaffen. - Laotse

dotzball
Beiträge: 76
Registriert: 23.06.2007 13:20:59

Re: Prozessübergabe von Root nach User

Beitrag von dotzball » 21.03.2011 16:08:56

bmario hat geschrieben:Das war nicht die Frage, der Dienst muss als root gestartet werden, da nur root Ports unterhalb von 1024 öffnen darf. Nachdem das erledigt ist, "droppen" Dienste in der Regel ihre Privilegien. Apache etwa zu www-data.
Oder bei Tomcat von root nach tomcat6. Bei Tomcat kann man per authbind auch Ports < 1024 verwenden.

Ich habe zwei eigene Serverdienste (OSGI und einen REST-Server), für diese habe ich mir je ein init.d Skript analog tomcat6 erstellt. Beide Server laufen mit eigenen (von mir jeweils angelegten) Usern. Meine Dienste nutzen zwar höhere Ports, wenn man sich das mit authbind im tomcat6 Skript noch abschaut, sollte es aber auch mit niedrigeren Ports funktionieren (denke ich zumindest ;) ).

Antworten