ZUSAMMENFASSUNG: FTP mit unsichtbaren Benutzern
Um einigen das Suchen zu ersparen: hier eine Bauanleitung für das erstellen unsichtbarer Benutzer, die via ftp auf vorbestimmte root-Ordner zurückgreifen können (root heisst hier nicht, dass sie root-Rechte haben. Im Gegenteil: sie werden in ihr Home-verzeichnis eingesperrt und können nich viel Schaden anrichten! Ihnen wird nur vorgegaukelt, dass es keine höhere Verzeichnisebene gibt, als die, in welcher sie sich befinden)
1. Vorbereiten des Systems
Siehe hierzu den sehr verständlichen Beitrag von Hairfeti
https://www.macuser.de/forum/showthread.php?s=&threadid=19402
Das Wichtigste in Kürze:
- Die später zu erstellenden ftp-User müssen in der Datei /etc/chroot festgelegt sein. Von dort aus werden sie in ihre "reservierten" root-Verzeichnisse bei Anmeldung geschickt.
- in die Datei /etc/ftpusers kommen all jene User, die sich nicht über ftp anmelden können sollen (z.B. www)
- in die Datei /etc/ftpwelcome kann ein Begrüßungstext eingegeben werden
- Die Datei /etc/ftpd.conf sollte nach Hairfeti´s Anweisungen bearbeitet werden
Nützliches Tool im Terminal: pico
sudo pico [Dateipfad, z.B. /etc/ftpusers]
Jetzt erstellen wir auf / das Verzeichnis ftp sowie nach Belieben Unterverzeichnisse.
Nun ein besonderes Problem: stellt man beim Erstellen der user (siehe unten) die shell von /bin/bash auf /dev/null oder /usr/bin/false (wie in einigen Foren beschrieben), so verweigert das System den Zugriff via ftp für diesen User.
Wir nutzen einen anderen Trick:
Erst müssen wir dem System weismachen, es gäbe ein shell namens
/usr/libexec/ftpd
also:
sudo pico /etc/shells (dort sind alle bekannten shells registriert)
unter die bereits bestehenden namen (ui, tcsh gibt s ja auch noch!)
geben wir einfach unser
/usr/libexec/ftpd
ein
http://www.macosxhints.com/article.php?story=20010511020010510
Nicht vergessen! wenn mit pico fertig! speichern! (Ctrl-X, dann y)
2. Erstellen der User (in diesem Fall herr "Mustermann")
Terminal öffnen, adminpasswort bereithalten
sudo niutil -create / /Users/mustermann
sudo niutil -createprop / /Users/mustermann uid [hier eine Zahl unter 500, ich habe von 499 einfach heruntergezählt]
sudo niutil -createprop / /Users/mustermann home /ftp [oder was anderes]
sudo niutil -createprop / /Users/mustermann shell /usr/libexec/ftpd
sudo niutil -createprop / /Users/mustermann gid [je nach Gruppenzugehörigkeit angben, der anonyme Account hat die Zahl 20]
sudo niutil -createprop / /Users/mustermann passwd "*"
sudo passwd mustermann
Für jeden User wiederholen.
In Netinfo können weitere nützliche Eigenschaften eingetragen werden:
expire 0
realname Mustermann
Wichtig ist, dass der uid unter 500 bleibt (die Plätze 499-400 sind meines Wissens unbelegt, da hat man viel Platz zum anlegen!)
Der gid hängt davon ab, welcher Gruppe der jeweilige User zugehörig sein soll.
Meine Gruppe "buddies" hat einen gemeinsamen gid, deshalb haben sie gemeinsame Leserechte auf definierte Ordner (Das geht auch sehr gut ohne Terminal z.B. mit NetInfo und Apfel-I)
3. Festlegung der Zugriffsrechte mit Apfel-I
4. Start des FTP Sharings
Es kann sein dass hier noch Updates folgen! Bitte beachten! Keine Garantie! Wer was falsch macht ist selber schuld!