Frage zum pure-ftpd Prozess

Trashi

New Member
Hallo.

Ich habe auf einem Debian System den pure-ftpd-mysql laufen. Dieser läuft im Stand-Alone und wird bei Systemstart automatisch durch entsprechenden Eintrag in der rc.local gestartet. Nach diesem Start läuft der Prozess mit dem Benutzer root.

Frage 1: Ist das sinnvoll oder gibt es eine bessere Alternative?

Die pureftpd.conf ist so konfiguriert, dass ein eingeloggter FTP-Nutzer mit dem Benutzer pure läuft.
Dieser hat keine Shell und kein Home-Dir.
Schaue ich mir die Prozessliste an, sobald ein User eingeloggt ist, kann ich folgendes beoabachten:

Code:
root@server:/# top
  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 4037 root      16   0  7416  772  412 S    0  0.0   0:00.00 pure-ftpd
 5565 pure      16   0  7432 1640 1164 S    0  0.0   0:00.00 pure-ftpd                                                                                                                  
 5566 root      16   0  7424  532  156 S    0  0.0   0:00.00 pure-ftpd

Der erste Prozess leuchtet mir ein. Das ist der den ich beim Systemstart starten ließ. Der zweite dürfte dann der oben erwähnte pure User sein.

Frage 2: Wozu dient der dritte Prozess des Users root?

Danke und viele Grüße, Trashi.
 
durch entsprechenden Eintrag in der rc.local gestartet. Nach diesem Start läuft der Prozess mit dem Benutzer root.

Das geht aber auch eleganter. Die rc.local sollte nach Möglichkeit nicht verwendet werden.

Schaue ich mir die Prozessliste an, sobald ein User eingeloggt ist, kann ich folgendes beoabachten:

Code:
root@server:/# top
  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 4037 root      16   0  7416  772  412 S    0  0.0   0:00.00 pure-ftpd
 5565 pure      16   0  7432 1640 1164 S    0  0.0   0:00.00 pure-ftpd                                                                                                                  
 5566 root      16   0  7424  532  156 S    0  0.0   0:00.00 pure-ftpd

Schaue dir Prozessliste mit "ps afuxww" und "pstree" an, damit Du die Abhängigkeiten erkennst.
 
Das geht aber auch eleganter. Die rc.local sollte nach Möglichkeit nicht verwendet werden.

Ich habe in einem Wiki gelesen, dass rc.local eine gute Wahl sei, wenn man nicht auf ein bestimmten run-level zurückgreifen kann. Was wäre denn eine bessere Alternative? Gleichzeitig wäre es interessant für mich, warum man rc.local besser in Ruhe lassen sollte?

Schaue dir Prozessliste mit "ps afuxww" und "pstree" an, damit Du die Abhängigkeiten erkennst.

Code:
root      4037  0.0  0.0   7416   772 ?        Ss   00:19   0:00 pure-ftpd (SERVER)                                                                                                                          
pure     31768  0.0  0.0   7432  1640 ?        S    00:48   0:00  \_ pure-ftpd (IDLE)                                                                                                                            
root     31769  0.0  0.0   7424   532 ?        S    00:48   0:00      \_ pure-ftpd (PRIV)
Wies aussieht, ist der zweite root vom angemeldeten pure User abhängig. Was hat das zu bedeuten?

Btw was ist mit Frage 1? ;)
Danke und viele Grüße, Trashi.
 
Ich habe in einem Wiki gelesen, dass rc.local eine gute Wahl sei, wenn man nicht auf ein bestimmten run-level zurückgreifen kann. Was wäre denn eine bessere Alternative? Gleichzeitig wäre es interessant für mich, warum man rc.local besser in Ruhe lassen sollte?

Das ist eine ähnliche Glaubensfrage, wie "Welche Distribution ist die Beste?". Üblich ist es, das jeweilige Init-Skript per Runlevel zu linken. Da Du ein Debian-System hast, macht das "update-rc.d" für dich sogar automatisch :)

Code:
root      4037  0.0  0.0   7416   772 ?        Ss   00:19   0:00 pure-ftpd (SERVER)                                                                                                                          
pure     31768  0.0  0.0   7432  1640 ?        S    00:48   0:00  \_ pure-ftpd (IDLE)                                                                                                                            
root     31769  0.0  0.0   7424   532 ?        S    00:48   0:00      \_ pure-ftpd (PRIV)
Wies aussieht, ist der zweite root vom angemeldeten pure User abhängig. Was hat das zu bedeuten?

Ich habe gerade kein Testsystem zur Hand, wo ich das Setup nachstellen kann. Für mich sieht es aus, als ob die FTP-Session (PID: 31769) als "root" läuft. Wenn Du dich _nicht_ als User "root" per FTP angemeldet hast, solltest Du dir das Konzept überdenken. FTP als "root" ist generell eine schlechte Idee.

Frage 1 hat sich wohl erledigt mit den obigen Ausführungen erledigt ;)
 
Ok. Es würde sich von daher anbieten, pureftpd generell unter dem eingeschränkten Benutzer pure laufen zu lassen. (um allem potentiellen Ärger aus dem Weg zu gehen)

Ich suche also Lösungen pureftpd beim Systemstart mit dem User pure automatisch zu starten.
Ideen sind willkommen - mal sehen was Google sagt! ;)
 
Die Idee ist gut.
Dein ps sah so aus, als ob die Privilegien auf "pure" gedrop't wurden und anschließend wieder an 'root' gegeben wurden. Die einzige vernünftige, aber fahrlässige, Erklärung hierfür ist, dass das ein FTP-Login als User "root" war.
 
Also das war es mit absoluter Sicherheit nicht. Denn es ist in der pureftpd.conf eingestellt das sich keine System Benutzer anmelden dürfen, da es sich ja wiegesagt um pure-ftpd-mysql handelt und man sich demzufolge nur mit virtuellen Benutzern einloggen kann, welche in meiner MySQL Datenbank stehenen.

EDIT: \\ So ich habe jetzt mal eine eMail an die Mailing-List von pure-ftpd gesendet. ;) Die wissen das bestimmt genauer. Sollte jemand noch etwas beitragen können (z.B. genauere Spezifikation der Prozesse): Ich freue mich über jede Antwort ;)
 
Last edited by a moderator:
Back
Top