Wer Dateien erst nach Authentifizierung im Heimnetz freigeben will, kommt mit Microsoft-Dateifreigaben schneller zum Ziel als mit der Linux-Bordlösung NFS – auch unter Linux.
In den OpenSuse-Tipps der letzten Ausgabe haben wir NFS als Netzwerkdateisystem mit der besten Performance vorgestellt. Diese Unix-typische Lösung arbeitet jedoch nicht mit Windows-Rechnern zusammen, jedenfalls nicht ohne Installation zusätzlicher Software auf Windows-Seite [1]. Umgekehrt unterstützt Linux die Microsoft-Variante schon seit seinen Anfängen. Dabei hat es mit zu seinem Erfolg als Server-System beigetragen, dass Linux auch Windows-Desktops bedienen konnte.
Unter Linux heißt die Windows-Lösung Samba [2]; auch das dafür zuständige Programmpaket trägt diesen Namen und ist unter OpenSuse vorinstalliert. Die Bezeichnung hat übrigens nichts mit dem südamerikanischen Tanz zu tun, sondern leitet sich vom Namen des verwendeten Netzwerkprotokolls ab: Server Message Block oder kurz SMB.
Welten verbinden
Jeder Linux-PC lässt sich als Samba-Server konfigurieren und kann auf von Windows-Rechnern veröffentlichte Dateien, sogenannte Shares, zugreifen. Im Gegensatz zu NFS bringt Samba eine fest eingebaute Benutzerauthentifizierung mit, weswegen selbst Linux-affine Fachleute Microsofts Lösung schon als das bessere NFS bezeichnet haben. Egal, wie man das sieht: Samba ist die richtige Lösung, wenn Sie systemübergreifend zwischen Linux- und Windows-Rechnern Dateien und Drucker teilen möchten.
Vergleichsweise einfach gelingt das Bereitstellen von Netzwerk-Shares auf der Windows-Seite und der Zugriff darauf unter Linux. Wählen Sie unter Windows zur Bereitstellung im Reiter Freigabe die erweiterte Freigabe aus (Abbildung 1). Klicken Sie im sich öffnenden Dialog auf Berechtigungen, im nächsten Dialog auf Hinzufügen, und geben Sie dort einen Windows-Benutzernamen ein. Nach einem Klick auf OK wählen Sie den eben eingegebenen Benutzer aus und weisen ihm unten im Dialog Rechte für Vollzugriff, Ändern oder nur Lesen zu. Diese erweiterte Freigabe für einen bestimmten Benutzer statt für die Heimnetz-Gruppe ist für unsere Zwecke erforderlich, denn Linux-Rechner der Heimnetz-Domäne hinzuzufügen erfordert einen größeren Aufwand.

Abbildung 1: Mit der Erweiterten Freigabe unter Windows geben Sie Verzeichnisse für einen bestimmten Benutzer statt für die Heimnetz-Domäne frei und können auch die Freigabebezeichnung unabhängig vom Verzeichnisnamen festlegen.
Es genügt dann, unter Linux im Dateimanager von KDE oder Gnome die IP-Adresse der Windows-Maschine in der Form smb://IP anzugeben (Abbildung 2). Die finden Sie heraus, indem Sie im Windows-Startmenü cmd tippen, die Eingabeaufforderung starten und dort ipconfig eingeben (Zeile IPv4-Adresse). Nach der Verbindungsaufnahme fragt der Linux-Dateimanager nach dem Windows-Benutzernamen und dem Passwort.

Abbildung 2: Von Windows freigegebene Ordner zeigt der KDE- oder Gnome-Dateimanager direkt nach Eingabe von smb:// und der IP-Adresse des Windows-Rechners an.
Für alle erreichbar
Umgekehrt vermag auch Linux in die Rolle des Samba-Servers zu schlüpfen und Verzeichnisse im Netz verfügbar zu machen, auf die dann Linux- wie Windows-Rechner gleichermaßen zugreifen. Die Server-Rolle eines OpenSuse-Systems konfiguriert das YaST-Modul Samba-Server. Beim ersten Aufruf erscheint ein Installationsassistent, der den Namen der Arbeitsgruppe abfragt. Behalten Sie den vorgegebenen Standardwert WORKGROUP bei, wenn Sie mit Windows-Rechnern zusammenarbeiten wollen, die für die Nutzung im Heimnetzwerk konfiguriert sind.
Im ersten Reiter Start wählen Sie dann in der Kategorie Dienst starten die Option Beim Systemstart, falls Sie den Rechner permanent als Samba-Dateiserver betreiben wollen. Unter Firewall-Einstellungen müssen Sie außerdem das Kästchen Firewall-Port öffnen aktivieren.
Im Reiter Freigaben finden sich bereits etliche Shares, wie etwa alle homes, also die Benutzerverzeichnisse der im System angelegten Anwender. Daneben erscheinen noch weitere Standards wie die Drucker des Systems, die Sie zunächst am besten nicht antasten. Alle Home-Verzeichnisse freizugeben scheint auf den ersten Blick etwas gewagt, doch jeder Zugriff erfordert eine Authentifizierung, solange Sie nicht explizit einen Gastzugriff zulassen. Eigene Freigaben mit weiteren Ordnern richten Sie über einen Klick auf den Schalter Hinzufügen ein (Abbildung 3).

Abbildung 3: Die Standardkonfiguration des Samba-Servers in OpenSuse umfasst bereits Shares zur Druckerfreigabe und zum authentifizierten Zugriff auf die Home-Ordner aller Nutzer.
Neben den von YaST verwalteten Freigaben kennt Samba noch direkt im Dateimanager erstellte Freigaben (Abbildung 4). Windows-Umsteigern kommt das Verfahren bekannt vor, funktioniert es doch fast identisch wie unter Windows. Vorher müssen Sie im YaST-Samba-Server-Modul allerdings den Haken vor Benutzern die Freigabe ihrer Verzeichnisse erlauben setzen. Möchten Sie auf Freigabeebene den anonymen Zugriff als Option zuschalten können, aktivieren Sie auch noch Gastzugriff erlauben.

Abbildung 4: In aktuellen Versionen von KDE und Gnome enthält der Dialog Eigenschaften jedes Verzeichnisses einen Reiter Freigabe, in dem Sie den Ordner ins Netz exportieren.
Im Reiter Identität geben Sie unter NetBIOS-Hostname einen Namen für Ihren Linux-Rechner an. Unter dieser Bezeichnung erscheint er dann im Windows-Dateimanager unter Netzwerk (Abbildung 5). Ansonsten behalten Sie zunächst die Standardeinstellungen bei und klicken nun auf OK. Am besten testen Sie die Freigaben erst einmal lokal auf dem eigenen Rechner (Listing 1), indem Sie alle Shares auflisten (Abbildung 6).
Listing 1
$ smbclient -L localhost -U User -m SMB2

Abbildung 6: Der Befehl smbclient sollte, sobald der Server läuft, alle Samba-Shares des lokalen Rechners anzeigen.
Identitätsnachweis
Nun arbeitet Ihr Linux-Rechner bereits als Datei-Server und stellt die Home-Verzeichnisse aller Anwender im Heimnetz bereit – jedenfalls, wenn Sie das standardmäßig vorhandene Share homes nicht deaktiviert haben. Der Zugriff von Windows funktioniert allerdings bisher nur über den Gastzugriff, denn es existieren noch keine Samba-Benutzerkonten zur Authentifizierung im System.
Diese erstellen Sie mit dem Kommando smbpasswd als Root auf der Konsole. Bei dem Befehl aus der ersten Zeile von Listing 2 muss es sich bei User um einen existierenden Linux-Account handeln. Dann geben Sie zweimal das neue Passwort ein. Die Passwörter dürfen zwar, müssen aber nicht mit denen der gleichnamigen Linux-Accounts übereinstimmen – und sollten es aus Sicherheitsgründen auch nicht. Lautet allerdings der Samba-User und dessen Passwort gleich wie ein Windows-Benutzerkonto und dessen Passwort, dann erhalten angemeldete Windows-Anwender ohne Passwortabfrage Zugriff auf die zugehörigen Shares.
Listing 2
# smbpasswd -a User # useradd -s /bin/false NeuerUser # smbpasswd -a NeuerUser
Am einfachsten funktioniert alles, wenn Sie Ihre Benutzernamen unter Windows und Linux synchron halten. Sie dürfen aber unter Windows auch einen beliebigen Benutzernamen zum Anmelden am Netzwerk-Share wählen. Umgekehrt ist es auch möglich, unter Linux einen System-User anzulegen, der sich nicht am System anmelden darf.
Mit dem Befehl aus der zweiten Zeile von Listing 2 erzeugen Sie einen Linux-Account, bei dem die Anmeldung wegen der fehlerhaften Shell /bin/false nicht funktioniert, um dessen Sicherheit Sie sich also wenig Gedanken machen müssen. Setzen Sie nun noch ein Samba-Passwort (dritte Zeile) – dasselbe wie beim korrespondierenden Windows-Konto, wenn dieser Anwender nach dem Anmelden ohne weitere Passwortabfrage zugreifen können soll.
Diese versteckten Linux-Accounts führen jedoch zu einem Problem: Da Sie zwangsläufig als anderer User angemeldet sind, haben Sie keinen Schreibzugriff auf das Share, denn dessen Dateien und Verzeichnisse gehören dem nicht Login-fähigen Hilfskonto.
Auch dafür gibt es eine Lösung, jedenfalls für im YaST-Samba-Server-Modul freigegebene Shares: Wählen Sie dort eine Freigabe im Reiter Freigaben aus, und klicken Sie auf Bearbeiten. Im nächsten Dialog ergänzen Sie über Hinzufügen eine weitere Konfigurationsoption und wählen im sich öffnenden Dialog die Option inherit permissions. Dann erscheint noch einmal ein Dialogfeld, in dem Sie das Kästchen vor inherit permissions aktivieren und damit den Wert der Einstellung auf Yes setzen.
Nun erben alle Verzeichnisse und Dateien im Share die Zugriffsrechte des freigegebenen Verzeichnisses. Das wiederum können Sie so setzen, dass alle Benutzer der Gruppe users (also normalerweise alle Anwender auf dem Linux-Rechner) Schreibzugriff erhalten. Nur Root darf die Zugriffsrechte von Verzeichnissen aller Anwender ändern. Das Kommando aus der ersten Zeile von Listing 3 ändert die Verzeichnisrechte so, dass alle users-Mitglieder Schreibrechte erhalten.
Listing 3
# sudo chmod 775 /Pfad/zum/Verzeichnis/ # sudo chgrp Gruppen /Pfad/zum/Verzeichnis/
Die drei Ziffern stehen dabei für die Rechte des Eigentümers, für alle Anwender derselben Gruppe und für alle übrigen Anwender. Eine 7 bedeutet Schreib- und Leserechte, 5 nur Leserechte. Unter Linux sind normalerweise die Benutzerverzeichnisse mit dem Zugriffsmodus 755 für alle lesbar, aber nur für den Eigentümer beschreibbar. Alternativ legen Sie im YaST-Modul Benutzer- und Gruppenverwaltung eine neue Gruppe an, beschränken die Zugehörigkeit auf bestimmte Anwender als Mitglieder der Gruppe und passen dann die Gruppenzugehörigkeit des Ordners entsprechend an (Listing 3, letzte Zeile).
Druck verteilen
Per Samba teilen Sie außerdem nicht nur Verzeichnisse, sondern auch Drucker. Dazu genügt es, wenn Sie im Webbrowser die Cups-Verwaltungsseite unter http://localhost:631 aufrufen und dort den Drucker im Netz freigeben (Abbildung 7). Cups fragt dabei nach dem Root-Passwort. Danach lässt der Drucker sich unter Windows im Systemsteuerungsmodul Geräte und Drucker mit Drucker hinzufügen | Einen Netzwerk-, Drahtlos- oder Bluetoothdrucker hinzufügen finden, wenn Sie den Samba-Server unter Linux im YaST-Modul wie beschrieben konfiguriert haben und die voreingestellten Drucker-Shares noch existieren.

Abbildung 7: Das browserbasierte Frontend zum Verwalten von Cups bietet den einfachsten Weg, um unter Linux einen im Netz geteilten Windows-Drucker einzubinden.
Einen am Windows-PC angeschlossenen Drucker veröffentlichen Sie dort nach Rechtsklick und Auswahl der Option Druckereigenschaften im Reiter Freigabe im Netz. Auf der Linux-Seite rufen Sie das schon erwähnte Cups-Verwaltungswerkzeug im Browser auf. Unter Verwaltung | Drucker hinzufügen wählen Sie Windows Printer via SAMBA und geben als Connection-URL smb://User:Passwort@IP/Drucker ein.
IP steht hier für die IP-Adresse des Windows-Rechners. Bei Drucker handelt es sich um die Bezeichnung des Druckers, die Sie im Freigabe-Reiter der Druckereigenschaften festlegen. Im nächsten Schritt wählen Sie im Cups-Frontend das Druckermodell ganz so, als würden Sie den Drucker lokal installieren. Unterstützt das Linux-Drucksystem das Modell nicht, dann hilft Ihnen also auch das Anschließen an einen Windows-PC für das Drucken unter Linux nicht weiter.
Fazit
Wer Dateien im Netz mit Benutzerauthentifizierung freigeben möchte – egal, ob zwischen Linux- und Windows-Systemen oder bloß unter Linux-Rechnern –, der sollte sich die von Microsoft entworfene Dateifreigabetechnik ansehen. Die Samba-Entwickler haben sie auf Linux übertragen, inklusive des systemübergreifenden Zugriffs auf Drucker im Heimnetzwerk.
Infos
-
NFS für Windows: https://docs.microsoft.com/de-de/windows-server/storage/nfs/deploy-nfs
-
Samba: https://www.samba.org






