Dateiserver per SMB
![USB-Stick am Router USB-Stick am Router](Bilder/Router-USB-Stick.jpg)
Die einfachste Lösung: Du hast einen Router, der über einen USB-Anschluss verfügt. Dann ist die Chance groß, das der Router den Inhalt eines USB-Stickes oder einer USB-Festplatte per SMB-Protokoll im heimischen Netz "freigeben" kann. Der Router ist 24 Stunden am Tag eingeschaltet und deswegen als Server gut geeignet. Ob der Router sich eignet oder nicht, steht mit Sicherheit in der Bedienungsanleitung. Stecke ein USB-Speichermedium an den Router an, rufe die Weboberfläche des Gerätes auf, gehe in den Dialog für NAS und stelle alles passend ein mit einem aussagekräftigen Namen für die "Freigabe". Fertig ist der Dateiserver.
Wie kommst Du an die Dateien und Ordner? Bei Windows heißt der Menüpunkt im Explorer "Netzlaufwerk verbinden". Weiter kann ich Dir nicht helfen, weil die einzelnen Windows-Versionen sich unterschiedlich verhalten. Zu Zeiten von XP konnte ich "Freigaben" einfach unter Netzwerk/Microsoft-Netzwerk" sehen, heute breche ich mir einen ab, wenn ich Windows 7 dazu bringen muss. Bei Linux gibst Du entweder im Dateimanager "smb:/" in die Adresszeile ein oder Du wählst irgendwo im Menü "Gehe zu Netzwerkordner" und Dir wird der Name des Routers angezeigt, wenn Du dort drauf klickst, der Name der "Freigabe". Bei beiden Betriebssystemen kannst Du jetzt in den Netzwerk-Ordnern frei schalten und walten, als wären es Ordner auf Deinem Rechner.
![Einstellungen für USB am Router Einstellungen für USB am Router](Bilder/Fritz-Box-USB.png)
Es sei denn, Du hast beim Einrichten der Freigaben auf dem Router Rechte vergeben können und hast das auch getan. Denn die Rechte eines normalen Betriebssystems gelten auf beim SMB-Protokoll und da heißt es aufpassen und die Rechte sorgfältig vergeben. Dazu gehört natürlich auch ein Dateisystem auf dem USB-Speichermedium, das mit Rechten umgehen kann wie z.B. NTFS bei Windows oder EXT4 bei Linux. Es kann auch sein, dass Dein Router gar nicht auf Rechte eingeht (trotz Dateisystem mit Rechten), dann kann jeder auf alle Dateien zugreifen, sie verändern oder löschen.
Ergänzung für Linux: der zuständige Dienst für "Freigaben" heißt "smbclient", er ist normalerweise installiert. Ebenfalls installiert und in Betrieb ist aber auch die Firewall und die verhindert im Grundzustand, dass sich Freigaben bemerkbar machen dürfen. Du musst also entweder die Firewall ausschalten (nicht weiter schlimm, solange Du im heimischen Netz hinter der Firewall des Routers sitzt) oder Du musst in den Firewall-Einstellungen den Dienst "smbclient" zulassen.
Wenn Dir das reicht, dann bist Du jetzt fertig.
Wenn Du mehr willst, dann ist könnte das ein Dateiserver sein, der per SMB die Daten zur Verfügung stellt und auf dem Du die Rechte anpassen kannst, falls das auf Deinem Router nicht möglich ist. Solche Server findest Du unter dem Zauberkürzel NAS zuhauf im Intenet oder beim Multimediahändler Deines Vertrauens in jeder Größe und Preisklasse. Dort ist schon die passende Software drauf und wenn Du Glück hast, dann ist sie gut konfiguriert. Wenn Du noch mehr Glück hast, dann ist das Gerät leise und verbraucht wenig Strom. Und vielleicht hat der Hersteller die "Tür" zur Software offen gelassen und Du kannst sie an Deine Wünsche anpassen. Und wenn nicht ...?
Derartige Probleme kannst Du von vornherein ausschließen, wenn Du Dir einen eigenen Server aufbaust. Dazu kannst Du jeden Rechner nehmen, auf dem Du Linux installieren kannst. Auf dem richtest Du genau die Benutzer ein, die es auf Rechnern in Deinem Netzwerk sind mit genau denselben Namen. Zusätzlich kannst Du im /home-Verzeichnis auch andere Ordner erstellen, die für alle oder Gruppen von Benutzern zugänglich sein sollen. Bei mir existiert ein solcher Ordner mit dem prägnanten Namen "fueralle". Dieser Ordner hat Schreib- und Leserechte für alle, die /home-Ordner der normalen User haben Schreibrecht für den betreffenden User und normalerweise Leserechte für jeden. Du solltest Dir überlegen, ob Du letzteres ausschaltest.
Zusätzlich installierst Du das Paket Samba und - falls noch nicht vorhanden - das Samba-Modul von Yast. Danach gehst Du bei Yast auf "Netzwerkdienste/Samba-Server einrichten". Im ersten Bild kannst Du Dir einen aussagekräftigen Namen ausdenken, im zweiten Bild nimmst Du den "keinen Domain-Controller", im dritten Bild findest Du 5 TAB-Reiter.
- Start ist einfach: bei einem Server-Computer soll der Dienst beim Hochfahren automatisch gestartet werden und natürlich muss der Firewall-Port offen sein.
- Freigaben zeigt Dir oben ein Reihe Zeilen, die die verfügbaren Freigaben zeigt. Die ersten beiden sind OK so, die restlichen sind wichtig, falls am Samba-Server auch ein Drucker hängt, auf dem alle drucken dürfen, oder sie dienen dazu, dass der Samba-Server das Login von Benutzern kontrolliert. Du fängst einfach an und löscht die Zeilen 3 bis 7. Jetzt kannst Du bei Bedarf eine Freigabe für alle eintragen.
- Identität erfordert nur die Wahl von "Unterstützung von WINS-Server"
- "Vertrauenswürdige Domains" und "LDAP-Einstellungen" sind für Dich unwichtig
Das Ganze ergibt eine Datei /etc/samba/smb.conf
, die Du jetzt in einem Editor öffnest. Und gleich wieder schließt! Denn das, was dort steht, ist viel zu kompliziert für den einfachen Home-Server. Nimm lieber den folgenden Code und erstelle bzw. überschreibe die Datei /etc/samba/smb.conf.
[global] workgroup = Blumenbeet server string = Tulpenzwiebel interfaces = eth0, lo bind interfaces only = yes map to guest = Bad User guest account = nobody guest ok = Yes log file = /var/samba/log.%m max log size = 10 [homes] comment = Home-Verzeichnisse valid users = %S read only = No browseable = No [public] comment = Daten path = /fueralle force user = hartmut force group = users guest ok = Yes
- Die
workgroup
kannst Du benennen, wie Du willst, ebenso den Meldetext des ServersTulpenzwiebel
- Wenn ein Gast in Deinem Haus auch auf Deinem Server stöbern darf, dann
guest ok = yes
, sonst eben nicht. [homes]
ist ein Zauberkürzel: es verbindet automatisch Benutzer, die sich am Server anmelden, mit/home/benutzer
auf dem Server. Bedingung: die betreffenden Benutzer müssen auf Client und dem Server denselben Namen und dasselbe Passwort haben (= %S
). Die Ordner werden nicht in den Netzwerken angezeigt (browsable = no
) und sie sind beschreibbar (read only = no
)[public]
kennzeichnet den Bereich auf dem Server, der allen gemeinsam zur Verfügung steht. Du musst sicherstellen, dass es den Ordner gibt ! Die Daten, die dort hinein geschrieben, bekommen alle als Eigentümernamen den Namen und die Gruppe des Benutzers, der dort steht (force user = hartmut
). Der Benutzer muss existieren ! Gäste dürfen auch dort stöbern, sie dürfen normal nicht in das Verzeichnis schreiben.
Benutzer zum Betriebssystem hinzufügen erkläre ich hier nicht, aber Du musst die Benutzer auch zu den Samba-Usern hinzufügen:
Jupiter:/home/hartmut # smbpasswd -a root New SMB password: hochgeheim Reenter smb password: hochgeheim Added user root.
und genauso mit den anderen Benutzern. Mit dem Programm unten können die Benutzer ihr Passwort ändern, so dass Du auch ein nicht geheimes Passwort für normale User nehmen kannst.
Die Konfiguration von Samba wird getestet mit dem Befehl: testparm
. Starte den Server erst, wenn dieser Test keine Fehler mehr zeigt !
Wenn Du alle Bedingungen erfüllt hast, dann kannst Du jetzt den Server starten mit rcsmb start
.
Ein erster Test, ob alles soweit läuft, sieht bei mir so aus:
hartmut@Saturn:~>smbclient -L localhost -U% Domain=[SONNENSYSTEM] OS=[Unix] Server=[Samba 3.6.3] Sharename Type Comment --------- ---- ------- fueralle Disk fuer alle zum Lesen hartmut Disk Hartmuts Backup-Verzeichnis karin Disk Karins Backup-Verzeichnis IPC$ IPC IPC Service (Dateneimer) Domain=[SONNENSYSTEM] OS=[Unix] Server=[Samba 3.6.3] Server Comment --------- ------- SATURN Dateneimer Workgroup Master --------- ------- SONNENSYSTEM SATURN
Eine komfortable Methode zum Einstellen der Konfigurationsdatei von Samba ist das Programm SWAT. SWAT ist ein Netzwerkdienst und wird deshalb gestartet von der zentralen Verwaltungsstelle dafür: YAST/Netzwerkdienste/xinetd. Dort aktivierst Du diesen Dienst und das war es. Anschließend kannst Du SWAT auf dem Server (nicht auf einem Client!) aufrufen, indem Du in einem Webbrowser in die Adresszeile eingibst: localhost:901
.
![Die SWAT-Oberfläche Swat-Oberfläche](Bilder/Swat.png)
Nachteil von SWAT: das Programm entfernt alle Kommentare aus der Konfigurationsdatei. Außerdem ist SWAT schwerer von einem entfernten Rechner (Client) aufzurufen. Wenn Du das möchtest oder sogar musst, weil Du eben nicht am Server sitzt, dann sind folgende Schritte nötig:
- In der Datei
"/etc/xinet.d/swat"
muss die Zeile"only_from = localhost"
auskommentiert werden - in der Datei
"/etc/xinet.d.conf"
dasselbe und es muss an der passenden Stelle eine Zeile eingefügt werden:"interface = 192.168.x.y"
, wobei Du für x.y die passenden Werte einsetzen musst: die IP des Servers selbst. - In der Firewall muss unter "Erlaubte Dienste/erweitert" der TCP-Port 901 hinzugefügt werden.
So, jetzt darfst Du allein weitermachen. Dabei kann Dir dieser Link gute Dienste leisten:
Weiter geht es mit dem