PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : vsftpd und chown



nobody1234
12.07.08, 14:57
Hallo Community,

ich habe heute vsftpd installiert und eingerichtet und das läuft auch wunderbar. Verwendungszweck soll sein, dass Leute ganz klassisch Dateien in ihre www-Ordner hochladen können und diese dann aus dem Web erreichbar sind.

Ich hab nur ein eklatantest Problem, das das Ganze gerade noch komplett zunichte macht:

Lädt man mit vsftpd was hoch, erhält diese Datei automatisch die Nutzerrechte hochladender_Benutzer:Gruppe_des_Nutzers. Damit kommt beim Zugriff aus dem Webbrowser natürlich ein Fehler, schließlich kann Apache nur auf Dateien mit dem User oder der Gruppe www-data zugreifen.

Gibt es nicht irgendwie die Möglichkeit Dateien beim Hochladen direkt auf chown www-data:ftpgroup zu setzen, dass die Dateien sowohl per FTP als auch WWW erreichbar sind?

rudi_m
12.07.08, 15:32
man vsftpd.conf
local_umask

Wenn du die ftp user auch Mitglieder der Gruppe www-data werden laesst, koennen sie dem apache Leserechte geben ohne gleich Rechte fuer all others geben zu müssen.

nobody1234
12.07.08, 15:34
Dank dir für die schnelle Antwort.

Das Problem ist, dass local_umask nur chmod setzt, nicht chown. D.h. ich müsste jede Datei "others-readable" machen. Lieber wäre mir aber mit umask nur ein chmod 600 oder so zu setzen und dafür die Dateien auf www-data zu chownen. Geht das nicht?

nobody1234
14.07.08, 14:15
niemand ne idee?

Roger Wilco
14.07.08, 14:24
So wie du es beschrieben hast: Entweder müssen alle "Benutzer" die UID von www-data erhalten oder du lässt periodisch ein Skript laufen, das die hochgeladenen Dateien mit chown dem Benutzer www-data zuordnet.

Das ist beides sicherheitstechnischer Unsinn. Die "Lösung" ist in keinem Punkt besser, als die Skripte dem jeweiligen Benutzer zugeordnet zu lassen und für alle lesbar zu machen.

Idealerweise würdest du eine Lösung wie SuPHP oder SuExec (evtl. in Kombination mit FastCGI) für PHP nutzen, so dass die Skripte auch unter der jeweiligen Benutzerkennung ausgeführt werden. Dann müssten sie auch nur noch für den jeweiligen Benutzer lesbar sein.

Veierabend
14.07.08, 14:25
Die Optionen chown_uploads=YES und chown_username=user kennst du?

nobody1234
14.07.08, 16:10
@Roger: Danke für deine Hinweise. Das ist ja alles sehr betrüblich, zumal es hier ja auch größtenteils um html und nicht php geht. Da wird mir wohl tatsächlich nix anderes übrig bleiben als die Ordner alle "others-readable" zu machen...


Die Optionen chown_uploads=YES und chown_username=user kennst du?

Die Ironie in deinem Post ist mir keinesfalls entgangen. Vielleicht solltest du dich lieber woanders hintrollen und selber mal das vsftpd Manual lesen...


chown_uploads
If enabled, all anonymously uploaded files will have the ownership changed to the user specified in the setting chown_username. This is useful from an administrative, and perhaps security, standpoint.

Default: NO

rudi_m
15.07.08, 06:59
Wieso gibst Du nicht den ftp usern als Standardgruppe, die des www-data (wie ich oben schrieb)
oder machst www-data zum Mitglied der Gruppe, der die ftpuser angehören?

Richtiger wäre natürlich SuPHP oder SuExec (wie Roger schrieb), da du so die verschiedenen webspaces voreinander schützt und ausserdem der ftp user automatisch Schreibrechte an den Dateien bekommt, die von von irgendwelchen scripten angelegt werden (cache Verzeichnisse etc.)

nobody1234
15.07.08, 10:14
@Rudi: Entschuldige, da stand ich bei deinem ersten Post wohl etwas auf der Leitung. Hab das jetzt erst richtig kapiert was du da geschrieben hattest... :ugly:

Per FTP sind die Verzeichnisse ohnehin voneinander geschützt, da durch vsftpd die user ja in ihr home-Verzeichnis (in diesem Fall ja der Webspace Ordner) chrooted werden. Für ausführbare Skripts wäre es natürlich vernünftig da noch irgendetwas zu machen, da ich aber im Moment ohnehin nur Freundes- und Bekanntenkreis hoste, sehe ich da zumindest im Moment keine größeren Probleme...