ubuntuusers.de

Samba Server GNOME

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:


Du möchtest den Artikel für eine weitere Ubuntu-Version testen? Mitarbeit im Wiki ist immer willkommen! Dazu sind die Hinweise zum Testen von Artikeln zu beachten.

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

Samba_Server/samba-logo.png 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 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 /etc/samba/smb.conf ist Gegenstand der Artikel Samba Server und net usershare.

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 .

Installation und Konfiguration

Samba installieren

Um mittels Samba Freigaben erstellen zu können, genügt nicht das standardmäßig vorinstallierte Paket samba-common. Folgendes Metapaket muss aus den Paketquellen installiert sein[1]:

  • samba

Befehl zum Installieren der Pakete:

sudo apt-get install samba 

Oder mit apturl installieren, Link: apt://samba

Dabei wird automatisch auch die (gut kommentierte 🇬🇧 ) Datei /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.

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

sudo smbpasswd -a <Benutzername> 

Für <Benutzername> 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 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 /etc/samba/smb.conf verändert werden können. Bis einschließlich Samba 4.10 (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 (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 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 /etc/samba/smb.conf einzutragen und so das Protokoll SMBv1 wieder zuzulassen.

Achtung!

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 net usershare. Dieses bietet alternativ zur klassischen Methode, Freigaben "allgemein" mit Root-Rechten über einen Eintrag in der Datei /etc/samba/smb.conf einzurichten, auch gewöhnlichen Benutzern die Möglichkeit, ihre eigenen Dateien ohne Root-Rechte freizugeben, sofern sie zur 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!

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:

  • caja-share

Befehl zum Installieren der Pakete:

sudo apt-get install caja-share 

Oder mit apturl installieren, Link: apt://caja-share

Installation

Damit Verzeichnisse im Netzwerk per SMB-Protokoll (bzw. als "Windows-Freigabe") freigegebenen werden können, muss Samba installiert sein [1] (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.

./Ordner_freigeben.png ./persoenliche-Freigabe.png

Freigabe erstellen

Nach einem rechte Maustaste-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) 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 weiter oben beschrieben.

./Add_permissions.png

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).

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.

Achtung!

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 /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:

    • nautilus nautilus-share

    Befehl zum Installieren der Pakete:

    sudo apt-get install nautilus nautilus-share 

    Oder mit apturl installieren, Link: nautilus-share

    ./Thunar_Aktionen.png

  • 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 > 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].

    2. Man baut das Nautilus-Skript 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:

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.

Intern

  • Heimnetzwerk: Verschiedene Möglichkeiten, ein kleines privates Netzwerk einzurichten

  • GNOME, MATE, Unity, Xfce: Ausführliche Informationen zum jeweiligen Desktop

  • Samba : Grundlegende Informationen; dort finden sich auch weitere Links

  • Samba Server: Weitere Informationen zum Einrichten eines Samba-Servers auch ohne GUI

Extern

Diese Revision wurde am 21. Dezember 2021 20:01 von noisefloor erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: GNOME, Samba, Netzwerk, Server, Freigaben, Windows, MATE