ftp mit verschiedenen benutzern. wie?

scheffkocha

Neuer User
Mitglied seit
14 Apr 2008
Beiträge
4
Punkte für Reaktionen
0
Punkte
0
hallo leute.

würde gern einen ftp-server auf meiner box laufen lassen.
geht soweit alles, bis auf dass der ftpd nicht die benutzer aus der /etc/passwd liest:

Code:
/var/mod/root # ps | grep ftp
 4835 root        912 S   ftpd -DUl
14776 ftpuser     956 S   ftpd -DUl

Code:
/var/mod/root # cat /etc/passwd
root:x:0:0:root:/mod/root:/bin/sh
ftpuser:kl3WjzsWNLE.U:1000:0:ftp user:/var/media/ftp:/bin/sh
ftp:x:1:1:FTP readonly:/var/media/ftp/uStor01:/bin/sh

Code:
/var/mod/root # ftpget -u ftp localhost a a
ftpget: unexpected server response to PASS: 530 Login incorrect.

Code:
/var/mod/root # tail -f /var/log/messages
Apr 14 01:04:53 fritz ftp.info ftpd[14869]: connection from 127.0.0.1
Apr 14 01:04:53 fritz ftp.notice ftpd[14869]: FTP LOGIN FAILED FROM 127.0.0.1, ftp

kann mir einer n tipp geben was hier falsch ist?

dankeschön

--
scheffkocha

Fritz Box 7270
Firmware-Version 54.04.55-freetz-devel-2095
 
Zuletzt bearbeitet:
Bist Du sicher, daß der Benutzer nicht aus der passwd gelesen wird? Immerhin kommt die Fehlermeldung ja erst beim Paßwort.

Setze mal in das zweite Feld beim Benutzer ftp das gleiche ein, das in der Zeile darüber beim ftpuser steht und versuche es dann mit dem Paßwort, das der ftpuser hat.
 
jo danke für den hinweis, der mich auf die richtige fährte gebracht hat :)
habe das nochmal ausprobiert: das problem ist, dass "passwd ftp" das passwort für den benutzer ftp in /etc/shadow einträgt. der ftpd liest das passwort aber nicht dort, sondern in der /etc/passwd. man muss also das passwort aus der shadow in die passwd kopieren. Soweit klappt alles, ich kann mit dem entsprechenden benutzer per ftp auf die box connecten.

das problem nun ist, dass die /etc/passwd nach einem reboot der box auf den standard zurückgesetzt wird.
habe probiert, den benutzer mit "modsave flash" persistent zu speichern, das klappt aber nicht.

könnte den benutzer ja auch in der /tmp/flash/rc.custom setzen:
Code:
echo "ftp:blablubb:1001:0:ftp readonly:/var/media/ftp/uStor01:/bin/sh" > /etc/passwd

aber die datei wird leider nicht ausgeführt:
Code:
/var/flash # ls -l /tmp/flash/rc.custom
-rw-r--r--    1 root     root           17 Apr 14 22:15 /tmp/flash/rc.custom
/var/flash # cat /tmp/flash/rc.custom
alias ll='ls -l'
/var/flash # ll
-sh: ll: not found

das ist mein eigentliches problem, da hier ja auch noch folgendes rein muss, damit der ftp server mit den linux-benutzern startet:
Code:
killall ftpd
ftpd -DU

kann mir da jemand bei weiterhelfen?
vielen dank!
 
um mal meine eigene frage zu beantworten..

man sollte natürlich in die rc.custom mit reinschreiben, womit diese ausgeführt werden sollte *duck*
Code:
/var/mod/root # cat /var/tmp/flash/rc.custom
#!/bin/sh
echo "ftp:blablubb:1001:0:ftp readonly:/var/media/ftp/uStor01:/bin/sh" >> /var/tmp/passwd
killall ftpd
ftpd -DU
;)
 
Hi.
Noch was zu dem alias: Um eine Variable "global" zu setzen musst du die Datei mit einem ". " davor aufrufen.

MfG Oliver
 
Man kann in der Datei /tmp/flash/rc.custom keinen Alias definieren, jedenfalls nicht einen, der für die Login-Shell wirksam ist. Daß heißt nicht, daß die Datei nicht ausgeführt wurde.
Ein Alias muß in /etc/profile oder ~/.profile definiert werden, damit er für die Login-Shell wirksam ist.

Daß beim Start die Datei /etc/passwd vom AVM ctlmgr überschrieben wird, ist auch bekannt und bereits als Ticket im Freetz. Leider gibt es dafür bisher keine richtige Lösung, nur einige Notlösungen.
 
don't userdel and useradd work?

may need to alter shadow passwd.
 
hi,
danke für die zusätzlichen informationen! ich hoffe ihr könnt mir auch bei meinem neuen problem behilflich sein!

der ftp läuft soweit ganz gut. das problem ist jetzt der zugriff aus dem internet. habe den haken "USB-Speicher für Benutzer aus dem Internet freigeben" im webinterface gesetzt. darunter steht ja jetzt:
Code:
Adresse für den Zugang über das Internet:
ftp://[email protected]

so. nun ist das problem, dass der ftpd die nutzer die ich, wie oben beschrieben, in die /var/tmp/passwd eingetragen habe nicht mag. habe den ftpd mal mit zusätzlichem verbose logging gestartet:
Code:
# ftpd -UDld

wenn ich nun einen ftpget absetze:
Code:
# ftpget -u ftpuser -p xxx blubb.dyndns.org a a
erhalte ich folgende ausgabe
Code:
# tail -f /var/log/messages
Apr 26 15:22:07 fritz ftp.info ftpd[18215]: connection from <externe ip>
Apr 26 15:22:07 fritz ftp.debug ftpd[18215]: <--- 220
Apr 26 15:22:07 fritz ftp.debug ftpd[18215]: fritz.box FTP server (GNU inetutils 1.4.2) ready.
Apr 26 15:22:07 fritz ftp.debug ftpd[18215]: command: USER ftpuser
Apr 26 15:22:07 fritz ftp.debug ftpd[18215]: <--- 331
Apr 26 15:22:07 fritz ftp.debug ftpd[18215]: Password required for ftpuser.
Apr 26 15:22:07 fritz ftp.debug ftpd[18215]: command: PASS  ???
Apr 26 15:22:07 fritz ftp.debug ftpd[18215]: <--- 530
Apr 26 15:22:07 fritz ftp.debug ftpd[18215]: Login incorrect.
Apr 26 15:22:07 fritz ftp.debug ftpd[18215]: <--- 221
Apr 26 15:22:07 fritz ftp.debug ftpd[18215]: You could at least say goodbye.

wenn ich den ftpd 'normal', d.h. ohne -U starte:
Code:
# ftpd -Dld
funktioniert alles (die datei 'a' existiert natürlich nicht):
Code:
# tail -f /var/log/messages
Apr 26 15:34:49 fritz ftp.info ftpd[18440]: connection from <externe ip>
Apr 26 15:34:49 fritz ftp.debug ftpd[18440]: <--- 220
Apr 26 15:34:49 fritz ftp.debug ftpd[18440]: fritz.box FTP server (GNU inetutils 1.4.2) ready.
Apr 26 15:34:49 fritz ftp.debug ftpd[18440]: command: USER ftpuser
Apr 26 15:34:49 fritz ftp.debug ftpd[18440]: <--- 331
Apr 26 15:34:49 fritz ftp.debug ftpd[18440]: Password required for ftpuser.
Apr 26 15:34:49 fritz ftp.debug ftpd[18440]: command: PASS  ???
Apr 26 15:34:49 fritz ftp.debug ftpd[18440]: <--- 230-
Apr 26 15:34:49 fritz ftp.debug ftpd[18440]:    __  _   __  __ ___ __
Apr 26 15:34:49 fritz ftp.debug ftpd[18440]: <--- 230-
Apr 26 15:34:49 fritz ftp.debug ftpd[18440]:   |__ |_) |__ |__  |   /
Apr 26 15:34:49 fritz ftp.debug ftpd[18440]: <--- 230-
Apr 26 15:34:49 fritz ftp.debug ftpd[18440]:   |   |\  |__ |__  |  /_
Apr 26 15:34:49 fritz ftp.debug ftpd[18440]: <--- 230-
Apr 26 15:34:49 fritz ftp.debug ftpd[18440]:
Apr 26 15:34:49 fritz ftp.debug ftpd[18440]: <--- 230-
Apr 26 15:34:49 fritz ftp.debug ftpd[18440]:    The fun has just begun...
Apr 26 15:34:49 fritz ftp.debug ftpd[18440]: <--- 230
Apr 26 15:34:49 fritz ftp.debug ftpd[18440]: User ftpuser logged in.
Apr 26 15:34:49 fritz ftp.info ftpd[18440]: FTP LOGIN FROM <externe ip> as ftpuser
Apr 26 15:34:49 fritz ftp.debug ftpd[18440]: command: TYPE I
Apr 26 15:34:49 fritz ftp.debug ftpd[18440]: <--- 200
Apr 26 15:34:49 fritz ftp.debug ftpd[18440]: Type set to I.
Apr 26 15:34:49 fritz ftp.debug ftpd[18440]: command: PASV
Apr 26 15:34:49 fritz ftp.debug ftpd[18440]: <--- 227
Apr 26 15:34:49 fritz ftp.debug ftpd[18440]: Entering Passive Mode (169,254,2,1,14,220)
Apr 26 15:34:49 fritz ftp.debug ftpd[18440]: command: SIZE a
Apr 26 15:34:49 fritz ftp.debug ftpd[18440]: <--- 550
Apr 26 15:34:49 fritz ftp.debug ftpd[18440]: a: not a plain file.
Apr 26 15:34:49 fritz ftp.debug ftpd[18440]: command: RETR a
Apr 26 15:34:49 fritz ftp.debug ftpd[18440]: <--- 550
Apr 26 15:34:49 fritz ftp.debug ftpd[18440]: a: No such file or directory.
Apr 26 15:34:49 fritz ftp.debug ftpd[18440]: <--- 221
Apr 26 15:34:49 fritz ftp.debug ftpd[18440]: You could at least say goodbye.

hat da jemand eine begründung für?
was genau passiert in der box, wenn ich den haken "USB-Speicher für Benutzer aus dem Internet freigeben" setze?

danke!
 
Kostenlos!

Statistik des Forums

Themen
248,868
Beiträge
2,303,377
Mitglieder
378,529
Neuestes Mitglied
noahelsner