Samba Server einrichten

Was ist ein Samba-Server?

Als Samba-Server werden solche Server bezeichnet, die auf die freie Software-Suite Samba zurückgreifen. Das GNU-lizenzierte Paket dient der Implementierung des SMB-Protokolls – das namensgebend für die Suite war – in Linux- und Unix-Distributionen. Das Server Message Block (SMB) Protocol, das in einer weiterentwickelten Version auch als Common Internet File System (CIFS) Protocol bekannt ist, war ursprünglich in Microsoft-Windows-Betriebssystemen verantwortlich für Datei-, Druck- und andere Serverdienste. Durch die Implementierung wird die Integration von Windows- und Linux- bzw. Unix-Rechnern im Netzwerk unterstützt, sodass problemlos Dateien ausgetauscht oder Drucker genutzt werden – vollkommen unabhängig von den verwendeten Betriebssystemen. Egal, ob Unix- oder Linux-Samba-Server, die Software übernimmt seit Version 4 auch die Rolle des Active Directory Domain Controllers, wodurch die zentrale Autorisierung und Authentifizierung von Computern und Benutzern im Netzwerk möglich ist.

Damit das SMB- bzw. CIFS-Protokoll konfiguriert werden kann, besteht die Samba-Server-Suite aus einigen Modulen. Den Kern bilden die folgenden vier Daemons (im Hintergrund ablaufende Dienste):

  • samba: mit Version 4 hinzugefügter Daemon, der die Rolle des Active Directory Domain Controllers ermöglicht und über smb.conf konfiguriert wird
  • smbd: Datei- und Druckerfreigabe, Konfiguration über smb.conf
  • nmbd: verantwortlich für die Auflösung von NetBIOS-Namen in IP-Adressen, kann ebenfalls über die smb.conf-Datei konfiguriert werden
  • winbindd: löst Gruppen- und Benutzerinformationen auf, macht sie für Unix/Linux verständlich und bietet eigenständige Konfigurationsmöglichkeiten

Den Samba-Server einrichten: so funktioniert’s

SMB/CIFS ist das Standardprotokoll für unkomplizierte Netzwerkfreigaben unter Windows. Allerdings werden das Austauschen sowie die Freigabe von Dateien immer dann problematisch, wenn auch Rechner mit Linux- oder Unix-Betriebssystemen dem Netzwerk angehören. Indem Sie einen Samba-Server einrichten, der zwischen den einzelnen Endgeräten vermittelt, lösen Sie diese Kompatibilitätsprobleme. Da das Samba-Paket aus Open-Source-Komponenten besteht, sind damit keinerlei zusätzliche Kosten verbunden. Im Folgenden werden die notwendigen Schritte erläutert, um einen Linux-Samba-Server einzurichten.

Schritt 1: Installation

Zunächst einmal entscheiden Sie, ob Sie direkt auf Ihrem Server agieren oder selbigen von einem Client aus per Remote-Zugriff bedienen wollen. Danach geben Sie den folgenden Befehl ein, um das Samba-Paket auf dem Server zu installieren:

apt-get install samba

Schritt 2: Benutzerkonten zur Samba-Datenbank hinzufügen

Nach der Installation des Samba-Servers müssen die bestehenden User-Accounts zunächst aktiviert werden. Einige Linux-Distributionen synchronisieren die im Netzwerk vorhandenen System-Nutzerkonten automatisch und fügen sie der Samba-Datenbank hinzu – beispielsweise wenn bereits das Paket libpam-smbpass installiert ist, das Linux- und SMB-Passwörter synchron hält. Andernfalls ist es notwendig, dass Sie die Benutzerkonten manuell verwalten, damit die betreffenden Nutzer die entsprechenden Netzwerkdienste in Anspruch nehmen können.

Die Benutzerkonten-Verwaltung wird über den Befehl smbpasswd mit den vier Parametern -a, -x, -d und -e gesteuert. Die jeweiligen Befehlszeilen sehen wie folgt aus:

sudo smbpasswd -a BENUTZERNAME (PASSWORT)
sudo smbpasswd -x BENUTZERNAME
sudo smbpasswd -d BENUTZERNAME
sudo smbpasswd -e BENUTZERNAME

Mit dem ersten Befehl wird der jeweilige Benutzer der Samba-Server-Datenbank hinzugefügt und für die Netzwerkfreigabe aktiviert. Direkt auf den Nutzernamen folgend kann verdeckt das Nutzerpasswort vergeben bzw. geändert werden. Es kann identisch mit dem Linux-Passwort sein oder auch davon abweichen. Der zweite Befehl (-x) entfernt den Benutzer aus der Datenbank, mit dem Parameter -d wird er deaktiviert und mit -e wieder aktiviert. Mit dem Befehl

gsudo service smbd reload

lädt der Server die Konfigurationen neu, um die Änderungen zu übernehmen.

Schritt 3: Freigabe der Dateien konfigurieren

Allgemeine Freigaben

Allgemeine Freigaben können Sie in der Samba-Server-Konfigurationsdatei festlegen. In dieser Datei sind alle administrativen Freigaben und die allgemeinen Eigenschaften des Servers gespeichert. Öffnen Sie die Datei zunächst mit folgendem Befehl:

sudo gedit /etc/samba/smb.conf

Die smb.conf enthält zahlreiche auskommentierte Beispiele, die in der Regel durch Raute (#) oder Semikolon (;) gekennzeichnet und nicht aktiv sind. Möchten Sie ein solches Beispiel aktivieren, genügt es, das Sonderzeichen zu entfernen. Neue Einträge fügen Sie ans Ende der Datei ein, indem Sie zunächst den allgemeinen Namen, unter dem die Freigabe im Netz verfügbar ist, in eckigen Klammern angeben. Es folgt in einer zweiten Zeile der Pfad zum jeweiligen Ordner bzw. zur jeweiligen Datei und im Anschluss weitere Zeilen mit den Parametern, die gelten sollen. Wollen Sie beispielsweise einen Ordner mit Fotos freigeben, der den Schreibzugriff der User sowie den Zugriff durch Gäste erlaubt, lautet der Eintrag in der smb.conf:

[Fotos]
path= /dokumente/fotos
writeable = yes
guest ok = yes

Um die Änderungen zu übernehmen, müssen Sie Samba im Anschluss mit dem bereits bekannten Befehl reloaden:

sudo service smbd reload

Persönliche Freigaben

Damit spezifische Freigaben eingerichtet werden können, muss der jeweilige Nutzer der Gruppe sambashare angehören. Verwenden Sie folgenden Befehl, um User dieser Gruppe hinzuzufügen:

sudo usermod -aG sambashare BENUTZERNAME

Die Gruppenangehörigkeit besteht, sobald sich der Benutzer neu anmeldet oder Linux neu startet. Richtet er nun Freigaben ein, werden diese nicht in der smb.conf, sondern jeweils in einer separaten Textdatei – in der Regel im Ordner /var/lib/samba/usershares – gespeichert. Jede dieser Dateien beinhaltet den Sharename und den Pfad zur Freigabe, einen optionalen Kommentar, die Usershare-ACL (die angibt, ob die Freigabe nur gelesen oder auch verändert werden kann) sowie einen Parameter, der anzeigt, wer Zugriff hat. Ein Beispiel-Befehl:

net usershare add Fotos /dokumente/fotos Urlaub 2015 Everyone: r, USER1: f

Mithilfe des Befehls wurde der Ordner mit dem Sharename „Fotos“ im Pfad „/dokumente/fotos“ mitsamt dem Kommentar „Urlaub 2015“ freigegeben. Alle Samba-Server-Nutzerkonten können die Dateien lesen, USER1 hat die volle Berechtigung und kann selbige außerdem auch verändern. Zur Überprüfung der Freigaben dienen die beiden Befehle:

net usershare list
net usershare info

Der erste Befehl listet alle verwendeten Freigaben unter dem jeweiligen Sharename auf, während der zweite auch die weiteren Details wie Kommentar, Berechtigungen etc. bietet. Möchten Sie Änderungen an den Freigaben tätigen, sollten Sie dies immer über die Kommandozeile und niemals in der usershares-Textdatei tun. Löschen können Sie eine Freigabe mit dem Befehl:

net usershare delete SHARENAME

Samba-Server: Windows und Linux im Netzwerk vereint

Wenn die gemeinsame Nutzung von Druckern und Dateien im Netzwerk aufgrund verschiedener Betriebssysteme Probleme bereitet, ist der Einsatz eines Samba-Servers bzw. der Samba-Software für Clients die perfekte Lösung. Die kostenfreie Software-Suite implementiert das Netzwerkprotokoll SMB/CIFS in Unix- und Linux-Systeme und macht sie dadurch mit Windows-Distributionen im Netzwerk kompatibel. Ob Server oder Client macht dabei keinen Unterschied.

Ein Linux-Samba-Server regelt die Freigabe von Dateien und Diensten im Netzwerk wie ein Windows-Server – nicht zuletzt (seit Samba-Version 4) auch dank der Fähigkeit, die Rolle des Active Directory Domain Controllers zu übernehmen. Wenn Sie einen Samba-Server einrichten und verwalten möchten, können Sie das bequem von Ihrem persönlichen Rechner per Remote-Zugriff tun. Außerdem haben Sie die Wahl, ob Sie direkt mit der Kommandozeilen-Eingabe arbeiten oder zur Vereinfachung eine zusätzliche grafische Oberfläche installieren.