Samba-Freigabe auf dem Raspberry Pi einrichten
Mit Raspbian Jessie geprüft.
Das Ziel ist, den Raspberry Pi als File-Server zu betreiben, auf den man per Windows-Explorer zugreifen kann. Die dafür am besten geeignete Software-Lösung ist ein Samba-Server. Mit Samba lassen sich fast alle Funktionen eines Windows-Servers realisieren.
Dazu gehören:
- Datei- und Verzeichnis-Freigaben (Shares)
- Drucker-Freigaben
- Active Directory Domain Controller (ab Samba 4)
Aufgaben
- Samba-Server installieren.
- Grundkonfiguration des Samba-Servers.
- Verzeichnis-Freigaben einrichten.
- Benutzerverwaltung: Samba-Passwort für Benutzer einrichten.
Vorbemerkung zu den folgenden Lösungen
Im Vergleich zu den üblichen Tutorials und Anleitungen zur Einrichtung von Samba-Freigaben ist diese Anleitung etwas umfangreicher. Der Grund ist, dass eine Verzeichnis-Freigabe nicht gleich Verzeichnis-Freigabe ist. Man kann generell für alle Benutzer ein Verzeichnis freigeben, für eine bestimmte Benutzergruppe oder für einen einzelnen Benutzer. In dieser Anleitung berücksichtigen wir alle drei Möglichkeiten. Im jeweiligen Einzelfall geht es darum, für wen welche Berechtigungen gesetzt werden muss. Das sparen andere Anleitungen aus. Aber genau hier liegen später die Probleme, wenn man selber individuelle Freigaben einrichten will.
Lösung: Samba-Server installieren
Relevant für den Samba-Server sind die Pakete "samba" und "samba-common". Das Paket "smbclient" wäre auf einem Server nicht notwendig. Es hat allerdings den Vorteil, dass man lokal auf dem Server die Freigaben testen kann. Das vereinfacht die Fehlersuche.
sudo apt-get update
sudo apt-get install samba samba-common smbclient
Das Herunterladen und Installieren kann je nach System schon mal etwas dauern. Es schadet nicht ein wenig Geduld mitzubringen.
Dann prüfen wir, ob Samba läuft.
sudo service smbd status sudo service nmbd status
Die Ausgabe sollte sein, dass die Dienste "nmbd" und "smbd" laufen.
Lösung: Grundkonfigurieren des Samba-Servers
Für die Samba-Grundkonfiguration gibt es eine zentrale Konfigurationsdatei "/etc/samba/smb.conf". Diese Datei ist in der Vorkonfiguration äußerst umfangreich und dadurch unübersichtlich. Für eine einfache Grundkonfiguration empfiehlt sich die Datei umzubenennen und neu zu erstellen.
sudo mv /etc/samba/smb.conf /etc/samba/smb.conf_alt sudo nano /etc/samba/smb.conf
Die folgende Grundkonfiguration ist nicht allgemeingültig, sondern für die meisten Anwendungen sinnvoll und zweckmäßig anzusehen. Das heißt, für den Anfang reicht es aus. Später muss sie vielleicht individuell angepasst werden.
[global] workgroup = WORKGROUP security = user encrypt passwords = yes client min protocol = SMB2 client max protocol = SMB3
Diese Grundkonfiguration gibt eine global gültige Konfiguration vor. Das wird durch den Bereich "global" gekennzeichnet, der in eckige Klammern gesetzt ist. Alle darin gemachten Angaben gelten für alle später konfigurierten Freigaben.
Der Parameter "workgroup" gibt die Bezeichnung der Arbeitsgruppe an. Damit hat man in Windows-Netzwerken Computer in Gruppen strukturiert. Heute spielt dieser Parameter keine Rolle mehr, da neuere Windows-Versionen, diese Angabe nicht mehr berücksichtigen. Er ist nur noch aus Kompatibilitätsgründen enthalten. Hier steht typischerweise "Workgroup" oder "Arbeitsgruppe".
Der Parameter "security" gibt an, welche Sicherheitsstufe beim Zugriff auf die Freigaben gelten sollen. Der Wert "user" ist eine gute Wahl und sagt aus, dass die User-Verwaltung des Servers verwendet werden soll. Das heißt, für den Zugriff auf die Samba-Freigaben gelten die eingerichteten Nutzer und deren Berechtigungen auf dem Server.
Der Parameter "encrypt passwords" mit "yes" sorgt dafür, dass die Passwörter bei der Authentifizierung verschlüsselt übertragen werden. Aus Sicherheitsgründen eine sinnvolle Einstellung, die keine Nachteile bei der Nutzung mit sich bringt.
Diese beiden Zeilen dienen dazu, Zugriffe ohne oder mit falschen Zugangsdaten automatisch als Gast angemelden. Nur dann greifen auch entsprechende Optionen, wenn Freigaben für jeden freigegeben werden sollen.
Bei Windows 10 ist das Protokoll SMB mit der Version 1 als nicht sicher eingestuft und deshalb deaktiviert. Deshalb müssen zwei Parameter mit der kleinsten und höchsten SMB-Protokoll-Version angegeben werden.
Hat man diese Grundkonfiguration in die Datei eingetragen, kann man die Datei speichern und schließen: Strg + O, Return, Strg + X.
Dann testen wir diese Konfigurationsdatei. Das hat den Vorteil, dass wenn wir etwas falsch oder fehlerhaft eintragen, dann können wir den Fehlstart des Samba-Servers vermeiden.
testparm
Wenn hier kein Fehler kommt, dann ist alles ok. Ansonsten muss der Fehler beseitigt und die Datei noch mal getestet werden.
Nach jeder Änderung an der Konfigurationsdatei müssen die Samba-Dienste neu gestartet werden. Erst dann wird die Konfiguration übernommen.
sudo service smbd restart sudo service nmbd restart
Sofern die Konfiguration vollständig und korrekt ist, geht der Samba-Server wieder in Betrieb.
Lösung: Samba-Freigaben für Verzeichnisse einrichten
Um Freigaben für Verzeichnisse einzurichten brauchen wir als erstes ein Verzeichnis, in dem wir die Verzeichnisse anlegen, die wir später freigeben wollen. Im Prinzip ist es egal, wo sich der Ordner befindet. Ganz gut eignet sich dazu das Home-Verzeichnis "/home" in dem wir ein Verzeichnis mit dem Namen "shares" anlegen. Hier werden dann anschließend die Verzeichnisse angelegt, die freigeben werden sollen.
sudo mkdir /home/shares
Dann erstellen wir die Verzeichnisse, die wir nachher freigeben wollen und setzen auch gleich die dazu passenden Berechtigungen.
Es müssen nicht alle Verzeichnisse angelegt werden. Man kann sich auch eines für die eigenen Zwecke heraussuchen und die anderen weglassen.
Allgemeines Verzeichnis für alle zum Testen:
sudo mkdir /home/shares/test sudo chown root:root /home/shares/test/ sudo chmod 777 /home/shares/test/
Verzeichnis nur für die Benutzergruppe "users":
sudo mkdir /home/shares/users sudo chown root:users /home/shares/users/ sudo chmod 770 /home/shares/users/
Verzeichnis nur für den Benutzer "pi":
sudo mkdir /home/shares/pi sudo chown pi:pi /home/shares/pi/ sudo chmod 700 /home/shares/pi/
Dann öffnen wir die Samba-Konfigurationsdatei und tragen dort die Freigaben ein.
sudo nano /etc/samba/smb.conf
Auch hier gilt, nur die Freigaben eintragen, für die das Verzeichnis angelegt wurde.
[SambaTest] comment = Samba-Test-Freigabe path = /home/shares/test read only = no
[SambaUsers] comment = Samba-Users-Freigabe path = /home/shares/users read only = no
[SambaPi] comment = Samba-Pi-Freigabe path = /home/shares/pi read only = no
Der Name der Freigabe ist in eckige Klammern gesetzt. Das vereinfacht die Verwaltung und den Zugriff auf die Freigabe.
Die Datei muss anschließend gespeichert und geschlossen werden: Strg + O, Return, Strg + X.
Nach der Änderung der Konfigurationsdatei empfiehlt sich ein Test.
testparm
Wenn der Test erfolgreich war, dann muss Samba neu gestartet werden.
sudo service smbd restart sudo service nmbd restart
Damit sind die Freigeben im Netzwerk verfügbar. Allerdings fehlt noch die Berechtigung darauf zuzugreifen. Gemeint ist, dass für den oder die Benutzer noch Samba-Passwörter eingerichtet werden müssen.
Lösung: Samba-Passwort für Benutzer einrichten (Benutzerverwaltung)
Wichtig: Die Benutzerverwaltung für Samba findet durch das Betriebssystem und Samba statt. Für die Authentifizierung der Zugriffe ist die Benutzerverwaltung des Betriebssystems vorgesehen. Das bedeutet, Samba benutzt die eingerichteten Benutzernamen und die Datei- und Verzeichnisberechtigungen des Betriebssystems. Das gilt nicht für die Passwörter der Benutzer. Für jeden Benutzer, der auf Samba-Freigaben zugreifen will, muss man ein separates Passwort für Samba einrichten.
Hinweis: Bevor ein Benutzer ein Samba-Passwort bekommen kann, muss er vorher im Betriebssystem eingerichtet werden.
Hier wählen wir beispielhaft den Benutzer "pi", der schon eingerichtet ist.
sudo smbpasswd -a pi
Nach der Eingabe des Passworts muss man es zur Kontrolle ein zweites mal eingeben. Danach kann man auf die Freigabe zugreifen.
Benutzer "pi" für Samba deaktivieren:
sudo smbpasswd -d pi
Benutzer "pi" für Samba wieder aktivieren:
sudo smbpasswd -e pi
Erweiterte Samba-Konfiguration
Eine einfache Datei- oder Verzeichnis-Freigabe ist mit Samba mit nur wenig Konfigurationsaufwand eingerichtet. Es gibt allerdings noch weitere optionale Konfigurationsmöglichkeiten.
Erweiterung: Samba-Freigaben mit "fstab" automatisch mounten/einhängen
Prinzipiell besteht eine Samba-Freigabe immer aus zwei Seiten. Die Server-Seite und die Client-Seite. Der Samba-Server wurde im Optimalfall erfolgreich konfiguriert. Jetzt geht es um die Einrichtung bzw. das automatische Einhängen (Mount) des freigegebenen Verzeichnisses in das lokale Dateisystem eines Clients oder eines anderen Servers.
Troubleshooting
Die meisten Probleme gehen auf eine fehlerhafte oder unvollständige Konfiguration des Samba-Servers zurück, falsch gesetzten Datei- und Verzeichnis-Berechtigungen und einer fehlerhaften Authentifizierung mit Benutzername und Passwort.
Weitere verwandte Themen:
- Schritt für Schritt den Raspberry Pi als Server einrichten
- Raspberry Pi als Server im Dauerbetrieb (24/7, headless)
- Print-Server mit CUPS und AirPrint auf dem Raspberry Pi einrichten
- File-Server auf dem Raspberry Pi einrichten
- NFS-Server auf dem Raspberry Pi einrichten
- FTP-Server auf dem Raspberry Pi einrichten
- Raspberry Pi: Nextcloud installieren
- VNC-Server auf dem Raspberry Pi einrichten
Teilen:
Netzwerktechnik-Fibel
Alles was Sie über Netzwerke wissen müssen.
Die Netzwerktechnik-Fibel ist ein Buch über die Grundlagen der Netzwerktechnik, Übertragungstechnik, TCP/IP, Dienste, Anwendungen und Netzwerk-Sicherheit.
Netzwerktechnik-Fibel
Alles was Sie über Netzwerke wissen müssen.
Die Netzwerktechnik-Fibel ist ein Buch über die Grundlagen der Netzwerktechnik, Übertragungstechnik, TCP/IP, Dienste, Anwendungen und Netzwerk-Sicherheit.
Collection: IPv6
Alles was Sie über IPv6 wissen müssen.
Eine PDF-Datei mit allen Artikeln über das Internet Protocol Version 6 von dieser Webseite. Die Zusammenstellung berücksichtigt die Einführung in die Grundlagen von IPv6 mit detailreichen Beschreibungen und zahlreichen Tabellen und Abbildungen. Erfahren Sie mehr über die Möglichkeiten und Zusammenhänge im IPv6-Netzwerk.