Gemeinsame Nutzung von Dateien zwischen Ubuntu 20.04 und Windows-Systemen mit Samba
On Januar 21, 2022 by adminAuch wenn Linux auf dem Desktop-Markt Fuß gefasst hat, sind seine Ursprünge und seine Zukunft doch sehr Server-basiert. Es ist daher nicht überraschend, dass Ubuntu die Fähigkeit besitzt, als Dateiserver zu fungieren. Es ist auch sehr üblich, dass Ubuntu- und Windows-Systeme in vernetzten Umgebungen nebeneinander eingesetzt werden. Daher ist es eine gängige Anforderung, dass Dateien auf einem Ubuntu-System über Netzwerkverbindungen für Linux-, UNIX- und Windows-basierte Systeme zugänglich sein müssen. Ebenso müssen freigegebene Ordner und Drucker, die sich auf Windows-Systemen befinden, auch von Ubuntu-Systemen aus zugänglich sein.
Windows-Systeme geben Ressourcen wie Dateisysteme und Drucker über ein als Server Message Block (SMB) bekanntes Protokoll frei. Damit ein Ubuntu-System einem Windows-System solche Ressourcen über ein Netzwerk zur Verfügung stellen kann und umgekehrt, muss es daher SMB unterstützen. Dies wird durch eine Technologie namens Samba erreicht. Samba ermöglicht nicht nur die Integration zwischen Linux- und Windows-Systemen, sondern kann auch für die gemeinsame Nutzung von Ordnern zwischen Linux-Systemen verwendet werden (als Alternative zu NFS, das im vorherigen Kapitel behandelt wurde).
In diesem Kapitel werden wir uns die Schritte ansehen, die notwendig sind, um Dateisystemressourcen und Drucker auf einem Ubuntu-System mit entfernten Windows- und Linux-Systemen gemeinsam zu nutzen und um von Ubuntu aus auf Windows-Ressourcen zuzugreifen.
1.1 Zugriff auf Windows-Ressourcen vom GNOME-Desktop aus
Bevor wir uns näher mit der Samba-Freigabe befassen, ist es erwähnenswert, dass die GNOME Files-Anwendung bereits Unterstützung bietet, wenn Sie lediglich auf freigegebene Windows-Ordner vom Ubuntu GNOME-Desktop aus zugreifen möchten. Die Anwendung „Dateien“ befindet sich im Dash, wie in Abbildung 23-1 hervorgehoben:
Abbildung 23-1
Wählen Sie nach dem Start die Option „Andere Speicherorte“ im linken Navigationsbereich und anschließend das Windows-Netzwerksymbol im Hauptbereich, um die verfügbaren Windows-Ressourcen zu durchsuchen:
Abbildung 23-2
1.2 Samba und Samba-Client
Samba ermöglicht sowohl die gemeinsame Nutzung von Ubuntu-Ressourcen mit Windows-Systemen als auch die gemeinsame Nutzung von Windows-Ressourcen mit Ubuntu-Systemen. Ubuntu greift auf Windows-Ressourcen über den Samba-Client zu. Ubuntu-Ressourcen hingegen werden mit Windows-Systemen gemeinsam genutzt, indem der Samba-Dienst installiert und konfiguriert wird.
1.3 Installation von Samba auf einem Ubuntu-System
Die Standardeinstellungen, die während des Ubuntu-Installationsprozesses verwendet werden, installieren normalerweise nicht die notwendigen Samba-Pakete. Wenn Sie nicht ausdrücklich die Installation von Samba angefordert haben, ist es unwahrscheinlich, dass Samba auf Ihrem System installiert ist. Um zu überprüfen, ob Samba installiert ist, öffnen Sie ein Terminal-Fenster und führen Sie den folgenden Befehl aus:
# apt -qq list samba-common samba smbclient
Fehlende Pakete können mit dem apt-Kommandozeilen-Tool installiert werden:
# apt install samba-common samba smbclient
1.4 Konfigurieren der Ubuntu-Firewall, um Samba zu aktivieren
Als Nächstes muss die Firewall, die derzeit das Ubuntu-System schützt, so konfiguriert werden, dass sie Samba-Datenverkehr zulässt.
Wenn Sie die Uncomplicated Firewall (ufw) verwenden, führen Sie den folgenden Befehl aus:
# ufw allow samba
Alternativ, wenn Sie firewalld verwenden, führen Sie den Befehl firewall-cmd wie folgt aus:
# firewall-cmd --permanent --add-port={139/tcp,445/tcp}# firewall-cmd --reload
Vor dem Start des Samba-Dienstes sind eine Reihe von Konfigurationsschritten erforderlich, um festzulegen, wie das Ubuntu-System für Windows-Systeme aussehen soll und welche Ressourcen für entfernte Clients freigegeben werden sollen. Die meisten dieser Konfigurationsaufgaben finden in der Datei /etc/samba/smb. conf statt.
1.5 Konfigurieren der Datei smb.conf
Samba ist ein äußerst flexibles und konfigurierbares System, das viele verschiedene Optionen zur Steuerung der gemeinsamen Nutzung von Ressourcen in Windows-Netzwerken bietet. Diese Flexibilität kann zu dem Eindruck führen, dass die Arbeit mit Samba übermäßig komplex ist. In Wirklichkeit werden jedoch viele der Konfigurationsoptionen bei einer typischen Installation nicht benötigt, und die Lernkurve für die Einrichtung einer Grundkonfiguration ist eigentlich recht kurz.
In diesem Kapitel werden wir uns mit dem Beitritt eines Ubuntu-Systems zu einer Windows-Arbeitsgruppe und der Einrichtung eines Verzeichnisses als gemeinsame Ressource befassen, auf die ein bestimmter Benutzer zugreifen kann. Dies ist eine Konfiguration, die als eigenständiger Samba-Server bekannt ist. Fortgeschrittenere Konfigurationen wie die Integration von Samba in eine Active Directory-Umgebung sind ebenfalls möglich, liegen aber außerhalb des Rahmens dieses Buches.
Der erste Schritt bei der Konfiguration von Samba besteht darin, die Datei /etc/samba/smb.conf zu bearbeiten.
1.5.1 Konfigurieren der Sektion
Die Datei smb.conf ist in Sektionen unterteilt. Der erste Abschnitt ist der Abschnitt, in dem Einstellungen festgelegt werden können, die für die gesamte Samba-Konfiguration gelten. Obwohl diese Einstellungen global sind, kann jede Option in anderen Abschnitten der Konfigurationsdatei überschrieben werden.
Die erste Aufgabe besteht darin, den Namen der Windows-Arbeitsgruppe festzulegen, in der die Ubuntu-Ressourcen freigegeben werden sollen. Dies wird über die Direktive workgroup = des Abschnitts gesteuert, der standardmäßig wie folgt konfiguriert ist:
workgroup = WORKGROUP
Ändern Sie diesen Wert bei Bedarf in den tatsächlichen Namen der Arbeitsgruppe.
Neben der Arbeitsgruppeneinstellung geben die anderen Einstellungen an, dass es sich um einen eigenständigen Server handelt, auf dem die gemeinsam genutzten Ressourcen durch Benutzerpasswörter geschützt werden. Bevor Sie mit der Konfiguration der gemeinsam genutzten Ressourcen fortfahren, müssen dem Abschnitt noch weitere Parameter hinzugefügt werden:
.. netbios name = LinuxServer..
Die Eigenschaft „netbios name“ gibt den Namen an, unter dem der Server für andere Systeme im Netzwerk sichtbar sein wird.
1.5.2 Konfiguration einer gemeinsam genutzten Ressource
Der nächste Schritt ist die Konfiguration der gemeinsam genutzten Ressourcen (d.h. der Ressourcen, die von anderen Systemen im Windows-Netzwerk zugänglich sein werden). Zu diesem Zweck wird dem Abschnitt ein Name gegeben, unter dem er bei der Freigabe bezeichnet werden soll. Wenn wir z. B. das Verzeichnis /sampleshare unseres Ubuntu-Systems freigeben wollen, könnten wir dem Abschnitt den Namen . In diesem Abschnitt sind eine Vielzahl von Konfigurationsoptionen möglich. Für die Zwecke dieses Beispiels werden wir jedoch einfach das Verzeichnis definieren, das freigegeben werden soll, angeben, dass das Verzeichnis sowohl durchsuchbar als auch beschreibbar ist, und die Ressource als öffentlich deklarieren, damit Gastbenutzer Zugriff erhalten können:
comment = Example Samba share path = /sampleshare browseable = Yes public = yes writable = yes
Um den Zugriff auf bestimmte Benutzer zu beschränken, kann beispielsweise die Eigenschaft „gültige Benutzer“ verwendet werden:
valid users = demo, bobyoung, marcewing
1.5.3 Unnötige Freigaben entfernen
Die Datei smb.conf ist mit Abschnitten für die Freigabe von Druckern und den Home-Ordnern der Benutzer im System vorkonfiguriert. Wenn diese Ressourcen nicht freigegeben werden müssen, können die entsprechenden Abschnitte auskommentiert werden, so dass sie von Samba ignoriert werden. Im folgenden Beispiel wurde der Abschnitt auskommentiert:
..## comment = Home Directories# valid users = %S, %D%w%S# browseable = No# read only = No# inherit acls = Yes..
1.6 Erstellen eines Samba-Benutzers
Jeder Benutzer, der Zugriff auf eine von Samba freigegebene Ressource benötigt, muss als Samba-Benutzer konfiguriert und mit einem Passwort versehen werden. Diese Aufgabe wird mit dem Befehlszeilentool smbpasswd erledigt. Nehmen wir zum Beispiel an, dass ein Benutzer namens demo in der Lage sein muss, von einem Windows-System aus auf das Verzeichnis /sampleshare unseres Ubuntu-Systems zuzugreifen. Um diese Anforderung zu erfüllen, müssen wir demo wie folgt als Samba-Benutzer hinzufügen:
# smbpasswd -a demoNew SMB password:Retype new SMB password:Added user demo.
Nun, da wir die Konfiguration eines sehr einfachen Samba-Servers abgeschlossen haben, ist es an der Zeit, unsere Konfigurationsdatei zu testen und dann die Samba-Dienste zu starten.
1.7 Testen der Datei smb.conf
Die Einstellungen in der Datei smb.conf können mit dem Kommandozeilentool testparm wie folgt auf Fehler überprüft werden:
# testparmLoad smb config files from /etc/samba/smb.confrlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)WARNING: The "syslog" option is deprecatedProcessing section ""Processing section ""Processing section ""Loaded services file OK.Server role: ROLE_STANDALONE Press enter to see a dump of your service definitions # Global parametersdns proxy = Nolog file = /var/log/samba/log.%mmap to guest = Bad Usermax log size = 1000netbios name = LINUXSERVERobey pam restrictions = Yespam password change = Yespanic action = /usr/share/samba/panic-action %dpasswd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .passwd program = /usr/bin/passwd %usecurity = USERserver role = standalone serverserver string = %h server (Samba, Ubuntu)syslog = 0unix password sync = Yesusershare allow guests = Yeswins support = Yesidmap config * : backend = tdb browseable = Nocomment = All Printerscreate mask = 0700path = /var/spool/sambaprintable = Yes comment = Printer Driverspath = /var/lib/samba/printers comment = Example Samba shareguest ok = Yespath = /sampleshareread only = No
1.8 Starten der Samba- und NetBIOS-Namensdienste
Damit ein Ubuntu-Server in einem Windows-Netzwerk betrieben werden kann, müssen sowohl der Samba- (SMB) als auch der NetBIOS-Namensdienst (NMB) gestartet werden. Optional können Sie die Dienste auch aktivieren, so dass sie bei jedem Systemstart gestartet werden:
# systemctl enable smbd# systemctl start smbd# systemctl enable nmbd# systemctl start nmbd
Bevor Sie versuchen, eine Verbindung von einem Windows-System aus herzustellen, verwenden Sie das Dienstprogramm smbclient, um zu überprüfen, ob die Freigabe konfiguriert ist:
# smbclient -U demo -L localhost Enter WORKGROUP\demo's password: Sharename Type Comment--------- ---- -------print$ Disk Printer Driverssampleshare Disk Example Samba shareIPC$ IPC IPC Service (demo-server2 server (Samba, Ubuntu))Officejet_Pro_8600_C7C718_ Printer Officejet_6600_971B9B_ Printer Reconnecting with SMB1 for workgroup listing. Server Comment--------- ------- Workgroup Master--------- -------WORKGROUP LINUXSERVER
1.9 Zugriff auf Samba-Freigaben
Nun, da die Samba-Ressourcen konfiguriert sind und die Dienste laufen, ist es an der Zeit, von einem Windows-System aus auf die gemeinsame Ressource zuzugreifen. Öffnen Sie auf einem geeigneten Windows-System, das sich in derselben Arbeitsgruppe wie das Ubuntu-System befindet, den Windows-Explorer und navigieren Sie zum Fenster „Netzwerk“. An dieser Stelle sollte der Explorer das Netzwerk durchsuchen und alle gefundenen Systeme auflisten, die das SMB-Protokoll verwenden. Die folgende Abbildung zeigt ein Ubuntu-System mit dem Namen LINUXSERVER, das mit dem Windows Explorer auf einem Windows 10-System gefunden wurde:
Abbildung 23-3
Doppelklicken Sie auf den LINUXSERVER-Host, um den Namen und das Passwort eines Benutzers mit Zugriffsrechten einzugeben. In diesem Fall ist es das Demo-Konto, das wir mit dem Tool smbpasswd konfiguriert haben:
Abbildung 23-4
Die Eingabe des Benutzernamens und des Passworts führt dazu, dass die für diesen Benutzer konfigurierten gemeinsamen Ressourcen im Explorer-Fenster erscheinen, einschließlich der zuvor konfigurierten Ressource /sampleshare:
Abbildung 23-5
Doppelklick auf die gemeinsame Ressource /sampleshare zeigt eine Liste der darin enthaltenen Dateien und Verzeichnisse an.
Wenn Sie das Linux-System nicht sehen können oder Probleme beim Zugriff auf den freigegebenen Ordner haben, versuchen Sie, die Samba-Freigabe wie folgt einem lokalen Windows-Laufwerk zuzuordnen:
- Öffnen Sie den Windows-Dateiexplorer, klicken Sie mit der rechten Maustaste auf den Eintrag „Netzwerk“ im linken Bereich und wählen Sie im daraufhin angezeigten Menü „Netzlaufwerk zuordnen…“.
- Wählen Sie im Dialogfeld „Netzlaufwerk zuordnen“ einen Laufwerksbuchstaben aus, bevor Sie den Pfad zum freigegebenen Ordner eingeben. Zum Beispiel:
\LinuxServer\sampleshare
Aktivieren Sie das Kontrollkästchen neben Verbinden mit anderen Anmeldeinformationen. Wenn Sie nicht möchten, dass das Laufwerk bei jeder Anmeldung am Windows-System zugeordnet wird, deaktivieren Sie das entsprechende Kontrollkästchen:
Abbildung 23-6
Klicken Sie nach der Eingabe der Einstellungen auf die Schaltfläche Fertig stellen, um das Laufwerk zuzuordnen, und geben Sie den Benutzernamen und das Kennwort für den zuvor im Kapitel konfigurierten Samba-Benutzer ein, wenn Sie dazu aufgefordert werden. Nach einer kurzen Verzögerung wird der Inhalt der Samba-Freigabe in einem neuen Datei-Explorer-Fenster angezeigt.
1.10 Zugriff auf Windows-Freigaben von Ubuntu aus
Wie bereits erwähnt, ist Samba eine Zweibahnstraße, die es nicht nur Windows-Systemen ermöglicht, auf Dateien und Drucker zuzugreifen, die auf einem Ubuntu-System gehostet werden, sondern auch dem Ubuntu-System erlaubt, auf freigegebene Ressourcen auf Windows-Systemen zuzugreifen. Dies wird mit dem Paket smbclient erreicht, das zu Beginn dieses Kapitels installiert wurde. Falls es noch nicht installiert ist, installieren Sie es von einem Terminalfenster aus wie folgt:
# apt install smbclient
Auf freigegebene Ressourcen auf einem Windows-System kann entweder vom Ubuntu-Desktop aus mit der Anwendung Files oder von der Kommandozeile aus mit den Tools smbclient und mount zugegriffen werden. Die Schritte in diesem Abschnitt gehen davon aus, dass die entsprechenden Einstellungen für die Netzwerkfreigabe auf dem Windows-System aktiviert wurden.
Um über den GNOME-Desktop auf freigegebene Ressourcen auf einem Windows-System zuzugreifen, starten Sie zunächst die Anwendung Dateien und wählen Sie die Option Andere Speicherorte. Daraufhin wird der in Abbildung 23-7 gezeigte Bildschirm angezeigt, einschließlich eines Symbols für das Windows-Netzwerk (falls eines erkannt wurde):
Abbildung 23-7
Wenn Sie die Option Windows-Netzwerk auswählen, werden die im Netzwerk erkannten Windows-Systeme angezeigt und der Zugriff auf alle freigegebenen Ressourcen ermöglicht.
Abbildung 23-8
Alternativ kann die Option Mit Server verbinden verwendet werden, um eine Verbindung zu einem bestimmten System herzustellen. Beachten Sie, dass dem Namen oder der IP-Adresse des entfernten Systems smb:// vorangestellt werden muss und der Pfad zu einer bestimmten gemeinsamen Ressource folgen kann, zum Beispiel:
smb://WinServer10/Documents
Schreibe einen Kommentar