• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Pure-FTPD und Apache

Hallo Leute,

ich habe eine Frage:
Ich habe heute unter OpenSUSE 11 den Pure-FTPD und Apache installiert.
Mein Problem ist im Moment ich will einen FTP-Account einrichten, der im Root-Verzeichnis vom Apache liegt.
Dazu habe ich einen User angelegt mit pure-pw und der User-ID 30 (wwwrun) und Gruppen-ID 8 (www) hinzugefügt.

Damit kann ich mich einloggen und Daten hochladen, löschen, etc.
Aber ich kann nur Daten löschen, die schon vorher da waren und als Besitzer die Gruppe www und als Benutzer wwwrun besitzen.
Alle hochgeladenen Dateien haben den Besitzer 0:0 und die Rechte mit chmod 0.

Woran kann das liegen?
Ist das nicht richtig das Verzeichnis htdocs für den Besitzer wwwrun:www zu setzen?

Danke im Vorraus. :)

Meine Config sieht wie folgt aus:

Code:
ChrootEveryone              yes

TrustedGID                    49

BrokenClientsCompatibility  no

MaxClientsNumber            10

Daemonize                   yes

MaxClientsPerIP             3

VerboseLog                  no

AllowDotFiles               yes

DisplayDotFiles             yes

AnonymousOnly               no

NoAnonymous                 yes

SyslogFacility              ftp

# FortunesFile              /usr/share/fortune/zippy

DontResolve                 yes

MaxIdleTime                 15

# LDAPConfigFile                /etc/pure-ftpd/pureftpd-ldap.conf

# MySQLConfigFile               /etc/pure-ftpd/pureftpd-mysql.conf

# PGSQLConfigFile               /etc/pure-ftpd/pureftpd-pgsql.conf

PureDB                        /etc/pure-ftpd/pureftpd.pdb

# ExtAuth                       /var/run/ftpd.sock

# PAMAuthentication             yes

UnixAuthentication            yes

LimitRecursion              2000 8

AnonymousCanCreateDirs      no

MaxLoad                     4

# PassivePortRange          30000 50000

# ForcePassiveIP                192.168.0.1

# AnonymousRatio                1 10

# UserRatio                 1 10

AntiWarez                   yes

# Bind                      127.0.0.1,21

# AnonymousBandwidth            8

# UserBandwidth             8

Umask                       177:077

MinUID                      1

AllowUserFXP                no

AllowAnonymousFXP           no

ProhibitDotFilesWrite       no

ProhibitDotFilesRead        no

AutoRename                  no

AnonymousCantUpload         yes

#TrustedIP                  10.1.1.1

#LogPID                     yes

# AltLog                     clf:/var/log/pureftpd.log

# AltLog                     stats:/var/log/pureftpd.log

# AltLog                     w3c:/var/log/pureftpd.log

NoChmod                     no

KeepAllFiles                no

CreateHomeDir               yes

#Quota                       1000:10

PIDFile                     /var/run/pure-ftpd.pid

#CallUploadScript yes

MaxDiskUsage               99

NoRename                  no

CustomerProof              yes

# PerUserLimits            3:20

# NoTruncate               yes

# TLS                      1

# IPV4Only                 yes

# IPV6Only                 yes

# FileSystemCharset    big5
# ClientCharset        big5

PassivePortRange    30000:30100
 
H3llGhost schrieb:
Mein Problem ist im Moment ich will einen FTP-Account einrichten, der im Root-Verzeichnis vom Apache liegt.
Dazu habe ich einen User angelegt mit pure-pw und der User-ID 30 (wwwrun) und Gruppen-ID 8 (www) hinzugefügt.
Was bezeichnest du als "Root-Verzeichnis von Apache"? Vmtl. das DOCUMENT_ROOT, also /srv/www/htdocs ?
Abgesehen davon ist dem Apache egal wem die Dateien gehören, wwwrun.www ist lediglich der Benutzer zu dem der Apache wechselt um Requests entgegenzunehmen und zu verarbeiten. Du solltest also einen ganz normalen Benutzer nehmen.
 
Ja das meinte ich ... Entschuldigung.
Also am Anfang hatte ich es auf dem FTP-User alles gelegt.
Problem war sobald ich die Seite mit dem Browser öffnen wollte kam ein 403 Forbidden Fehler, aber ich bin mir auch nicht mehr so sicher ...
Also kann ich die Dateien dem FTP-User aus der passwd zuordnen?
 
H3llGhost schrieb:
Also am Anfang hatte ich es auf dem FTP-User alles gelegt.
Problem war sobald ich die Seite mit dem Browser öffnen wollte kam ein 403 Forbidden Fehler, aber ich bin mir auch nicht mehr so sicher ...
Also kann ich die Dateien dem FTP-User aus der passwd zuordnen?
Ich verstehe deine Ausführungen nicht.

Die Dateien die der ftp User hochlädt müssen natürlich für alle lesbar sein.
 
panamajo schrieb:
H3llGhost schrieb:
Also am Anfang hatte ich es auf dem FTP-User alles gelegt.
Problem war sobald ich die Seite mit dem Browser öffnen wollte kam ein 403 Forbidden Fehler, aber ich bin mir auch nicht mehr so sicher ...
Also kann ich die Dateien dem FTP-User aus der passwd zuordnen?
Ich verstehe deine Ausführungen nicht.

Die Dateien die der ftp User hochlädt müssen natürlich für alle lesbar sein.

Also erstmal. Was er meint ist folgendes: Wenn er Dateien über FTP hochgeladen hat, haben diese den Besitzer root:root (ID 0:0 ist für mich root:root) und sind chmod 000.
Hast du die Datei als Root hochgeladen? Dann würde das Sinn ergeben, weil der Besitzer/Gruppe einer Datei immer dem FTP-User entspricht der sie hochgeladen hat.

Schau mal in der PureFTPd Konfig. Dort solltest du einen "umask"-Parameter haben womit du festlegen kannst welche Berechtigungen die Dateien nach dem hochladen haben. Ich würde hier "umask 022:022" empfehlen. Dies entspricht chmod 755 für Dateien und Verzeichnisse.
Bei dir ist der z.Z. auf "umask 177:077" gestellt. Bedeutet chmod 600 für Dateien und chmod 700 für Verzeichnisse.
Das dann dort der Apache nichts abrufen kann ist klar. Für den gelten ja die Rechte "Rest der Welt", da weder Besitzer noch Gruppe der Datei mit dem Apache übereinstimmt.

Wobei.. Hmm. Du hast ja geschrieben:
Dazu habe ich einen User angelegt mit pure-pw und der User-ID 30 (wwwrun) und Gruppen-ID 8 (www) hinzugefügt.

Ist für mich etwas schleierhaft. Du kannst keinen Benutzer einem anderen hinzufügen..
Mach erstmal das mit der umask, wie oben beschrieben. Wenn es dann immer noch nicht klappt, mache mal folgendes (als root):
Code:
id wwwrun
id www

Das gleiche dann nochmal für den Benutzernamen und die Gruppe des PureFTPd-Users.
Und poste die Ausgabe hier.

Dann schauen wir weiter.
Khark
 
Vielen Dank für den Tipp mit umask.
Das war es wohl ... :D
Jetzt kann ich ja eigentlich meinen virtuellen FTP-User wieder dem FTP-User zu ordnen oder?
mit pure-pw usermod mr-burns -u 40 -g 49

Zur Vollständigkeit:
Ich habe den virtuellen User mr-burns mit folgendem Befehl angelegt:
pure-pw useradd mr-burns -u 30 -g 8 -d /srv/www/htdocs

id wwwrun:
uid=30(wwwrun) gid=8(www) groups=8(www)

id ftp:
uid=40(ftp) gid=49(ftp) groups=49(ftp)
 
Oben