Motivation
Ich habe eine USB-Festplatte an meiner 7270 hängen, auf die mehrere Personen über FTP und das Windows-Netzwerk zugreifen. Für jeden Benutzer soll ein zugangsgeschützter persönlicher Ordner eingerichtet werden, darüberhinaus sollen die angemeldeten Benutzer einen gemeinsamen Ordner haben und es soll ein öffentlicher Ordner für Besucher zur Verfügung stehen.
Die Platte ist und bleibt FAT32-formatiert, da sie oft kurzfristig abgehängt und an Windows-Rechnern betrieben wird. Befehle wie chmod/chown stehen somit nicht zur Rechteverwaltung der Benutzer und Ordner zur Verfügung.
Ich habe mich die letzten zwei Tage jetzt damit beschäftigt (war am Anfang ein ziemlicher Anfänger auf dem Gebiet) und hoffe ich kann anderen die Einrichtungszeit mit diesem HowTo etwas verkürzen.
Ziel
Hier eine Übersicht über die gewünschten Ordner mit Zugangsbeschränkungen für zwei reguläre Nutzer (user1, user2) und den Gast-Account (gast). Diese werden im Folgenden in FTP und Samba eingerichtet.
Voraussetzung
Meine Anleitung geht von einem frisch installierten Freetz aus.
Pakete
Getestet habe ich alles unter folgender Umgebung:
Hinweis: Die stable-Versionen von Freetz haben noch Probleme, Benutzer dauerhaft zu speichern. Diese Anleitung bezieht sich explizit auf die trunk-Version (Entwicklerversion). Es ist aber davon auszugehen, dass die Probleme in der nahen Zukunft in den stable-Versionen verschwinden.
Vorgehen
Order-Struktur auf der USB-Platte wird vorbereitet.
Dazu die folgenden Ordner im Hauptverzeichnis der Platte erstellen:
Die AVM-Lösungen von FTP und Samba werden abgeschaltet.
fritz.box -> Einstellungen -> Erweiterte Einstellungen -> USB-Geräte -> USB-Speicher
USB-Speicher FTP-Zugriff aktivieren -> Häkchen weg
USB-Netzwerkspeicher aktivieren -> Häkchen weg
Diensteinstellungen werden im Freetz-Menü eingestellt.
FTP
Pakete -> vsftpd
Starttyp -> automatisch
-> Zugriff
So ist sichergestellt, dass nur die genannten Nutzer und diese nur auf ihr Verzeichnis zugreifen können.
-> Zusätzliche Konfigurationsoptionen (für Experten)
Später werden wir die Schreibrechte für die Benutzer getrennt festlegen.
->Übernehmen<-
Samba
Pakete -> Samba
-> Starttyp -> automatisch
-> Netzwerkschnittstelle, -> Name und -> Arbeitsgruppe stellt ihr nach euren Gegebenheiten ein.
->Übernehmen<-
Einstellungen -> Samba: Erweitert
Hier werden die Samba-Freigaben werden eingerichtet. Die Befehle sollten ziemlich selbsterklärend sein und sind leicht für eure Bedürfnisse anzupassen.
user1 und user3 bekommen exklusiven Zugriff auf ihre Heim-Verzeichnisse, der public-Ordner kann ohne Zugangsdaten read-only erreicht werden.
->Übernehmen<-
TelNet-Zugang wird gestartet.
Dienste -> telnetd -> start
Nun geht es auf der Kommandozeile weiter.
Die lokalen Benutzer werden eingerichtet.
Jeder Benutzer erhält dabei ein explizites Heim-Verzeichnis welches von vsFTP automatisch übernommen wird.
Die Verzeichnisse shared und public werden in die jeweiligen Heim-Verzeichnisse der Benutzer eingebunden.
Dies soll immer sichergestellt werden, wenn die USB-Platte an die Fritz!Box angeschlossen wird. Dazu wird die Datei autorun.sh im Hauptverzeichnis der USB-Platte erstellt. Dass nach ordnungsgemäßem Abhängen der Platte die mounts auch wieder entfernt werden schreiben wir unmount-Befehle in die autoend.sh.
/var/media/ftp/uStor01/autorun.sh
/var/media/ftp/uStor01/autoend.sh
Ein kleiner Hinweis, falls ihr doch eine Festplatte mit einem Linux-Dateisystem verwendet: Die autorun- und autoend-Dateien benötigen Ausführungsrechte. Für FAT32/NTFS-Platten ist dieser Schritt nicht notwendig.
FTP-Schreibrechte für die Benutzer werden gesetzt.
Dazu erhält jeder Benutzer eine Datei mit seinem Dateinamen im Ordner /var/media/ftp/uStor01/vsftp_user_conf/, die festlegt, ob er schreibrechte hat oder nicht.
/var/media/ftp/uStor01/vsftp_user_conf/user1
/var/media/ftp/uStor01/vsftp_user_conf/user2
/var/media/ftp/uStor01/vsftp_user_conf/gast
Die Samba-Benutzerkonten werden eingerichtet.
Hierzu schauen wir uns die aktuellen Benutzerkonten an.
/var/tmp/smbpasswd.cleartext
Anschließend werden sie in verschlüsselte Passwörter übersetzt.
Die neue Samba-Passwort-Datei wird in die Fritz!Box gespeichert.
Einstellungen -> rc.custom
->Übernehmen<-
Das wars!
Nach einem Neustart der Box sind die Ordner nun per FTP (ftp://fritz.box) und Samba (\\fritz.box) mit den gegebenen Zugangsdaten erreichbar.
Schlussbemerkungen
Falls jemand an irgendeiner Stelle noch einen Trick hat, wie das ganze schneller/einfacher/besser geht, immer her mit euren Tipps.
Was mich persönlich noch interessieren würde:
Fehler werden natürlich auch korrigiert, falls sich etwas eingeschlichen hat. Nur Kommentare wie "Linux-Filesystem benutzen" könnt ihr euch bitte ersparen... Es wird genug Umgebungen geben wo das nicht zweckmäßig oder eben nicht gewünscht ist.
Danke
Ein herzliches Dankeschön geht an die IPPF-User matze1985 und Darkyputz, die mir im Forum geholfen haben, was den Samba-Teil angeht basiert das HowTo auf der Anleitung von Albino2004 - auch dafür ein dickes Danke!
Ich habe eine USB-Festplatte an meiner 7270 hängen, auf die mehrere Personen über FTP und das Windows-Netzwerk zugreifen. Für jeden Benutzer soll ein zugangsgeschützter persönlicher Ordner eingerichtet werden, darüberhinaus sollen die angemeldeten Benutzer einen gemeinsamen Ordner haben und es soll ein öffentlicher Ordner für Besucher zur Verfügung stehen.
Die Platte ist und bleibt FAT32-formatiert, da sie oft kurzfristig abgehängt und an Windows-Rechnern betrieben wird. Befehle wie chmod/chown stehen somit nicht zur Rechteverwaltung der Benutzer und Ordner zur Verfügung.
Ich habe mich die letzten zwei Tage jetzt damit beschäftigt (war am Anfang ein ziemlicher Anfänger auf dem Gebiet) und hoffe ich kann anderen die Einrichtungszeit mit diesem HowTo etwas verkürzen.
Ziel
Hier eine Übersicht über die gewünschten Ordner mit Zugangsbeschränkungen für zwei reguläre Nutzer (user1, user2) und den Gast-Account (gast). Diese werden im Folgenden in FTP und Samba eingerichtet.
- Ordner -> Zugangsberechtigte Benutzer
- user1 -> user1
- user2 -> user2
- shared -> user1, user2
- public -> user1, user2, gast
Voraussetzung
Meine Anleitung geht von einem frisch installierten Freetz aus.
Pakete
- Samba (Filesharing + Nameservices)
- Vsftp
- USB storage names
- Automount filsystems
- Execute autorun.sh
Getestet habe ich alles unter folgender Umgebung:
- Fritz!Box 7270 16MB
- freetz 54.04.67freetz-devel-3107
- Samba 3.0.24
- Vsftpd 2.0.7
- Mozilla Firefox 3.0.6
- Windows Vista Business 32bit
Hinweis: Die stable-Versionen von Freetz haben noch Probleme, Benutzer dauerhaft zu speichern. Diese Anleitung bezieht sich explizit auf die trunk-Version (Entwicklerversion). Es ist aber davon auszugehen, dass die Probleme in der nahen Zukunft in den stable-Versionen verschwinden.
Vorgehen
Order-Struktur auf der USB-Platte wird vorbereitet.
Dazu die folgenden Ordner im Hauptverzeichnis der Platte erstellen:
Code:
user1 #Heimverzeichnis user1
user1/shared
user1/public
user2 #Heimverzeichnis user2
user2/shared
user2/public
shared #gemeinsamer Ornder user1, user2
public #Heimverzeichnis gast
Die AVM-Lösungen von FTP und Samba werden abgeschaltet.
fritz.box -> Einstellungen -> Erweiterte Einstellungen -> USB-Geräte -> USB-Speicher
USB-Speicher FTP-Zugriff aktivieren -> Häkchen weg
USB-Netzwerkspeicher aktivieren -> Häkchen weg
Diensteinstellungen werden im Freetz-Menü eingestellt.
FTP
Pakete -> vsftpd
Starttyp -> automatisch
-> Zugriff
Code:
[ ]Anonymes FTP
[X]Lokale Benutzer
[X]chroot jail
[ ]Erlaube root login
[ ]Erlaube ftpuser login
-> Zusätzliche Konfigurationsoptionen (für Experten)
Code:
user_config_dir=/var/media/ftp/uStor01/vsftp_user_conf
->Übernehmen<-
Saving settings...done.
Saving vsftpd.cfg...done.
Writing /var/flash/freetz...done.
10752 bytes written.
Samba
Pakete -> Samba
-> Starttyp -> automatisch
-> Netzwerkschnittstelle, -> Name und -> Arbeitsgruppe stellt ihr nach euren Gegebenheiten ein.
->Übernehmen<-
Saving settings...done.
Saving samba.cfg...done.
Writing /var/flash/freetz...done.
10752 bytes written.
Einstellungen -> Samba: Erweitert
Hier werden die Samba-Freigaben werden eingerichtet. Die Befehle sollten ziemlich selbsterklärend sein und sind leicht für eure Bedürfnisse anzupassen.
user1 und user3 bekommen exklusiven Zugriff auf ihre Heim-Verzeichnisse, der public-Ordner kann ohne Zugangsdaten read-only erreicht werden.
Code:
[user1]
comment = user1 privat
path = /var/media/ftp/uStor01/user1
write cache size = 65536
read only = no
guest ok = no
valid users = user1
[user2]
comment = user2 privat
path = /var/media/ftp/uStor01/user2
write cache size = 65536
read only = no
guest ok = no
valid users = user2
[public]
comment = public
path = /var/media/ftp/uStor01/public
write cache size = 65536
read only = yes
guest ok = yes
Saving sharesx...done.
Writing /var/flash/freetz...done.
10752 bytes written.
TelNet-Zugang wird gestartet.
Dienste -> telnetd -> start
Nun geht es auf der Kommandozeile weiter.
Die lokalen Benutzer werden eingerichtet.
Jeder Benutzer erhält dabei ein explizites Heim-Verzeichnis welches von vsFTP automatisch übernommen wird.
Code:
adduser -h /var/media/ftp/uStor01/user1 user1
adduser -h /var/media/ftp/uStor01/user2 user2
adduser -h /var/media/ftp/uStor01/public gast
Die neuen Zugangsdaten werden erstmal gespeichert./var/media/ftp/uStor01/ # adduser -h /var/media/ftp/uStor01/user1/ user1
adduser: /var/media/ftp/uStor01/user1/: File exists
Changing password for user1
New password:
Retype password:
Password for user1 changed by root
/var/media/ftp/uStor01/ # adduser -h /var/media/ftp/uStor01/user2/ user2
adduser: /var/media/ftp/uStor01/user2/: File exists
Changing password for user2
New password:
Retype password:
Password for user2 changed by root
/var/media/ftp/uStor01/ # adduser -h /var/media/ftp/uStor01/public/ gast
adduser: /var/media/ftp/uStor01/public/: File exists
Changing password for gast
New password:
Retype password:
Password for gast changed by root
Code:
modsave all
/var/media/ftp/uStor01/technik # modsave all
Saving users, groups and passwords...done.
Saving config...done.
Writing /var/flash/freetz...done.
10752 bytes written.
Die Verzeichnisse shared und public werden in die jeweiligen Heim-Verzeichnisse der Benutzer eingebunden.
Dies soll immer sichergestellt werden, wenn die USB-Platte an die Fritz!Box angeschlossen wird. Dazu wird die Datei autorun.sh im Hauptverzeichnis der USB-Platte erstellt. Dass nach ordnungsgemäßem Abhängen der Platte die mounts auch wieder entfernt werden schreiben wir unmount-Befehle in die autoend.sh.
/var/media/ftp/uStor01/autorun.sh
Code:
mount -o bind /var/media/ftp/uStor01/shared /var/media/ftp/uStor01/user1/shared
mount -o bind /var/media/ftp/uStor01/shared /var/media/ftp/uStor01/user2/shared
mount -o bind /var/media/ftp/uStor01/public /var/media/ftp/uStor01/user1/public
mount -o bind /var/media/ftp/uStor01/public /var/media/ftp/uStor01/user2/public
Code:
umount /var/media/ftp/uStor01/user1/shared
umount /var/media/ftp/uStor01/user2/shared
umount /var/media/ftp/uStor01/user1/public
umount /var/media/ftp/uStor01/user2/public
Ein kleiner Hinweis, falls ihr doch eine Festplatte mit einem Linux-Dateisystem verwendet: Die autorun- und autoend-Dateien benötigen Ausführungsrechte. Für FAT32/NTFS-Platten ist dieser Schritt nicht notwendig.
Code:
chmod +x /var/media/ftp/uStor01/autorun.sh
chmod +x /var/media/ftp/uStor01/autoend.sh
FTP-Schreibrechte für die Benutzer werden gesetzt.
Dazu erhält jeder Benutzer eine Datei mit seinem Dateinamen im Ordner /var/media/ftp/uStor01/vsftp_user_conf/, die festlegt, ob er schreibrechte hat oder nicht.
/var/media/ftp/uStor01/vsftp_user_conf/user1
Code:
write_enable=yes
Code:
write_enable=yes
Code:
write_enable=no
Die Samba-Benutzerkonten werden eingerichtet.
Hierzu schauen wir uns die aktuellen Benutzerkonten an.
Die Benutzer-IDs (1000, 1001, 1002) müssen wir uns merken. Sie werden mit den neue Samba-Passwörtern in eine Klartext-Datei eingetragen. (Die Datei wird in /var/tmp/ erstellt und überlebt so einen Reboot der Box nicht.)/var/media/ftp/uStor01 # cat /etc/passwd
root:x:0:0:root:/mod/root:/bin/sh
ftpuser:x:1:1:ftp user:/var/media/ftp:/bin/sh
ftp:x:2:1:FTP account:/home/ftp:/bin/sh
user1:x:1000:1000:Linux User,,,:/var/media/ftp/uStor01/user1/:/bin/sh
user2:x:1001:1001:Linux User,,,:/var/media/ftp/uStor01/user2/:/bin/sh
gast:x:1002:1002:Linux User,,,:/var/media/ftp/uStor01/gast/:/bin/sh
/var/tmp/smbpasswd.cleartext
Code:
user1:1000:hierDasPasswortVonUser1:[U ]:LCT-00000001:
user2:1001:hierDasPasswortVonUser2:[U ]:LCT-00000001:
Das Ergebnis sieht so aus:/var/tmp # smbpasswd
2 samba users written to /mod/etc/samba/smbpasswd
/var/tmp # cat /mod/etc/samba/smbpasswd
user1:1000:A5936F0BD09E69FA21EC3E1B87A3D642:ED8F7E6D748305AE7D4573945B6BA8D6:[U ]:LCT-00000001:
user2:1001:65F97D3292B742B321EC3E1B87A3D642:3B7094A62035F2190DAF2E6274235EC2:[U ]:LCT-00000001:
Die neue Samba-Passwort-Datei wird in die Fritz!Box gespeichert.
Code:
cp /mod/etc/samba/smbpasswd /var/tmp/flash
modsave all
Damit diese bei jedem Neustart geladen wird, müssen noch einen Eintrag in die rc.custom machen. Dazu temporär die Sicherheitskonfiguration umstellen./var/tmp # cp /mod/etc/samba/smbpasswd /var/tmp/flash
/var/tmp # modsave all
Saving users, groups and passwords...done.
Saving config...done.
Writing /var/flash/freetz...done.
11264 bytes written.
Nun geht es zurück ins Freetz-WebIF/var/tmp # echo 0 > /tmp/flash/security
Einstellungen -> rc.custom
Code:
cat /var/tmp/flash/smbpasswd > /mod/etc/samba/smbpasswd
Saving rc_custom...done.
Writing /var/flash/freetz...done.
13824 bytes written.
Das wars!
Nach einem Neustart der Box sind die Ordner nun per FTP (ftp://fritz.box) und Samba (\\fritz.box) mit den gegebenen Zugangsdaten erreichbar.
Schlussbemerkungen
Falls jemand an irgendeiner Stelle noch einen Trick hat, wie das ganze schneller/einfacher/besser geht, immer her mit euren Tipps.
Was mich persönlich noch interessieren würde:
- Read-Only Bind-Mounts, so dass auch im FTP ordnerspezifische Schreibrechte gesetzt werden können. Scheint aber unter FAT32 mit aktuellem Kernel (noch) nicht zu funktionieren.
Fehler werden natürlich auch korrigiert, falls sich etwas eingeschlichen hat. Nur Kommentare wie "Linux-Filesystem benutzen" könnt ihr euch bitte ersparen... Es wird genug Umgebungen geben wo das nicht zweckmäßig oder eben nicht gewünscht ist.
Danke
Ein herzliches Dankeschön geht an die IPPF-User matze1985 und Darkyputz, die mir im Forum geholfen haben, was den Samba-Teil angeht basiert das HowTo auf der Anleitung von Albino2004 - auch dafür ein dickes Danke!
Zuletzt bearbeitet: