chroot - Prozess/Server als user laufen lassen

Smalltalk
Antworten
ren22

chroot - Prozess/Server als user laufen lassen

Beitrag von ren22 » 08.04.2020 22:32:38

Hallo,

ich platziere das hier mal in Smalltalk da es sich ja nicht direkt auf Debian bezieht sondern eher auf Busybox.

Ich beschäftige mich gerade mit Busybox, eine chroot Umgebung zu bauen und unter dieser soll dann ein FTP-Server laufen aber nicht als "root".
Meine Frage: Wenn ich unter Busybox einen Benutzer anlege, nennen wir ihn "ftpuser" und diesen auch in die gleiche Gruppe hinzufüge, also "ftpuser:ftpuser", läuft dann der FTP-Server als "root" oder als "ftpuser" Benutzer ?

Danke

pferdefreund
Beiträge: 3792
Registriert: 26.02.2009 14:35:56

Re: chroot - Prozess/Server als user laufen lassen

Beitrag von pferdefreund » 09.04.2020 08:24:24

Warum soll ein Server nicht als non-root server laufen. Man muss halt einen Port über 1024 verwenden, auf den er lauscht, weil die darunter für Root reserviert sind. Klappt sogar auf dem Telefon. Habe da Debian unter UserLand am laufen und dort den Apache installiert. Lauscht auf Port 8080 und läuft unter meiner Userid absolut problemlos so wie anderes, was Dienste anbietet auch.

Benutzeravatar
bluestar
Beiträge: 2346
Registriert: 26.10.2004 11:16:34
Wohnort: Rhein-Main-Gebiet

Re: chroot - Prozess/Server als user laufen lassen

Beitrag von bluestar » 09.04.2020 09:30:54

ren22 hat geschrieben: ↑ zum Beitrag ↑
08.04.2020 22:32:38
Meine Frage: Wenn ich unter Busybox einen Benutzer anlege, nennen wir ihn "ftpuser" und diesen auch in die gleiche Gruppe hinzufüge, also "ftpuser:ftpuser", läuft dann der FTP-Server als "root" oder als "ftpuser" Benutzer ?
Wenn du dem FTP-Server danach auch noch explizit sagst, dass er als ftpuser laufen soll (inkl. der Einschränkungen was die Ports < 1024), dann tut er das, das Anlegen von Benutzer und Gruppe allein wird nicht ausreichen.

wanne
Moderator
Beiträge: 7465
Registriert: 24.05.2010 12:39:42

Re: chroot - Prozess/Server als user laufen lassen

Beitrag von wanne » 09.04.2020 11:13:04

pferdefreund hat geschrieben: ↑ zum Beitrag ↑
09.04.2020 08:24:24
Warum soll ein Server nicht als non-root server laufen.
Weil die meisten FTP-Server das Rechtemanagement des OS nutzen. Sprich wenn man sich als bluestar per FTP einloggt führt man seine Aktionen auch als blustar aus. Dazu muss der FTP-Server halt als root laufen, denn nur der darf subprozesse als anderer User laufen lassen. Das gleiche glit z.B. für cron. Auch der braucht root rechte, weil er Scripte als anderer User ausführen können muss.
Eine eher antike Methode aber hat auch seine vor und Nachteile.
läuft dann der FTP-Server als "root" oder als "ftpuser" Benutzer ?
Der Prozess läuft immer mit einer festen UID. (Innerhalb und außerhalb der chroot.) Du musst da stark aufpassen, dass ftpuser in der Busybox die gleiche UID hat wie außerhalb. (Am besten einfach die /etc/passwd kopieren statt den User von Hand anlegen.) Als welche UID der Prozess dann startet hängt von dir ab. Im Normalfall als die die schon der Parent hatte. Du kannst das aber per su ändern. Also z.B. so:

Code: Alles auswählen

su -c ftpserver ftpuser 
Die meisten ftpserver können das für sich oder zumindest für die Netzwerk-Worker selbstständig über irgend eine config option, wenn du sie als root startest.
rot: Moderator wanne spricht, default: User wanne spricht.

Antworten