[[Vorlage(Getestet, bionic, focal)]] {{{#!vorlage Wissen [:Pakete installieren: Installation von Programmen] [:Terminal: Ein Terminal benutzen] (optional) [:sudo: Mit Root-Rechten arbeiten] (optional) [:Rechte: Dateirechte verändern] (optional) }}} [[Inhaltsverzeichnis(3)]] [[Bild (Samba_Server/samba-logo.png, align=left)]] Dieser Artikel bezieht sich in erster Linie auf die Desktop-Umgebung [:GNOME:], ist aber für [:MATE:], [:Unity:] und in weiten Teilen auch für [:Xfce:] (Xubuntu) gültig. Er beschreibt, wie mit den Dateimanagern [:Nautilus:] und [:Caja:] auf einfache Weise Ordner und Dateien über [wikipedia:Samba_(Software):Samba] im lokalen Netzwerk freigegeben werden können. Oftmals kann man es sich damit ersparen, Eingaben über ein [:Terminal:] vorzunehmen oder umfangreiche und veraltete Administrations-Tools wie ''Swat'' oder ''gadmin-samba'' einzusetzen. Das Erstellen von Samba-Freigaben über die Kommandozeile oder durch Einträge in die Konfigurationsdatei '''[:smb.conf:/etc/samba/smb.conf]''' ist Gegenstand der Artikel [:Samba Server:] und [:net usershare:]. {{{#!vorlage Hinweis Im professionellen Bereich wird ein Server __niemals__ über eine graphische Oberfläche (GUI) aufgesetzt. Deshalb orientiert sich dieser Artikel überwiegend an den Bedürfnissen eines kleinen, privaten Netzwerks. }}} Zur Orientierung unter allen Artikeln zu den Themengebieten Samba und Windows-Netzwerke dient der Artikel '''[:Samba:] {Übersicht}'''. = Installation und Konfiguration = == Samba installieren == Um mittels Samba Freigaben erstellen zu können, genügt nicht das standardmäßig vorinstallierte Paket '''samba-common'''. Folgendes [:Metapakete:Metapaket] muss aus den [:Paketquellen:] installiert sein[1]: {{{#!vorlage Paketinstallation samba }}} Dabei wird automatisch auch die (gut kommentierte {en} ) Datei '''[:smb.conf:/etc/samba/smb.conf]''' angelegt, über die der Server konfiguriert wird. Diese Datei kann nur mit Root-Rechten[3] editiert und verändert oder ergänzt werden. In den meisten Fällen passen die vorinstallierten Optionen; Veränderungen an dieser Datei sollte man nur dann vornehmen, wenn diese wirklich nötig sind. Sinnvoll ist es z.B., einen anderen Namen für die Arbeitsgruppe festzulegen und die Zeile `workgroup = WORKGROUP` entsprechend abzuändern. Sollte man wirklich einmal durch fehlerhafte Eingaben die Datei '''smb.conf''' unbrauchbar gemacht haben, so findet man "als Rettung" eine Kopie der Datei im Urzustand unter '''/usr/share/samba/smb.conf'''. {{{#!vorlage Hinweis Auf einem Rechner mit direktem Zugang zum Internet oder zu unsicheren Netzen kann es sinnvoll sein, die Zugriffsmöglichkeit über die Optionen `interfaces` und `bind interfaces only` in der Datei '''smb.conf''' noch zusätzlich einschränken. }}} == Benutzername und Passwort == Möchte man nur öffentliche Freigaben mit erlaubtem Gast-Zugang erstellen, sind keine weiteren Vorbereitungen nötig. Sollen aber auf diesen einzelnen Benutzern besondere Rechte (z.B. Schreibrecht) eingeräumt werden oder mittels Passwort geschützte Freigaben erstellt werden, dann muss zuerst für jeden berechtigten Benutzer ein eigener Samba-Account eingerichtet werden. Dies ist für jeden Benutzer möglich, für den auf dem Server ein System Account besteht. Wie ein solcher nötigenfalls eingerichtet werden kann, ist im Artikel [:adduser:] beschrieben. Üblicherweise wird nun der Samba-Account in einem Terminal[1] mit folgender Befehlszeile erstellt{{{#!vorlage Befehl sudo smbpasswd -a }}} Für ist der im System-Account festgelegte Name zu verwenden. Nun muss zuerst das zur Erlangung der Root-Rechte[3] nötige Passwort und anschließend das für den einzurichtenden Samba-Account nötige Samba-Passwort verdeckt (d.h. ohne Anzeige) eingegeben werden. Dieses kann, muss aber nicht mit dem System-Passwort des betreffenden Benutzers übereinstimmen. == Unterschiedliche Protokolle == Die früheren Samba-Versionen 3.xx verwendeten langezeit ausschließlich das Protokoll SMBv1 bzw. ''cifs''. Seit [:Trusty: Ubuntu 14.04 LTS] sind jedoch nur noch Samba-Versionen 4.xx in den Paketquellen enthalten. Wie auch die neueren Windows-Versionen unterstützt damit Samba nun auch das Protokoll SMBv2 und seit der Version 4.1 auch das Protokoll SMBv3. Fragt nun ein Client bei einem Server um eine Verbindung an, so einigen sich Client und Server auf das Protokoll der höchsten Versionsnummer, das auf beiden möglich und zugelassen ist. Den Rahmen auf der Serverseite bilden die Parameter `server min protocol` und `server max protocol`, die durch Einträge im Teil `[global]` der Datei '''[:smb.conf:/etc/samba/smb.conf]''' verändert werden können. Bis einschließlich Samba 4.10 ([:Eoan:Ubuntu 19.10]) war `min protocol = NT1` (= SMBv1) Standard, d.h alle Protokolle waren zugelassen. Weil das Protokoll SMBv1 inzwischen als unsicher gilt, ist seit Samba 4.11 ([:Focal:Ubuntu 20.04 LTS]) `min protocol = SMB2_02` Standard (wie auch in Windows 10). Verbindungen mit dem Protokoll SMBv1 (cifs) sind damit nicht mehr zugelassen. Um auf dem Server nach vorhandenen Freigaben zu suchen (zu "browsen") benötigt der Client von diesem eine Freigaben-Liste. Der Dateimanager des Client fordert diese über das GIO (GVfs) an, welches dafür aber nach wie vor das Protokoll SMBv1 (cifs) benötigt. Also kann ab [:Focal:Ubuntu 20.04 LTS] in der Standard-Einstellung kein Samba-Client durch Browsen auf dem Server Freigaben auffinden. Nur der namentliche Zugriff auf bekannte Freigaben ist noch möglich. Abhilfe kann es schaffen, die Zeile {{{server min protocol = NT1}}} mit Root-Rechten[3] im Abschnitt `[global]` der Datei '''[:smb.conf:/etc/samba/smb.conf]''' einzutragen und so das Protokoll SMBv1 wieder zuzulassen. {{{#!vorlage Warnung Das Protokoll SMBv1 (cifs, NT1) gilt als unsicher und sollte deshalb auf Rechnern mit sensiblen Daten oder in unsicheren Netzen nicht mehr zugelassen werden. }}} = Persönliche Freigaben mit "net usershare" = Die [:Samba:]-Suite enthält das Tool [:Samba Server/net usershare:net usershare]. Dieses bietet alternativ zur klassischen Methode, Freigaben "allgemein" mit Root-Rechten über einen Eintrag in der Datei [:Samba_Server/smb.conf: /etc/samba/smb.conf] einzurichten, auch gewöhnlichen Benutzern die Möglichkeit, ihre eigenen Dateien ohne Root-Rechte freizugeben, sofern sie zur [:Benutzer und Gruppen:Gruppe] `sambashare` gehören. Der Erstbenutzer ist standardmäßig Mitglied dieser Gruppe; neu hinzugefügte Benutzer müssen evtl. noch in dieser Gruppe eingetragen werden. Für persönliche Freigaben gibt es keinen Eintrag in der Konfigurationsdatei '''/etc/samba/smb.conf'''. Statt dessen wird für jede dieser Freigaben im Ordner '''/var/lib/samba/usershares/''' eine eigene kleine Textdatei mit den nötigen Angaben angelegt. Diese ist Besitz des jeweiligen Benutzers; nur dieser kann sie einsehen, verändern oder löschen. Normalerweise sollte diese Datei nicht mit einem Editor bearbeitet werden! {{{#!vorlage Hinweis Das Programm '''gnome-user-share''' ist trotz der Namensähnlichenkeit mit ''net usershare'' __kein Werkzeug für Samba__. Es erlaubt es dem jeweils eingeloggten Benutzer nur, den Ordner "Öffentlich" aus seinem Heimverzeichnis mittels [:Apache:] über [:WebDAV:] im Heimnetz freizugeben. Es macht dabei keinen Gebrauch von Samba und entspricht auch nicht dessen Sicherheitsstandard. }}} == Nautilus und Caja == Der in GNOME standardmäßig installierte [:Dateimanager:] [:Nautilus:] nutzt mit dem Zusatzpaket '''nautilus-share''' (standardmäßig mit installiert) das Samba-Tool "net usershare", um Verzeichnisse im Netzwerk freizugeben. Die gleiche Möglichkeit bietet auch der in [:Ubuntu MATE:] standardmäßig installierte Dateimanager [:Caja:]. Eventuell muss man jedoch folgendes Paket noch von Hand nachinstallieren: {{{#!vorlage Paketinstallation caja-share }}} === Installation === Damit Verzeichnisse im Netzwerk per SMB-Protokoll (bzw. als "Windows-Freigabe") freigegebenen werden können, muss '''Samba''' installiert sein [1] ([#Samba_installieren s.o.]) Wenn man man mit Nautilus oder Caja Persönliche Freigaben einrichten möchte, braucht man die Installation allerdings nicht unbedingt von Hand zu veranlassen, Beim Einrichten der ersten Freigabe erfolgt hier automatisch ein Hinweis auf ggf. noch fehlende Pakete, die nach nach einer Bestätigung per Mausklick einfach nachinstalliert werden können. [[Bild(./Ordner_freigeben.png, 236, right)]] [[Bild(./persoenliche-Freigabe.png, 60, right)]] === Freigabe erstellen === Nach einem [[Vorlage(Tasten, rmt)]]-Klick auf ein Ordner-Symbol klickt man ''"Freigabeoptionen"'' an. Es öffnet sich das selbsterklärende nebenstehende Dialogfenster. Man trägt für die Freigabe einen Namen und optional einen Kommentar ein und hakt an, was gewünscht wird: überhaupt freigeben - Schreibrechte einräumen - Gastzugang (ohne Passwort) erlauben. Alternativ gelangt man auch über ''"Eigenschaften -> Ordner freigeben"'' zum gleichen Dialog. Persönlichen Freigaben (nicht aber [#Allgemeine_Freigaben_und_Einstellungen Allgemeine Freigaben]) werden auf dem Desktop und im Dateimanager-Fenster durch das nebenstehend abgebildete Emblem (oder ähnlich) gekennzeichnet. === Schreibrechte === Über Nautilus und Caja kann man mit "net usershare" Schreibrechte nur entweder für alle oder für niemand einräumen. Die bei Öffentlichen Freigaben sinnvolle Einstellung ''"Besitzer darf schreiben und Gäste nur lesen"'' ist leider nicht vorgesehen. Differenzierte Einstellungen sind über das Terminal möglich. Siehe dazu [:net usershare:]. === Gastzugriff und Benutzerkonto === Öffentliche Freigaben (mit Gastzugriff) können sofort ohne weitere Vorbereitung eingerichtet werden. Möchte man jedoch den Zugriff auf bestimmte Benutzer beschränken und eventuell mit einem Passwort absichern, so muss für diese zuvor ein Benutzerkonto eingerichtet werden. Wie dies geschehen kann, ist schon [#Benutzername_und_Passwort weiter oben] beschrieben. [[Bild(./Add_permissions.png, 300, right)]] === Zugriffsrechte automatisch anpassen === Samba kann nichts erlauben, was auf dem Server selbst verboten ist. Daher müssen oftmals noch auf dem Server die Zugriffsrechte[3] für die freigegebenen Dateien angepasst werden. Nötigenfalls erscheint in Nautilus oder Caja dann ein Dialogfenster mit dem Vorschlag, diese Anpassung automatisch durchführen zu lassen. Leider erscheint dieses Dialogfenster auch dann, wenn eine solche Anpassung gar nicht möglich ist (z.B. bei FAT- oder NTFS-Partitionen). {{{#!vorlage Hinweis Die automatische Anpassung der Zugriffsrechte[3] wird nur für die freigegebenen Dateien bzw. Ordner selbst durchgeführt; eventuell muss man zusätzlich noch die Zugriffsrechte übergeordneter Ordner von Hand anpassen. }}} Die automatische Änderung von Zugriffsrechten kann leicht dazu führen, dass unbemerkt unerwünschte oder gar gefährliche Berechtigungen entstehen. Leicht wird vergessen, dass die veränderten Zugriffsrechte auf dem Server auch dann bestehen bleiben, wenn eine vorübergehende Freigabe wieder aufgehoben wird. {{{#!vorlage Warnung Die automatische Anpassung der Zugriffsrechte kann, unbedacht angewandt, ein Sicherheitsrisiko darstellen! }}} === Freigaben auf Windows-Partitionen === Über ''net usershare'' lassen sich prinzipiell auch Ordner und Dateien freigeben, die sich auf einer Partition mit einem der Windows-Dateisysteme FAT oder NTFS befinden. Allerdings gibt es dabei einiges zu beachten: * Für Partitionen mit den (Windows-) Dateisystemen FAT und NTFS werden standardmäßig die Besitz- und Zugriffsrechte bereits beim Einbinden festgelegt. Sie anschließend noch zu verändern ist weder von Hand mittels [:chown:] und [:chmod:], noch über den Dateimanager möglich - auch dann nicht, wenn im Dateimanager ein entsprechendes Fenster erscheint. * Über ''net usershare'' kann ein Benutzer in der Grundeinstellung nur eigene Dateien freigeben. Windows-Partitionen werden aber standardmäßig als Besitz von `root` eingebunden. Deshalb sind ggf. die Einträge in der Datei '''[:fstab:/etc/fstab]''' geeignet zu verändern (üblicherweise `uid=1000` statt `uid=0`). * NTFS-Partitionen, die nicht mit den Standard-Optionen, sondern mit den Optionen `permissions` und `acl` eingebunden sind, machen keine Probleme. Sie verhalten sich genau wie Partitionen mit einem Linux-Dateisystem (siehe [:NTFS-3G:]). * Externe Datenträger mit Windows-Dateisystemen (USB-Sticks, SD-Karten) werden üblicherweise per "Hotplug" automatisch als Eigentum des jeweiligen Benutzers und mit Schreibrechten nur für diesen eingebunden. In diesem Rahmen lassen sich dort befindliche Ordner und Dateien ohne weiteres mit ''net usershare'' freigeben. == Thunar und andere == Der in Xfce (Xubuntu) bevorzugt verwendete Dateimanager [:Thunar:] erlaubt es leider nicht, wie mit Nautilus oder Caja interaktiv persönliche Freigaben zu erstellen. Auf folgende Weisen lässt sich Abhilfe schaffen: * Man kann folgende Pakete aus den [:Paketquellen:] nachinstallieren und Nautilus als Dateimanager verwenden:{{{#!vorlage Paketinstallation nautilus nautilus-share }}} [[Bild(./Thunar_Aktionen.png, 236, right)]] * Möchte man auf das interaktive Arbeiten verzichten und alle Freigaben nach dem gleichen Muster mit den gleichen Optionen erstellen, so ist dies auch in Thunar mit einfachen Mausklicks möglich. Man wähle eine der folgenden Möglichkeiten: 1. Man muss dafür nur eine geeignete Befehlszeile unter ''Bearbeiten > [:Thunar/Benutzerdefinierte_Aktionen/:Benutzerdefinierte Aktionen]'' eintragen.\\ \\ __Beispiel:__ {{{net usershare add %n %f "" Everyone:F guest_ok=y}}}Die Variablen %n und %f stehen für den Namen und den Pfad der freizugebenden Datei bzw.des Ordners. Diese werden durch Thunar automatisch eingesetzt. Erstellt wird eine Freigabe mit dem Namen der Datei bzw. des Ordners, jedermann hat vollen Zugriff (lesen und schreiben), und Gäste sind erlaubt. Mit einer weiteren Befehlszeile {{{net usershare delete %n}}} lässt sich die Freigabe wieder aufheben. Auch das automatische Anpassen der Zugriffsrechte beim Erstellen der Freigabe und das Löschen der zusätzlichen Schreibrechte beim Aufheben der Freigabe sind möglich, wenn man die Befehlszeilen folgendermaßen erweitert: {{{net usershare add %n %f "" Everyone:F guest_ok=y && chmod 777 %f}}} und {{{net usershare delete %n && chmod 755 %f}}} Die Optionen und die Syntax entsprechen denen beim Erstellen der Freigaben im Terminal[1]. 1. Man baut das Nautilus-Skript [:Nautilus/Skripte/SMBusershare:SMBusershare] als benutzerdefinierte Aktion in Thunar ein und hat dann etwas erweiterte Möglichkeiten als bei der ersten Methode. * Oder man erstellt die Freigabe mittels `net usershare add…` direkt im Terminal[1]. == Persönliche Freigaben im Terminal == Alle Routinen von ''net usershare'' sind auch über das Terminal[1] erreichbar. Dabei lassen sich die Zugriffsrechte individuell viel differenzierter einstellen als über die Dateimanager. Im Artikel [:net usershare:] ist dies ausführlich beschrieben. = Probleme und Lösungen = ==Der Server wird nicht erkannt== Zuerst sollte man immer überprüfen, ob der Name des Servers den Konventionen entspricht (maximal 15 Byte, keine unzulässigen Sonderzeichen usw.). Wenn der Server trotzdem von keinem Client aus (auch nicht von Windows-Clients) über seinen Netbios-Namen erkannt wird, aber über seine IP-Adresse ansprechbar ist, dann kann es sein, dass auf dem Server der Service "nmbd" beim Booten nicht korrekt gestartet wurde. Nach Eingabe folgender Zeile im Terminal sollte die Erkennung über den Netbios-Namen dann funktionieren: {{{#!vorlage Befehl systemctl restart nmbd.service }}} =="Heimnetzgruppe" auf Windows-Clients== Mit Windows 7 hat Microsoft die Einrichtung "Heimnetzgruppe" geschaffen. Samba kann mit dieser nichts anfangen und kann weder als Client noch als Server einer Windows-Heimnetzgruppe beitreten. Zur störungsfreien Kommunikation von Linux-Systemen mit Windows-Rechnern darf man dort die Heimnetzgruppe nicht verwenden. = Links = == Intern == * [:Heimnetzwerk:]: Verschiedene Möglichkeiten, ein kleines privates Netzwerk einzurichten * [:GNOME:], [:MATE:], [:Unity:], [:Xfce:]: Ausführliche Informationen zum jeweiligen Desktop * [:Samba:] {Übersicht}: Grundlegende Informationen; dort finden sich auch weitere Links * [:Samba Server:]: Weitere Informationen zum Einrichten eines Samba-Servers auch ohne GUI * [:Samba Server/smb.conf:]: Die Konfigurationsdatei eines Samba-Servers (mit Beispielen) * [:Samba Server/net usershare:] - Persönliche Freigaben über Kommandozeilen erstellen == Extern == * [http://us1.samba.org/samba/ Die Homepage des Samba Projektes] {en} * [https://www.sernet.de/samba/ Die deutsche Homepage des Samba Projektes] {de} (leider derzeit nicht aktuell) * [https://techcommunity.microsoft.com/t5/storage-at-microsoft/stop-using-smb1/ba-p/425858 Stop Using SMB1] {en} Ein Aufruf von Microsoft mit Erläuterungen # tag: Netzwerk, GNOME, MATE, Samba, Server, Freigaben, Windows