Da Samba 4 bisher nicht in den offiziellen Paketquellen von Ubuntu enthalten ist, behandeln alle Artikel die ältere Version 3.x, die weiterhin gepflegt wird (Stand: Dezember 2012).
Dieser Artikel ist größtenteils für alle Ubuntu-Versionen gültig.
Der Name Samba stammt vom Server Message Block-Protokoll (SMB, inzwischen erweitert und in CIFS umbenannt). Unter GNU/Linux ist Samba das Bindeglied zu anderen Betriebssystemen wie z.B. Windows, aber auch zu Unix, BSD oder Mac OS X. Samba bietet umfangreiche Möglichkeiten für den Datenaustausch sowohl in gemischten als auch in homogenen Netzwerken. Die beiden grafischen Desktop-Umgebungen GNOME und KDE sowie zahlreiche Werkzeuge erleichtern auch denjenigen Benutzern den Zugang zu Samba, die noch wenig Erfahrung mit Netzwerken haben.
Samba kann als Server fungieren, um Datenträger (Festplatten, CD-Laufwerke usw.) mit anderen Rechnern im Netzwerk zu teilen. Dies wird auch als Einrichten von Freigaben bezeichnet. Diese Freigaben tauchen anschließend z.B. in der Windows Netzwerkumgebung auf und können bei Bedarf als Netzlaufwerke fest eingebunden werden.
Samba dient aber auch dazu, um als Client auf Freigaben anderer Rechner zuzugreifen. Die beiden Desktop-Umgebungen GNOME und KDE (nicht jedoch XFCE und andere) enthalten schon einfache Netzwerkumgebungen. Eine wesentlich erweiterte Funktionalität bieten spezielle grafische Werkzeuge und die anderen hier beschriebenen Verfahren, Freigaben entweder manuell oder automatisch einzubinden.
Die Funktionen "Server" und "Client" sind in Samba nicht streng nach Rechnern getrennt. Der gleiche Rechner kann als Server Freigaben für andere Rechner bereitstellen und gleichzeitig auch als Client auf Freigaben anderer Server zugreifen.
In reinen Linux-Netzwerken ist NFS (Network File System) eine Alternative zu Samba. Wenn es um das Freigeben eines Druckers geht, wird Samba nicht unbedingt benötigt. Drucker können heute einfacher mit CUPS freigegeben bzw. eingebunden werden.
Das Themengebiet Samba wird auf mehreren Wiki-Seiten behandelt, die sich hinsichtlich der Ausführlichkeit und des Niveaus stark unterscheiden:
Samba - Überblick und Grundbegriffe (diese Seite)
Samba Server GNOME - Mit GNOME/Nautilus persönliche oder allgemeine Freigaben für andere Rechner (Clients) einrichten. Hier wird auch das in Xfce (Xubuntu) ebenfalls verwendbare Tool "system-config-samba" beschrieben.
Samba Server/KDE - Mit KDE Freigaben für andere Rechner (Clients) einrichten
Samba Server/net usershare - Freigaben als normaler Benutzer (ohne Root-Rechte) einrichten
Samba Client GNOME - Mit GNOME/Nautilus auf Freigaben anderer Rechner (Server) zugreifen. Mit gewissen Einschränkungen ist diese Seite auch für Xfce (Xubuntu) gültig.
Samba Client KDE - Mit KDE auf Freigaben anderer Rechner (Server) zugreifen
Wer in Samba mehr als nur die elementaren Optionen nutzen möchte, welche die GUI bereitstellt, kommt an folgenden Seiten nicht vorbei:
Samba Server - Allgemeines über Samba als Server
Samba Server/smb.conf - Aufbau der Konfigurationsdatei für Samba-Server
Samba Server Swat - Ein grafisches Werkzeug zum Erstellen und Bearbeiten der Konfigurationsdatei (auch via Fernzugriff)
Die folgende Seite vermitteln Grundwissen, das vor allem für das Einbinden von Hand und für das automatische Einbinden beim Booten wichtig ist:
cifs - Einbinden von Freigaben ins Dateisystem des Client mit cifs-vfs
Die folgenden Seiten beschreiben grafische Werkzeuge, die das grafische Browsen und Einbinden wesentlich erleichtern:
pyNeighborhood - Ein graphisches Werkzeug zum Browsen im Netzwerk und zum Einbinden (mounten) von Freigaben. Lässt sich mit allen Desktop-Umgebungen verwenden.
Gigolo - Alternative zu pyNeighborhood
Smb4K - Ein vielseitiges Werkzeug für KDE
Eine Alternative besonderer Art ermöglicht das Kernel-Modul FUSE:
FuseSMB hat zwar keine eigene grafische Oberfläche, ist aber gut zu bedienen und äußerst vielseitig.
SMBNetFS ist die einfachere Alternative dazu, die es erlaubt, Samba- und Windows-Netzwerke mit GNOME (Ubuntu), KDE (Kubuntu) und auch mit Xfce (Xubuntu) ähnlich wie in der Windows-Netzwerkumgebung zu nutzen.
Und schließlich ist auch über ein Terminal der Zugriff auf Freigaben möglich:
smbclient ist vor allem bei Problemen ein willkommenes Hilfsmittel
Die enorme Vielseitigkeit von Samba erlaubt es, auch sehr komplexe und schwierige Probleme über Samba zu lösen.
Samba Winbind - Benutzung von Domänenkonten
Samba Client/ADAUTH - Authentifikation über das "Active Directory"
Dienste, die über das SMB/CIFS-Protokoll im Netzwerk verteilt werden, nennt man Freigaben. Damit ist in der Regel der Zugriff auf Dateien und Ordner im lokalen Netzwerk gemeint. Aber auch Drucker können freigegeben werden.
Allgemeine Freigaben werden mit Root-Rechten erstellt. Daneben bietet Samba seit der Version 3.0.23 mit dem Werkzeug net usershare auch gewöhnlichen Benutzern die Möglichkeit, ihre eigenen Dateien und Ordner ohne Root-Rechte freizugeben.
SMB ist ein auf NetBEUI/NetBIOS oder TCP/IP aufbauendes Protokoll, um Dienste im Netzwerk zu Verfügung zu stellen. Es wurde ursprünglich von der Firma IBM entwickelt und bildete auch die Grundlage für frühere Samba-Versionen. Obwohl SMB mittlerweile von CIFS abgelöst wurde, tritt das Kürzel SMB auch heute noch in verschiedenen Namen auf.
Bereits im Jahre 1996 wurde SMB von Microsoft erweitert und in CIFS (Common Internet File System) umbenannt. CIFS ist das Protokoll, mit dem heute Windows- und Samba-Server ihre Freigaben bereitstellen. CIFS ist in einem gewissen Umfang abwärtskompatibel zu SMB (mit NetBEUI), da es das ursprüngliche SMB nur erweitert. SMB-Clients können darauf zwar zugreifen, aber von den erweiterten Funktionen von CIFS nicht profitieren.
Um das CIFS-Protokoll auch für reine UNIX- bzw. Linux-Netze neben NFS zu einer vollwertigen Alternative zu machen, wurden von Hewlett-Packard die CIFS-UNIX-Erweiterungen eingeführt. Sie werden derzeit noch weiterentwickelt. Seit der Samba-Version 2.2.4 (Mai 2002) stehen sie auch in Linux zur Verfügung.
Mit den "CIFS-UNIX-Erweiterungen" werden im einzelnen unterstützt:
Übertragung von Besitz- und Zugriffsrechten über UID und GID
Symbolische und harte Verknüpfungen ("symbolic links" und "hard links")
Zeitstempel ("timestamp", Datum/Uhrzeit) für Dateien und Ordner
weitere Daten der UNIX-Datenstruktur
Bei WINS handelt es sich um den "Windows Internet Naming Service" und damit um die Implementierung von NetBIOS über TCP von Microsoft. Auch wenn der Name anderes vermuten lässt, läuft dieser Dienst ausschließlich lokal. Viele Informationen und weitere Details enthält der Artikel Samba Winbind.
Das virtuelle Dateisystem "cifs-vfs" ist ist der Nachfolger von "smbfs" und ist speziell auf das Protokoll CIFS zugeschnitten. Es unterstützt deshalb alle Optionen desselben (auch die CIFS-UNIX-Erweiterungen, s.o.). Das dazugehörigen Mountprogramm ist mount.cifs.
Es gibt auch andere Netzwerk-Dateisysteme, mit denen man auf Windows- bzw. Samba-Freigaben zugreifen kann. So verwenden z.B. der Dateimanager Nautilus oder das Tool Gigolo nicht das cifs-vfs, sondern das GVFS.
Das Active Directory (AD) ist ein Verzeichnisdienst der Firma Microsoft, welcher in mittleren und großen Windows-Netzwerken verwendet wird. Wer eine alternative Implementierung für Linux sucht, sollte sich mit LDAP bzw. OpenLDAP beschäftigen.
Heimnetzwerk: Verschiedene Möglichkeiten, ein kleines privates Netzwerk einzurichten.
MS-Windows Integration: Hinweise zum Parallel-Betrieb von Linux und Windows auf einem Rechner oder in einem Netzwerk.
Internet und Netzwerk: Wissenswertes zu Netzwerk- und Servertechnologien (Übersichtsseite).
gvfs-mount: Eine alternative Möglichkeit, Freigaben einzubinden (nicht nur für Samba).
Samba: Tanz um die Interoperabilität - Entwicklungsgeschichte von Samba (Heise Open Source)
Galileo Openbook - Konfiguration mit Webmin
Samba OnlineBook (O'Reilly Verlag) - Ideal zum Konfigurieren von Samba (smb.conf verstehen, Fileserver, PDC u.v.m.)
Ausführliche Erklärung der smb.conf im Samba OnlineBook (O'Reilly Verlag)
Mit Samba ein kleines Netz einrichten - Artikel aus LinuxUser 11/2005
SMB Traffic Analyzer (SMBTA) - Datentransfer via Samba auswerten