Keine Berechtigung unter ProFTPd

krizzelfix

Commander
Registriert
Sep. 2005
Beiträge
2.626
Hallo zusammen,

bin grade dabei ein FTP Server einzurichten.
Wenn ich mich an dem Server mit FileZilla anmelde, und einen Ordner erstelle, steht immer das im Log:
FileZilla schrieb:
Befehl: USER ftp
Antwort: 331 Anonymous login ok, send your complete email address as your password.
Befehl: PASS *******
Antwort: 230 Anonymous access granted, restrictions apply.
Status: Verbunden
Status: Erstelle Verzeichnis '/web_root'...
Befehl: CWD /
Antwort: 250 CWD command successful
Befehl: MKD web_root
Antwort: 550 web_root: Permission denied
Befehl: MKD /web_root
Antwort: 550 /web_root: Permission denied
'ftp' ist Mitglied der Gruppe 'www-data' und die Gruppe hat Berechtigungen für den Ordner.
drwxr-xr-x 2 root www-data 4096 2008-12-09 20:27 .
drwxr-xr-x 3 root root 4096 2008-11-27 19:00 ..
-rw-r--r-- 1 root www-data 2205 2005-12-14 17:25 apache_pb22_ani.gif
-rw-r--r-- 1 root www-data 2410 2005-12-14 17:25 apache_pb22.gif
-rw-r--r-- 1 root www-data 1502 2005-12-14 17:25 apache_pb22.png
-rw-r--r-- 1 root www-data 2326 2004-11-20 21:16 apache_pb.gif
-rw-r--r-- 1 root www-data 1385 2004-11-20 21:16 apache_pb.png
-rw-r--r-- 1 root www-data 101 2008-11-27 19:46 .htaccess
-rw-r--r-- 1 root www-data 24 2008-11-27 19:54 index.php
Was mich wunder sind die Daten im log vom Server:
Nov 29 16:55:29 hlemmur proftpd[2691] hlemmur.de (192.168.2.20[192.168.2.20]): FTP session opened.
Nov 29 16:55:29 hlemmur proftpd[2691] hlemmur.de (192.168.2.20[192.168.2.20]): no such group 'ftp'
Nov 29 16:55:29 hlemmur proftpd[2691] hlemmur.de (192.168.2.20[192.168.2.20]): ANON anonymous: Login successful.
Nov 29 16:55:29 hlemmur proftpd[2691] hlemmur.de (192.168.2.20[192.168.2.20]): Preparing to chroot to directory '/var/www/apache2-default'
Nov 29 17:00:33 hlemmur proftpd[2691] hlemmur.de (192.168.2.20[192.168.2.20]): FTP no transfer timeout, disconnected
Nov 29 17:00:33 hlemmur proftpd[2691] hlemmur.de (192.168.2.20[192.168.2.20]): FTP session closed.
Dec 02 17:49:23 hlemmur proftpd[9327] hlemmur.de (192.168.2.20[192.168.2.20]): FTP session opened.
Dec 02 17:49:23 hlemmur proftpd[9327] hlemmur.de (192.168.2.20[192.168.2.20]): no such group 'ftp'
Dec 02 17:49:23 hlemmur proftpd[9327] hlemmur.de (192.168.2.20[192.168.2.20]): ANON anonymous: Login successful.
Dem Log von FileZilla zu urteilen müsste ich als 'ftp' angemeldet sein. Der ProFTPd sagt aber was anderes. :confused_alt:

Danke im vorraus.

Grüße

krizzel
 
Danke für deine Hilfe, e-Laurin.

Habe jetzt die Gruppe 'ftp' erstellt, und auch den Benutzer hinzugefügt. Klappt aber nicht.
Wie weiss der Server denn das der Benutzer der in zwei Gruppen ist, in der einen Gruppe angemeldet wird, und in der anderen die Zurgiffsrechte für einen Ordner hat?
 
Dem Server ist das wurscht, das Rechtesystem von Linux managed das.

Btw, das Verzeichnis gehört dem Root, logisch, dass du da quasi nix dran ändern kannst. Ändere mal den Besitzer.
chown -R www-data:www-data ./Verzeichnis

Und versuche auch mal, den FTP-Server als User www-data mit der Gruppe www-data laufen zu lassen. Die Sache hier ist ein reines Rechteproblem.
 
Ok, dann werde ich nachher mal die Berechtigungen für den Ordner ändern. Wollte an denen so wenig ändern wie möglich.

Wie starte ich den Server denn als www-data User?
Einfach als www-data anmelden und dann den Server starten?

Haber leider erst wieder nach der Arbeit zugriff auf den Server.
Notiz an mich:DynDNS konfigurieren :D
 
nej nej... das iss scho in ordnung so mit dem besitzer... die gruppe darf aber gar nich darauf zugreifen...
schau her:

-rw-r--r-- 1 root www-data 2205 2005-12-14 17:25 apache_pb22_ani.gif

bedeutet:

rw = rw für den user, dem das gehört (root)
r = read für die gruppe (www-data)
r = read für andere/anonyme/den dreckigen rest :D

folglich gibst du ein:

chmod g+w 'dateiname'

sprich:

change mod(ification?) group+write 'dateiname'

oder

chmod -R g+w 'ordnername'

bei letzterem iss das -R wichtig = Rekursiv - ansonsten wird nur die berechtigung für den ordner geändert, nicht aber für die dateien im ordner

grüße,
riker
 
es war nur geraten, wofür das "mod" da drinne stehen könnte :D

kleines lückenfüllspiel am rande ;)
 
@Riker (rw = rw für den user, dem das gehört (root))

root darf eh alles, betrifft also nur benutzer uid > 0.
kannst du ja mal ausprobieren mit "chmod 000 testdatei" und dann testdatei mit nem texteditor bearbeiten (als root versteht sich).

gruß
hostile
 
natürlich darf der root alles...

ich habe es doch nur zum verdeutlichen genutzt ;)

man sollte neulingen (sorry @krizzelfix) nicht alles gleich ganz umständlich erklären, sondern so leicht wie möglich... auf die feinheiten kommt man dann nach der zeit ganz von alleine...
 
Habs garde mal probiert, hat aber leider nichts geklappt.
drwxrwx--x 2 www-data www-data 4096 2008-12-09 20:27 .
drwxr-xr-x 3 root root 4096 2008-11-27 19:00 ..
-rwxrwx--x 1 www-data www-data 2205 2005-12-14 17:25 apache_pb22_ani.gif
-rwxrwx--x 1 www-data www-data 2410 2005-12-14 17:25 apache_pb22.gif
-rwxrwx--x 1 www-data www-data 1502 2005-12-14 17:25 apache_pb22.png
-rwxrwx--x 1 www-data www-data 2326 2004-11-20 21:16 apache_pb.gif
-rwxrwx--x 1 www-data www-data 1385 2004-11-20 21:16 apache_pb.png
-rwxrwx--x 1 www-data www-data 101 2008-11-27 19:46 .htaccess
-rwxrwx--x 1 www-data www-data 24 2008-11-27 19:54 index.php
Den Server als www-data zu starten, brach mit dem Fehler ab, das der User nichts ins Log-Verzeichnis schreiben darf.

//Edit: @Riker: kein Problem, wenn ich kein neuling wäre, bräuchte ich hier nicht fragen ;).
 
dann solltest du mal in der konfig nachsehen, wo die log datei ist.
standardmäßig in /var/logs wenn ich mich nicht irre - ansonsten schaust du in /etc mal nach irgendwas wie proftp.conf oder so was nach, wo die logs landen und änderst dafür auch die rechte ;)
 
Berechtigungen sollten jetzt gesetzt sein:
drwxrwxrwx 10 root root 4096 2008-12-10 19:09 log
Bekomme trotzdem den Fehler
Starting ftp server: proftpd - notice: unable to bind to Unix domain socket at '/var/run/proftpd/test.sock': Permission denied
- notice: unable to listen to local socket: Address already in use
- error: /var/log is a world writeable directory
- Fatal: SystemLog: you are attempting to log to a world writeable directory on line 31 of '/etc/proftpd/proftpd.conf'
failed!
Ist es denn nicht einfach der Server als root laufen zu lassen und die Berechtigungen in dem Zielverzeichnis anzupassen?
 
einige programme haben sicherheitsmechanismen eingebaut, so dass bei einer falschen konfiguration kein schaden entstehen kann. also /var/log/ wieder auf 744 setzen. dann noch ein chown ftp:ftp /var/run/proftpd/ (ich denke mal das ist der benutzer mit dem proftpd läuft?), damit auch die datei test.sock angelegt werden kann.

gruß
hostile

PS: nehmen wir man an, dein ftpd läuft als root. nun hat n entwickler leider nen fehler aus versehen einprogrammiert und der ftp-befehl "cd" und anschließend gesendete zeichen werden als programmcode interpretiert. da der prozess als root läuft darf jeder programmcode ausgeführt werden.

wenn der ftpd allerdings als unprivilegierter dienst läuft könnte das ganze glimpflich enden.... (zb, dass nur die logdatei vollgeschrieben wird...)

PS2: Ich hätte auch nicht proftpd genommen, sondern vsftpd, aber das ist geschmackssache...
 
Zuletzt bearbeitet:
Ich wollte eigentlich den Apache und FTP in einer Gruppe laufen lassen aber mit unteschiedlichen Benutzern.
Wollte damit erreichen, dass ich mit FTP und PHP Datein hochladen kann, ohne das ich den Besitzer auf www-data umändern muss.

Mir ist zudem grade aufgefallen, dass ich immer mit meinem Hauptbenutzer dern FTP starten wollte. Kann ja gar nicht funktionieren.^^

Nur wie kann ich mich mit dem Benutzer FTP oder www-data anmelden. Habe für die ja nie Passwörter eingestellt.
 
ein hoch auf vsftp :schluck:

sollte man sich angewöhnen... auch viel komplexer von den möglichkeiten und feiner einzustellen in den einzeloptionen


edit:

das verwirrt mich gerade irgendwie...

warum willst du mit php hochladen?
programmierst du mit php?
 
Zuletzt bearbeitet:
Ja, arbeite viel mit PHP. Deswegen habe ich auch den Apache installiert.
Und es kommt immer mal vor das man Dateien per PHP hochläd. Vor allem wenn man ein Upload-Tool schreibt ;)
 
ah... ok
aber warum sollen sie dann in eine gruppe?

würden nicht auch einfach 2 versch. benutzer reichen?
 
krizzelfix schrieb:
Mir ist zudem grade aufgefallen, dass ich immer mit meinem Hauptbenutzer dern FTP starten wollte. Kann ja gar nicht funktionieren.^^

Nur wie kann ich mich mit dem Benutzer FTP oder www-data anmelden. Habe für die ja nie Passwörter eingestellt.


die dienste musst du mit root-rechten starten.
entweder, du arbeitest direkt als root mit befehl "su" (dafür muss dein benutzer mit der uid >= 1000 in der gruppe wheel sein) oder mit sudo (ich bevorzuge "su"). zu welchen gruppen oder welche uid du hast kannst du einfach mit dem befehl "id" ausgeben oder "id <benutzername>".

zu dem apache <-> ftp-problem: du kannst in den config-dateien einstellen unter welchem benutzer die dienste laufen und unter welcher gruppe. du kannst zb auch die benutzer www-data und ftp in eine www-alles-gruppe stecken und die verzeichnisse entsprechend anpassen.
man kann ausserdem noch einstellen mit welcher maske bzw mit welchem mode die dateien auf dem datenträger erstellt werden.

gruß
hostile
 
Dann hat PHP Probleme mit dem hochladen.
Wenn der Ziel Ordner dem User FTP gehört und PHP in www-data augeführt wird, darf PHP da nicht rein schreiben.
Dies kann umgangen werden in dem neue Daten den Besitzer www-data bekommen. Dann darf der FTP die Daten überschreiben.
Frag mich jetzt aber bitte nicht warum das so ist;).

Aber ich dachte mir das ich das Problem umgehe, in dem ich beide in eine Gruppe stecke.

@hostile:
Ich wollte den FTP Server als FTP bzw. www-data starten, da e-Laurin es mir empfohlen hatte.
Sonst läuft der Server immer unter root.
 
Zuletzt bearbeitet:
Zurück
Oben