ubuntuusers.de

Samba

Samba_Server/samba-logo.png 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. MS-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. So erstreckt sich der Einsatz von Samba vom einfachsten Heimnetzwerk bis hin zu großen Windows-Netzwerken mit aufwendigen Strukturen.

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 auch bei Bedarf als Netzlaufwerke fest eingebunden werden. Damit jeder Benutzer auf möglichst einfache Weise eigene Dateien ohne Root-Rechte für den Zugriff von anderen Rechnern aus freigeben kann, wurde mit Samba 3.0.23 das Tool net usershare eingeführt. Dieses wird auch von den Dateimamagern Nautilus und Dolphin standardmäßig zur Freigabe von Ordnern und Dateien im lokalen Netzwerk verwendet.

Samba dient aber auch dazu, um als Client auf Freigaben anderer Rechner zuzugreifen. Das in Ubuntu und Xubuntu standardmäßig eingerichtete Netzwerk-Dateisystem GVFS unterstützt neben einigen anderen Netzwerk-Diensten auch Samba. Mit dem GVFS kann man im Netzwerk nach Freigaben suchen (browsen) und diese ins lokale Dateisystem einbinden. Das GVFS wird standardmäßig von den Netzwerk-Managern Nautilus, Thunar und anderen unterstützt. Außerdem gibt es für das GVFS ein spezielles graphisches Tool Gigolo. Auch die in Kubuntu verwendeten Dateimanager Dolphin und Konqueror verfügen standardmäßig über einen KIO-Slave zum Einbinden von Samba-Freigaben. Für höhere Ansprüche kann für Samba zusätzlich noch ein spezielles Netzwerk-Dateisystem cifs-vfs installiert werden, das noch wesentlich mehr Optionen unterstützt.

Samba 4

Seit Ubuntu 14.04 LTS sind nun statt der bisherigen Versionen 3.xx nach einer sehr langen Vorbereitungsphase ausschließlich Samba-Versionen 4.xx in den Paketquellen enthalten. Obwohl Samba 4 manche völlig neue Möglichkeiten bietet, wurden doch im Gegensatz zum ursprünglichen Vorhaben und zu früheren Ankündigungen die Features von Samba 3 komplett und fast unverändert als Teilbereich nach Samba 4.0 übernommen. Deshalb bleiben die Artikel dieses Wiki größtenteils auch für Samba-4 gültig.

Die sicher wichtigste Neuerung in Samba 4.0 ist, dass nun ein Samba Server in einem Windows-Netzwerk uneingeschränkt auch die Funktion eines zum Microsoft Active Directory® (AD) kompatiblen Domain Controllers (DC) übernehmen kann. Dies ist jedoch nur für die Administration von komplexen, größeren Netzwerken von Bedeutung. Da diese Thematik sehr gründliche Vorkenntnisse und Einblicke in die Struktur von Windows-Netzwerken verlangt, übersteigt sie den Rahmen dieses Wiki. Für Interessenten befinden sich am Ende dieses Artikels Links zu weiterführender Literatur.

Hinweis:

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.

Die Bezeichnung "Server" bedeutet in diesem Zusammenhang also nicht, dass sich die Ausführungen nur auf eine Server-Version von Ubuntu beziehen.

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 auch einfacher mit CUPS freigegeben bzw. eingebunden werden.

Gliederung und Überblick

Das Themengebiet Samba wird auf mehreren Wiki-Seiten behandelt, die sich hinsichtlich der Ausführlichkeit und des Niveaus stark unterscheiden:

Einführende Seiten, Basics

  • Samba - Überblick und Grundbegriffe (diese Seite)

Freigaben bereitstellen

  • Samba Server GNOME - Mit GNOME/Nautilus persönliche oder allgemeine Freigaben für andere Rechner (Clients) einrichten. Hier wird auch das in Xfce (Xubuntu) und LXDE (Lubuntu) ebenfalls verwendbare Tool "system-config-samba" beschrieben.

  • Samba Server/KDE - Mit KDE Freigaben für andere Rechner (Clients) einrichten

Auf Freigaben zugreifen

  • 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

Weiterführende Seiten zu einzelnen Themen

Samba Server

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. Einrichten eines Samba-Servers auch ohne GUI (die Einrichtung eines Samba-Servers als zum Microsoft Active Directory® kompatibler Domain-Controller ist nicht Gegenstand dieses Artikels).

  • Samba Server/smb.conf - Aufbau der Konfigurationsdatei für Samba-Server

  • Samba Server/net usershare - Freigaben als normaler Benutzer (ohne Root-Rechte) einrichten

Samba Client

Die folgenden Seiten vermitteln Grundwissen, das vor allem für das Einbinden von Hand und für das automatische Einbinden beim Booten wichtig ist:

  • gvfs-mount – Einfacher Zugriff auf Netzwerk-Freigaben über das GVFS (unterstützt verschiedene Netzwerk-Dienste, nicht nur Samba).

  • Samba Client cifs – Einbinden von Freigaben ins Dateisystem des Client mit cifs-vfs. Dieses ist deutlich anspruchsvoller als das GVFS, erlaubt aber auch mehr individuelle Optionen.

Die folgenden Seiten beschreiben grafische Werkzeuge, die das grafische Browsen und Einbinden wesentlich erleichtern:

  • Gigolo – das graphische Tool zum GVFS.

  • pyNeighborhood – Ein graphisches Werkzeug zum Browsen im Netzwerk und zum Einbinden (mounten) von Freigaben mittels cifs-vfs.

  • Smb4K – Ein vielseitiges Werkzeug speziell für KDE

  • SMBNetFS ist eine Alternative zum GVFS bzw. KIO-Slave mit etwas mehr Zugriffs-Optionen (nur für Samba).

Und schließlich ist auch über ein Terminal der Zugriff auf Freigaben möglich:

  • smbclient ist vor allem bei Problemen ein willkommenes, vielseitiges Hilfsmittel

Spezielle Themen für Fortgeschrittene

Die enorme Vielseitigkeit von Samba erlaubt es, auch sehr komplexe und schwierige Probleme über Samba zu lösen.

Samba Server

  • Samba Server/PDC - Einrichten eines Samba-Servers als Primary Domain Controller. Der Artikel bezieht sich auf Samba-3 (bis einschließlich Ubuntu 12.04 LTS), nicht jedoch auf einen Samba-Server als Microsoft Active Directory® Domain Controller (AD DC) in Samba-4.

Samba Client

Grundlagen und Begriffe

Freigaben

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

"Allgemeine Freigaben" (Administrative Freigaben, nicht zu verwechseln mit "Öffentliche Freigaben" mit erlaubtem Gast-Zugriff) werden durch einen Eintrag in die Datei [smb.conf:/etc/samba/smb.conf] mit Root-Rechten erstellt. Ein einfaches graphisches Tool zum Erstellen Allgemeiner Freigaben ist system-config-samba.

Persönliche Freigaben

Seit der Version 3.0.23 bietet Samba mit dem Werkzeug net usershare nun auch gewöhnlichen Benutzern die Möglichkeit, für eigene Dateien und Ordner ohne Root-Rechte "Personliche Freigaben" einzurichten (nicht zu verwechseln mit "Geschützte Freigaben", auf die nur mit Benutzername und Kennwort zugegriffen werden kann). Verschiedene Dateimanager verwenden net usershare um Ordner und Dateien freizugeben.

Netzwerk-Protokolle

SMB

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.

CIFS

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.

Die CIFS-UNIX-Erweiterungen

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 (cifs UNIX Extensions) eingeführt. 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:

Um die cifs-UNIX-Erweiterungen nutzen zu können, müssen die Freigaben auf dem Client mit dem cifs-vfs (nicht GVFS!) eingebunden sein oder über ein Terminal mittels smbclient angesprochen werden.

Windows- und Posix-ACL

Die cifs-UNIX-Extensions arbeiten mit UNIX-Dateirechten und verwenden zur Identifikation von Benutzern und Gruppen die numerischen Werte von UID und GID. Windows kennt diese nicht und arbeitet statt dessen mit SID und eigenen ACL, die mit den in Ubuntu/Linux verwendeten POSIX-ACL leider nicht identisch sind. Deshalb ist eine Kommunikation mit Windows über die cifs-UNIX-Extensions grundsätzlich unmöglich.

Wenn auf dem Linux-Dateisystem POSIX-ACL unterstützt werden (Standard in ext3 und ext4, optional in NTFS), dann kann Samba Windows-ACL in POSIX-ACL umwandeln und umgekehrt ("mappen"). Damit können ab Samba 4.0 nun Samba-Freigaben auch von Windows-Clients aus administriert werden, was oft einfacher ist als die direkte Administration auf dem Server.

WINS

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.

Virtuelle Netzwerk-Dateisysteme

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.

Active Directory

Das Active Directory® (AD) ist ein Verzeichnisdienst der Firma Microsoft, der in mittleren und großen Windows-Netzwerken verwendet wird. Die aktuelle Samba-Version 4 enthält eine vollständige Implementierung von Active Directory und kann damit auch in dieser Hinsicht einen Windows-Server vollständig ersetzen. Ermöglicht wurde dies auch durch die Unterstützung, die das Samba-Projekt von Microsoft selbst erhalten hat.

Intern

  • 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: Freigaben einbinden mit dem GVFS (nicht nur für Samba).

Extern

Diese Revision wurde am 18. März 2015 19:34 von noisefloor erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Netzwerk, Windows, Server, Freigaben