34 Samba #
Mit Samba kann ein Unix-Computer als Datei- und Druckserver für macOS-, Windows- und OS/2-Computer konfiguriert werden. Samba ist mittlerweile ein sehr umfassendes und komplexes Produkt. Konfigurieren Sie Samba mit YaST oder indem Sie die Konfigurationsdatei manuell bearbeiten.
34.1 Terminologie #
Im Folgenden werden einige Begriffe erläutert, die in der Samba-Dokumentation und im YaST-Modul verwendet werden.
- SMB-Protokoll
Samba verwendet das SMB-Protokoll (Server Message Block), das auf den NetBIOS-Diensten basiert. Microsoft veröffentlichte das Protokoll, damit auch andere Softwarehersteller Anbindungen an ein Microsoft-Domänennetzwerk einrichten konnten. Samba setzt das SMB- auf das TCP/IP-Protokoll auf. Entsprechend muss auf allen Clients das TCP/IP-Protokoll installiert sein.
Tip: IBM Z: Unterstützung für NetBIOSIBM Z unterstützt nur SMB über TCP/IP. NetBIOS-Unterstützung ist auf diesen Systemen nicht verfügbar.
- CIFS-Protokoll
Das CIFS-Protokoll (Common Internet File System) ist ein weiteres von Samba unterstütztes Protokoll. CIFS definiert ein Standardprotokoll für den Fernzugriff auf Dateisysteme über das Netzwerk, das Benutzergruppen die netzwerkweite Zusammenarbeit und gemeinsame Dokumentbenutzung ermöglicht.
- NetBIOS
NetBIOS ist eine Softwareschnittstelle (API) für die Kommunikation zwischen Computern, die einen Name Service bereitstellen. Mit diesem Dienst können die an das Netzwerk angeschlossenen Computer Namen für sich reservieren. Nach dieser Reservierung können die Computer anhand ihrer Namen adressiert werden. Für die Überprüfung der Namen gibt es keine zentrale Instanz. Jeder Computer im Netzwerk kann beliebig viele Namen reservieren, solange die Namen noch nicht Gebrauch sind. Die NetBIOS-Schnittstelle kann in unterschiedlichen Netzwerkarchitekturen implementiert werden. Eine Implementierung, die relativ eng mit der Netzwerkhardware arbeitet, ist NetBEUI (häufig auch als NetBIOS bezeichnet). Mit NetBIOS implementierte Netzwerkprotokolle sind IPX (NetBIOS über TCP/IP) von Novell und TCP/IP.
Die per TCP/IP übermittelten NetBIOS-Namen haben nichts mit den in der Datei
/etc/hosts
oder per DNS vergebenen Namen zu tun. NetBIOS ist ein eigener, vollständig unabhängiger Namensraum. Es empfiehlt sich jedoch, für eine einfachere Administration NetBIOS-Namen zu vergeben, die den jeweiligen DNS-Hostnamen entsprechen, oder DNS nativ zu verwenden. Für einen Samba-Server ist dies die Voreinstellung.- Samba-Server
Samba-Server stellt SMB/CIFS-Dienste sowie NetBIOS over IP-Namensdienste für Clients zur Verfügung. Für Linux gibt es drei Dämonen für Samba-Server: smbd für SMB/CIFS-Dienste, nmbd für Naming Services und winbind für Authentifizierung.
- Samba-Client
Der Samba-Client ist ein System, das Samba-Dienste von einem Samba-Server über das SMB-Protokoll nutzt. Das Samba-Protokoll wird von gängigen Betriebssystemen wie Windows und MacOS unterstützt. Auf den Computern muss das TCP/IP-Protokoll installiert sein. Für die verschiedenen UNIX-Versionen stellt Samba einen Client zur Verfügung. Für Linux gibt es zudem ein Dateisystem-Kernel-Modul für SMB, das die Integration von SMB-Ressourcen auf Linux-Systemebene ermöglicht. Sie brauchen für den Samba-Client keinen Dämon auszuführen.
- Freigaben
Freigaben SMB-Server stellen den Clients Ressourcen in Form von Freigaben () zur Verfügung. Freigaben sind Drucker und Verzeichnisse mit ihren Unterverzeichnissen auf dem Server. Eine Freigabe wird unter einem eigenen Namen exportiert und kann von Clients unter diesem Namen angesprochen werden. Der Freigabename kann frei vergeben werden. Er muss nicht dem Namen des exportierten Verzeichnisses entsprechen. Ebenso wird einem Drucker ein Name zugeordnet. Clients können über den Namen auf den Drucker zugreifen.
- DC
Ein Domänencontroller (DC) ist ein Server, der Konten in der Domäne verwaltet. Zur Datenreplikation stehen zusätzliche Domain Controller in einer Domäne zur Verfügung.
34.2 Installieren eines Samba-Servers #
Zur Installation eines Samba-Servers starten Sie YaST, und wählen Sie
› . Wählen Sie › und dann . Bestätigen Sie die Installation der erforderlichen Pakete, um den Installationsvorgang abzuschließen.34.3 Starten und Stoppen von Samba #
Sie können den Samba-Server automatisch (beim Booten) oder manuell starten bzw. stoppen. Start- und Stopprichtlinien sind Teil der Samba-Serverkonfiguration mit YaST, die in Section 34.4.1, “Konfigurieren eines Samba-Servers mit YaST” beschrieben ist.
Beenden Sie die Dienste für Samba. Geben Sie hierzu in einer Befehlszeile den Befehl systemctl stop smb nmb
ein und starten Sie die Dienste dann mit systemctl start nmb smb
neu. winbind
wird bei Bedarf durch den Dienst smb
eingestellt.
winbind
winbind
ist ein unabhängiger Dienst und wird als solcher auch als einzelnes samba-winbind
-Paket angeboten.
34.4 Konfigurieren eines Samba-Servers #
Es gibt zwei Möglichkeiten, Samba-Server in SUSE® Linux Enterprise Server zu konfigurieren: mit YaST oder manuell. Bei der manuellen Konfiguration können Sie mehr Details einstellen, allerdings müssen Sie ohne den Komfort der Bedienoberfläche von YaST zurechtkommen.
34.4.1 Konfigurieren eines Samba-Servers mit YaST #
Um einen Samba-Server zu konfigurieren, starten Sie YaST und wählen Sie
› .34.4.1.1 Anfängliche Samba-Konfiguration #
Wenn Sie dieses Modul zum ersten Mal starten, wird das Dialogfeld
geöffnet, und Sie werden aufgefordert, einige grundlegende Entscheidungen zur Verwaltung des Servers zu treffen. Am Ende des Konfigurationsvorgangs werden Sie aufgefordert, das Samba-Administratorpasswort ( ) einzugeben. Bei späteren Starts wird das Dialogfeld geöffnet.Der Dialog
umfasst zwei Schritte und optionale detaillierte Einstellungen:- Arbeitsgruppe oder Domäne
Wählen Sie unter
eine Arbeitsgruppe oder Domäne aus oder geben Sie eine neue ein und klicken Sie auf .- Samba-Servertyp
Geben Sie im nächsten Schritt an, ob Ihr Server als Primary Domain Controller (PDC), Backup Domain Controller (BDC) oder nicht als Domain Controller agieren soll. Fahren Sie mit
fort.
Falls Sie keine detaillierte Serverkonfiguration vornehmen möchten, bestätigen Sie dies mit
. Legen Sie dann im abschließenden Popup-Feld das fest.Sie können alle Einstellungen später im Dialogfeld
auf den Karteireitern , , , und ändern.34.4.1.2 Aktivieren der aktuellen Versionen des SMB-Protokolls am Server #
Auf Clients, die aktuelle Versionen von SUSE Linux Enterprise Server oder andere neuere Linux-Versionen ausführen, ist das unsichere SMB1-Protokoll standardmäßig deaktiviert. Bestehende Instanzen von Samba können jedoch so konfiguriert werden, dass sie nur Freigaben mit der SMB1-Version des Protokolls bedienen. Zur Interaktion mit diesen Clients müssen Sie Samba so konfigurieren, dass Freigaben bedient werden, die mindestens das SMB-Protokoll Version 2.1 verwenden.
In einigen Einrichtungen kann nur SMB1 verwendet werden, beispielsweise weil sie auf die Unix-Erweiterungen von SMB1/CIFS angewiesen sind. Diese Erweiterungen wurden nicht auf neuere Protokollversionen portiert. Wenn diese Situation auf Sie zutrifft, sollten Sie in Erwägung ziehen, die Einrichtung zu ändern. Andernfalls finden Sie weitere Informationen in Section 34.5.2, “Einhängen von SMB1-Freigaben auf Clients”.
Legen Sie dazu in der Konfigurationsdatei /etc/samba/smb.conf
den globalen Parameter server max protocol = SMB2_10
fest. Eine Liste der möglichen Werte finden Sie in man smb.conf
.
34.4.1.3 Erweiterte Samba-Konfiguration #
Beim ersten Start des Samba-Servermoduls wird das Dialogfeld Section 34.4.1.1, “Anfängliche Samba-Konfiguration”) geöffnet. Hier passen Sie Ihre Samba-Server-Konfiguration an.
direkt nach den beiden Anfangsschritten (sieheKlicken Sie nach dem Bearbeiten Ihrer Konfiguration auf
, um Ihre Einstellungen zu speichern.34.4.1.3.1 Starten des Servers #
Auf dem Karteireiter Section 34.3, “Starten und Stoppen von Samba”.
können Sie den Start des Samba-Servers konfigurieren. Um den Dienst bei jedem Systemboot zu starten, wählen Sie (Beim Systemstart). Um den manuellen Start zu aktivieren, wählen Sie (Manuell). Weitere Informationen zum Starten eines Samba-Servers erhalten Sie inAuf diesem Karteireiter können Sie auch Ports in Ihrer Firewall öffnen. Wählen Sie hierfür
(Firewall-Port öffnen). Wenn mehrere Netzwerkschnittstellen vorhanden sind, wählen Sie die Netzwerkschnittstelle für Samba-Dienste, indem Sie auf klicken, die Schnittstellen auswählen und dann auf klicken.34.4.1.3.3 Identität #
Auf dem Karteireiter zum Beispiel LDAP- anstelle von TDB-Datenbank) klicken Sie auf .
legen Sie fest, zu welcher Domäne der Host gehört ( ) und ob ein alternativer Hostname im Netzwerk ( ) verwendet werden soll. Microsoft Windows Internet Name Service (WINS) kann auch zur Namensauflösung benutzt werden. Aktivieren Sie in diesem Fall und entscheiden Sie, ob Sie möchten. Zum Festlegen globaler Einstellungen für Experten oder einer Quelle zur Benutzerauthentifizierung (34.4.1.3.4 Verbürgte Domänen #
Sie ermöglichen Benutzern anderer Domänen den Zugriff auf Ihre Domäne, indem Sie die entsprechenden Einstellungen in dem Karteireiter
vornehmen. Klicken Sie zum Hinzufügen einer neuen Domäne auf . Zum Entfernen der ausgewählten Domäne klicken Sie auf .34.4.1.3.5 LDAP-Einstellungen #
In dem Karteireiter
können Sie den LDAP-Server für die Authentifizierung festlegen. Um die Verbindung mit Ihrem LDAP-Server zu testen, klicken Sie auf . LDAP-Einstellungen für Experten oder die Verwendung von Standardwerten können Sie festlegen, wenn Sie auf klicken.Weitere Informationen zur LDAP-Konfiguration finden Sie im Chapter 5, LDAP with 389 Directory Server.
34.4.2 Manuelles Konfigurieren des Servers #
Wenn Sie Samba als Server einsetzen möchten, installieren Sie samba
. Die Hauptkonfigurationsdatei für Samba ist /etc/samba/smb.conf
. Diese Datei kann in zwei logische Bereiche aufgeteilt werden. Der Abschnitt [global]
enthält die zentralen und globalen Einstellungen. Die folgenden Abschnitte enthalten die einzelnen Datei- und Druckerfreigaben:
[homes]
[Profile]
[Benutzer]
[Gruppen]
[Drucker]
[drucken$]
Auf diese Weise können unterschiedliche Optionen für die einzelnen Freigaben festgelegt werden (oder auch global im Abschnitt [global]
), sodass die Konfigurationsdatei einfacher zu verstehen ist.
34.4.2.1 Der Abschnitt „global“ #
Die folgenden Parameter im Abschnitt [global]
sind den Gegebenheiten Ihres Netzwerks anzupassen, damit Ihr Samba-Server in einer Windows-Umgebung von anderen Computern über SMB erreichbar ist.
Arbeitsgruppe = ARBEITSGRUPPE
Mit dieser Zeile wird der Samba-Server einer Arbeitsgruppe zugeordnet. Ersetzen Sie
ARBEITSGRUPPE
durch eine entsprechende Arbeitsgruppe Ihrer Netzwerkumgebung. Der Samba-Server erscheint mit seinem DNS-Namen, sofern der Name noch nicht an ein anderes Gerät im Netzwerk vergeben ist. Wenn der DNS-Name nicht verfügbar ist, kann der Servername mithilfe vonnetbiosname=MEINNAME
festgelegt werden. Weitere Details zu diesem Parameter finden Sie auf der man-Seitesmb.conf
.os level = 20
Anhand dieses Parameters entscheidet Ihr Samba-Server, ob er versucht, LMB (Local Master Browser) für seine Arbeitsgruppe zu werden. Wählen Sie einen niedrigen Wert wie etwa
2
, damit ein vorhandenes Windows-Netz nicht durch einen falsch konfigurierten Samba-Server gestört wird. Weitere Informationen zu diesem Thema finden Sie im Kapitel „Netzwerk-Browser“ im Samba 3-HOWTO; weitere Informationen zum Samba 3-HOWTO finden Sie unter Section 34.9, “Weiterführende Informationen”.Wenn im Netzwerk kein anderer SMB-Server (z. B. ein Windows 2000-Server) vorhanden ist und der Samba-Server eine Liste aller in der lokalen Umgebung vorhandenen Systeme verwalten soll, setzen Sie den Parameter
os level
auf einen höheren Wert (z. B.65
). Der Samba-Server wird dann als LMB für das lokale Netzwerk ausgewählt.Beim Ändern dieses Werts sollten Sie besonders vorsichtig sein, da dies den Betrieb einer vorhandenen Windows-Netzwerkumgebung stören könnte. Testen Sie Änderungen zuerst in einem isolierten Netzwerk oder zu unkritischen Zeiten.
wins support und wins server
Wenn Sie den Samba-Server in ein vorhandenes Windows-Netzwerk integrieren möchten, in dem bereits ein WINS-Server betrieben wird, aktivieren Sie den Parameter
wins server
und setzen Sie seinen Wert auf die IP-Adresse des WINS-Servers.Sie müssen einen WINS-Server einrichten, wenn Ihre Windows-Systeme in getrennten Subnetzen betrieben werden und sich gegenseitig erkennen sollen. Um einen Samba-Server als WINS-Server festzulegen, setzen Sie die Option
wins support = Yes
. Stellen Sie sicher, dass diese Einstellung nur auf einem einzigen Samba-Server im Netzwerk aktiviert wird. Die Optionenwins server
undwins support
dürfen in der Dateismb.conf
niemals gleichzeitig aktiviert sein.
34.4.2.3 Sicherheitsstufen (Security Levels) #
Jeder Zugriff auf eine Freigabe kann für mehr Sicherheit durch ein Passwort geschützt werden. SMB bietet die folgenden Möglichkeiten zur Überprüfung von Berechtigungen:
- Sicherheitsstufe „Benutzer“ (
security = user
) Diese Variante führt das Konzept des Benutzers in SMB ein. Jeder Benutzer muss sich bei einem Server mit einem Passwort anmelden. Nach der Authentifizierung kann der Server dann abhängig vom Benutzernamen Zugriff auf die einzelnen exportierten Freigaben gewähren.
- Sicherheitsstufe „ADS“ (
security = ADS
) In diesem Modus fungiert Samba als Domänenmitglied in einer Active Directory-Umgebung. Für den Betrieb in diesem Modus muss auf dem Computer, auf dem Samba ausgeführt wird, Kerberos installiert und konfiguriert sein. Der Computer, auf dem Samba verwendet wird, muss in den ADS-Bereich integriert sein. Dies kann mithilfe des YaST-Moduls
erreicht werden.- Sicherheitsstufe „Domäne“ (
security = domain
) Dieser Modus funktioniert nur korrekt, wenn der Computer in eine Windows NT-Domäne integriert wurde. Samba versucht, den Benutzernamen und das Passwort zu validieren, indem es diese an einen Window NT-Primär-Controller oder Backup Domain Controller weiterleitet. Ein Windows NT-Server wäre ausreichend. Er erwartet, dass der Parameter für das verschlüsselte Passwort auf
ja
festgelegt wurde.
Die Sicherheit auf Freigabe-, Benutzer-, Server- und Domänenebene (Share, User, Server und Domain Level Security) gilt für den gesamten Server. Es ist nicht möglich, einzelne Freigaben einer Serverkonfiguration mit Share Level Security und andere mit User Level Security zu exportieren. Sie können jedoch auf einem System für jede konfigurierte IP-Adresse einen eigenen Samba-Server ausführen.
Weitere Informationen zu diesem Thema finden Sie im Samba 3-HOWTO. Wenn sich mehrere Server auf einem System befinden, beachten Sie die Optionen interfaces
und bind interfaces only
.
34.5 Konfigurieren der Clients #
Clients können auf den Samba-Server nur über TCP/IP zugreifen. NetBEUI oder NetBIOS über IPX können mit Samba nicht verwendet werden.
34.5.1 Konfigurieren eines Samba-Clients mit YaST #
Konfigurieren Sie einen Samba-Client, um auf Ressourcen (Dateien oder Drucker) auf dem Samba- oder Windows-Server zuzugreifen. Geben Sie im Dialogfeld
› die NT- oder Active Directory-Domäne oder -Arbeitsgruppe an. Wenn Sie aktivieren, erfolgt die Benutzerauthentifizierung über den Samba, NT- oder Kerberos-Server.
Klicken Sie für erweiterte Konfigurationsoptionen auf pam_mount
.
Bestätigen Sie zum Abschluss alle Einstellungen, um die Konfiguration zu beenden.
34.5.2 Einhängen von SMB1-Freigaben auf Clients #
Die erste Version des SMB-Netzwerkprotokolls, SMB1, ist ein altes und unsicheres Protokoll, das von seinem Initiator Microsoft nicht mehr verwendet wird. Aus Sicherheitsgründen werden mit dem Kommando mount
unter SUSE Linux Enterprise Server nur SMB-Freigaben eingehängt, die standardmäßig neuere Protokollversionen verwenden, nämlich SMB 2.1, SMB 3.0 oder SMB 3.02.
Dies betrifft jedoch nur das Kommando mount
und das Einhängen über /etc/fstab
. SMB1 ist standardmäßig noch verfügbar, wenn Sie Folgendes verwenden:
Das Tool
smbclient
.Die Samba-Serversoftware, die im Lieferumfang von SUSE Linux Enterprise Server enthalten ist.
In manchen Einrichtungen führt diese Standardeinstellung zu Verbindungsfehlern, weil nur SMB1 verwendet werden kann:
Einrichtungen, die einen SMB-Server verwenden, der keine neueren SMB-Protokollversionen unterstützt. Windows bietet SMB 2.1-Unterstützung seit Windows 7 und Windows Server 2008 an.
Einrichtungen, die auf Unix-Erweiterungen von SMB1/CIFS angewiesen sind. Diese Erweiterungen wurden nicht auf neuere Protokollversionen portiert.
Wenn Sie die folgenden Anweisungen befolgen, können Sie Sicherheitsprobleme für sich nutzen. Weitere Informationen zu diesen Problemen finden Sie unter https://blogs.technet.microsoft.com/filecab/2016/09/16/stop-using-smb1/.
Upgraden Sie Ihren Server so bald wie möglich, um eine SMB-Version mit höherer Sicherheit zu verwenden.
Informationen zur Aktivierung geeigneter Protokollversionen unter SUSE Linux Enterprise Server finden Sie in Section 34.4.1.2, “Aktivieren der aktuellen Versionen des SMB-Protokolls am Server”.
Wenn Sie SMB1-Freigaben auf dem aktuellen SUSE Linux Enterprise Server-Kernel aktivieren müssen, fügen Sie die Option vers=1.0
zur verwendeten mount
-Kommandozeile hinzu:
root #
mount –t smbfs IP_ADDRESS:/SHARE /MOUNT_POINT –o username=USER_ID,workgroup=WORKGROUP_NAME,vers=1.0
34.6 Samba als Anmeldeserver #
In Unternehmenseinstellungen ist es oft wünschenswert, nur denjenigen Benutzern Zugriff zu gewähren, die bei einer zentralen Instanz registriert sind. In einem Windows-basierten Netzwerk wird diese Aufgabe von einem Primary Domain Controller (PDC) übernommen. Sie können einen Windows NT-Server verwenden, der als PDC konfiguriert ist; diese Aufgabe kann aber auch mithilfe eines Samba-Servers ausgeführt werden. Es müssen Einträge im Abschnitt [global]
von smb.conf
vorgenommen werden. Diese werden in Example 34.3, “Abschnitt „global“ in smb.conf” beschrieben.
[global] workgroup = WORKGROUP domain logons = Yes domain master = Yes
Die Benutzerkonten und Passwörter müssen in ein Windows-konformes Verschlüsselungsformat umgewandelt werden. Verwenden Sie hierfür den Befehl smbpasswd
-a name
. Da nach dem Windows-Domänenkonzept auch die Computer selbst ein Domänenkonto benötigen, wird dieses mit den folgenden Kommandos angelegt:
useradd hostname smbpasswd -a -m hostname
Mit dem Befehl useradd
wird ein Dollarzeichen hinzugefügt. Der Befehl smbpasswd
fügt dieses bei der Verwendung des Parameters -m
automatisch hinzu. In der kommentierten Beispielkonfiguration (/usr/share/doc/packages/Samba/examples/smb.conf.SuSE
) sind Einstellungen enthalten, die diese Aufgabe automatisieren.
add machine script = /usr/sbin/useradd -g nogroup -c "NT Machine Account" \ -s /bin/false %m
Um sicherzustellen, dass Samba dieses Skript korrekt ausführen kann, wählen Sie einen Samba-Benutzer mit den erforderlichen Administratorberechtigungen und fügen Sie ihn zur Gruppe ntadmin
hinzu. Anschließend können Sie allen Mitgliedern der Linux-Gruppe den Status Domain Admin
zuweisen, indem Sie folgendes Kommando eingeben:
net groupmap add ntgroup="Domain Admins" unixgroup=ntadmin
34.7 Samba-Server im Netzwerk mit Active Directory #
Wenn Sie Linux- und Windows-Server gemeinsam ausführen, können Sie zwei unabhängige Authentifizierungssysteme und -netzwerke aufbauen oder die Server mit einem Netzwerk verbinden, das über ein zentrales Authentifizierungssystem verfügt. Da Samba mit einer Active Directory-Domäne kooperiert, können Sie Ihren Server unter SUSE Linux Enterprise Server mit einer Active Directory (AD)-Domäne verbinden.
So erfolgt der Beitritt zu einer AD-Domäne:
Melden Sie sich als
root
an und starten Sie YaST.Starten Sie
› .Geben Sie die zu verbindende Domäne unter
im Dialogfeld an.Figure 34.1: Festlegen der Windows-Domänenmitgliedschaft #Aktivieren Sie
, um die SMB-Quelle für die Linux-Authentifizierung auf dem Server zu nutzen.Klicken Sie auf
und bestätigen Sie nach Aufforderung die Domänenverbindung.Geben Sie das Passwort für den Windows-Administrator auf dem AD-Server an und klicken Sie auf
.Ihr Server ist jetzt so eingerichtet, dass alle Authentifizierungsdaten vom Active Directory-Domänencontroller abgerufen werden.
In einer Umgebung mit mehreren Samba-Servern werden die UIDs und GIDs nicht einheitlich erstellt. Die UIDs, die den Benutzern zugewiesen werden, sind abhängig von der Reihenfolge, in der sich diese Benutzer erstmalig anmelden. Dies führt zu UID-Konflikten über die Server hinweg. Zur Behebung dieses Problems ist die Identitätszuordnung erforderlich. Weitere Einzelheiten finden Sie unter https://www.samba.org/samba/docs/man/Samba-HOWTO-Collection/idmapper.html.
34.8 Weitere Themen #
In diesem Abschnitt lernen Sie fortgeschrittene Vefahren zur Verwaltung des Client- und des Serverteils der Samba-Suite kennen.
34.8.1 Transparente Dateikomprimierung mit Btrfs #
Mit Samba können die Clients die Flags für die Datei- und Verzeichniskomprimierung für Freigaben, die sich im Btrfs-Dateisystem befinden, im Fernverfahren bearbeiten. Windows Explorer bietet im Dialogfeld
› › die Möglichkeit, die Dateien/Verzeichnisse zur transparenten Komprimierung zu kennzeichnen:Die zur Komprimierung gekennzeichneten Dateien werden beim Zugreifen oder Ändern transparent durch das zugrunde liegende Dateisystem komprimiert bzw. dekomprimiert. Damit sparen Sie Speicherplatz, doch beim Zugreifen auf die Datei wird die CPU stärker beansprucht. Neue Dateien und Verzeichnisse übernehmen das Komprimierungs-Flag vom übergeordneten Verzeichnis, sofern sie nicht mit der Option FILE_NO_COMPRESSION erstellt werden.
Komprimierte Dateien und Verzeichnisse werden in Windows Explorer anders dargestellt als nicht komprimierte Dateien und Verzeichnisse:
Sie können die Komprimierung der Samba-Freigabe wahlweise manuell aktivieren (fügen Sie hierzu
vfs objects = btrfs
in die Freigabekonfiguration in /etc/samba/smb.conf
ein) oder mit YaST. Wählen Sie hierzu › › , und aktivieren Sie die Option .
Eine allgemeine Übersicht über die Komprimierung in Btrfs finden Sie im Section 1.2.2.1, “Mounting Compressed Btrfs File Systems”.
34.8.2 Aufnahmen #
Snapshots (auch als Schattenkopien bezeichnet) sind Kopien des Zustands eines Subvolumens in einem Dateisystem zu einem bestimmten Zeitpunkt. Die Verwaltung dieser Snapshots in Linux erfolgt mit Snapper. Die Snapshots werden auf dem Btrfs-Dateisystem sowie auf LVM-Volumes mit Thin Provisioning unterstützt. Die Samba-Suite unterstützt die Verwaltung von Remote-Snapshots über das FSRVP-Protokoll sowohl auf Server- als auch auf Clientseite.
34.8.2.1 Frühere Versionen #
Die Snapshots auf einem Samba-Server können für entfernte Windows-Clients als Datei- oder Verzeichnis-Vorgängerversionen gezeigt werden.
Zum Aktivieren von Snapshots auf einem Samba-Server müssen die folgenden Voraussetzungen erfüllt sein:
Die SMB-Netzwerkfreigabe befindet sich auf einem Btrfs-Subvolume.
Für den Pfad der SMB-Netzwerkfreigabe ist eine zugehörige Snapper-Konfigurationsdatei vorhanden. Sie können die Snapper-Datei wie folgt erstellen:
tux >
sudo
snapper -c <cfg_name> create-config/path/to/share
Weitere Informationen zu Snapper finden Sie in Chapter 7, Systemwiederherstellung und Snapshot-Verwaltung mit Snapper.
Der Snapshot-Verzeichnisbaum muss den Zugriff für relevante Benutzer ermöglichen. Weitere Informationen finden Sie auf der man-Seite zu vfs_snapper (
man 8 vfs_snapper
) im Abschnitt zu den Berechtigungen.
Sollen Remote-Snapshots unterstützt werden,
müssen Sie die Datei /etc/samba/smb.conf
bearbeiten. Verwenden Sie hierzu wahlweise › › , oder bearbeiten Sie den relevanten Freigabeabschnitt manuell mit
vfs objects = snapper
Damit die manuellen Änderungen an smb.conf
in Kraft treten, müssen Sie den Samba-Service wie folgt neu starten:
tux >
sudo
systemctl restart nmb smb
Nach der Konfiguration können Sie auf die Snapshots, die Snapper für den Samba-Freigabepfad erstellt hat, in Windows Explorer über die Registerkarte
für eine Datei oder ein Verzeichnis zugreifen.34.8.2.2 Remote-Snapshots für Freigaben #
Standardmäßig können Snapshots lediglich lokal auf dem Samba-Server erstellt und gelöscht werden (mit dem Kommandozeilenprogramm Snapper oder mit der Zeitleistenfunktion in Snapper).
Sie können Samba so konfigurieren, dass Anfragen zum Erstellen und Löschen von Snapshots für Freigaben verarbeitet werden, die von entfernten Hosts über das FSRVP (File Server Remote VSS-Protokoll) gesendet werden.
Neben den Konfigurationsschritten und Voraussetzungen in Section 34.8.2.1, “Frühere Versionen” ist die folgende globale Konfiguration in /etc/samba/smb.conf
erforderlich:
[global] rpc_daemon:fssd = fork registry shares = yes include = registry
FSRVP-Clients (auch rpcclient
in Samba und DiskShadow.exe
in Windows Server 2012) können dann Samba anweisen, einen Snapshot für eine bestimmte Freigabe zu erstellen und den Snapshot als neue Freigabe zu zeigen.
34.8.2.3 Fernverwaltung von Snapshots in Linux mit rpcclient
#
Das Paket samba-client
umfasst einen FSRVP-Client, der im Fernverfahren eine Anfrage an einen Windows-/Samba-Server stellen kann, einen Snapshot für eine bestimmte Freigabe zu erstellen und zu zeigen. Anschließend können Sie die gezeigte Freigabe mit den vorhandenen Werkzeugen in SUSE Linux Enterprise Server einhängen und die Dateien in dieser Freigabe sichern. Die Anfragen werden über die Binärdatei rpcclient
an den Server gesendet.
rpcclient
#
Stellen Sie eine Verbindung zum Server win-server.example.com
als Administrator in der Domäne EXAMPLE
her:
root #
rpcclient -U 'EXAMPLE\Administrator' ncacn_np:win-server.example.com[ndr64,sign]
Enter EXAMPLE/Administrator's password:
Überprüfen Sie, ob die SMB-Freigabe für rpcclient
sichtbar ist:
root #
rpcclient $> netshareenum
netname: windows_server_2012_share
remark:
path: C:\Shares\windows_server_2012_share
password: (null)
Überprüfen Sie, ob die SMB-Freigabe das Erstellen von Snapshots unterstützt:
root #
rpcclient $> fss_is_path_sup windows_server_2012_share \
UNC \\WIN-SERVER\windows_server_2012_share\ supports shadow copy requests
Fordern Sie die Erstellung eines Snapshots für eine Freigabe an:
root #
rpcclient $> fss_create_expose backup ro windows_server_2012_share
13fe880e-e232-493d-87e9-402f21019fb6: shadow-copy set created
13fe880e-e232-493d-87e9-402f21019fb6(1c26544e-8251-445f-be89-d1e0a3938777): \
\\WIN-SERVER\windows_server_2012_share\ shadow-copy added to set
13fe880e-e232-493d-87e9-402f21019fb6: prepare completed in 0 secs
13fe880e-e232-493d-87e9-402f21019fb6: commit completed in 1 secs
13fe880e-e232-493d-87e9-402f21019fb6(1c26544e-8251-445f-be89-d1e0a3938777): \
share windows_server_2012_share@{1C26544E-8251-445F-BE89-D1E0A3938777} \
exposed as a snapshot of \\WIN-SERVER\windows_server_2012_share\
Überprüfen Sie, ob der Snapshot der Freigabe durch den Server gezeigt wird:
root #
rpcclient $> netshareenum
netname: windows_server_2012_share
remark:
path: C:\Shares\windows_server_2012_share
password: (null)
netname: windows_server_2012_share@{1C26544E-8251-445F-BE89-D1E0A3938777}
remark: (null)
path: \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy{F6E6507E-F537-11E3-9404-B8AC6F927453}\Shares\windows_server_2012_share\
password: (null)
Versuchen Sie, den Snapshot der Freigabe zu löschen:
root #
rpcclient $> fss_delete windows_server_2012_share \
13fe880e-e232-493d-87e9-402f21019fb6 1c26544e-8251-445f-be89-d1e0a3938777
13fe880e-e232-493d-87e9-402f21019fb6(1c26544e-8251-445f-be89-d1e0a3938777): \
\\WIN-SERVER\windows_server_2012_share\ shadow-copy deleted
Überprüfen Sie, ob der Snapshot der Freigabe durch den Server entfernt wurde:
root #
rpcclient $> netshareenum
netname: windows_server_2012_share
remark:
path: C:\Shares\windows_server_2012_share
password: (null)
34.8.2.4 Fernverwaltung von Snapshots in Windows mit DiskShadow.exe
#
Sie können Snapshots von SMB-Freigaben auf dem Linux Samba-Server auch über die Windows-Umgebung, die als Client auftritt, verwalten. Mit dem Dienstprogramm DiskShadow.exe
in Windows Server 2012 verwalten Sie Remote-Freigaben ähnlich wie mit rpcclient
(siehe Section 34.8.2.3, “Fernverwaltung von Snapshots in Linux mit rpcclient
”). Zunächst muss jedoch der Samba-Server ordnungsgemäß eingerichtet werden.
Im Folgenden wird erläutert, wie Sie einen Samba-Server so konfigurieren, dass der Windows Server-Client die Snapshots der Freigaben auf dem Samba-Server verwalten kann. EXAMPLE ist der Name der Active Directory-Domäne in der Testumgebung,
fsrvp-server.example.com
ist der Hostname des Samba-Servers und /srv/smb
ist der Pfad zur SMB-Freigabe.
Treten Sie der Active Directory-Domäne mithilfe von YaST bei. Weitere Informationen, Section 34.7, “Samba-Server im Netzwerk mit Active Directory”.
Prüfen Sie, ob der DNS-Eintrag der Active Directory-Domäne korrekt ist:
fsrvp-server:~ # net -U 'Administrator' ads dns register \ fsrvp-server.example.com <IP address> Successfully registered hostname with DNS
Erstellen Sie ein Btrfs-Subvolume unter
/srv/smb
:fsrvp-server:~ # btrfs subvolume create /srv/smb
Erstellen Sie eine Snapper-Konfigurationsdatei für den Pfad
/srv/smb
:fsrvp-server:~ # snapper -c <snapper_config> create-config /srv/smb
Erstellen Sie eine neue Freigabe mit dem Pfad
/srv/smb
und aktivieren Sie in YaST das Kontrollkästchen . Fügen Sie in jedem Fall die folgenden Snippets in den globalen Abschnitt der Datei/etc/samba/smb.conf
ein (siehe Section 34.8.2.2, “Remote-Snapshots für Freigaben”):[global] rpc_daemon:fssd = fork registry shares = yes include = registry
Starten Sie Samba mit
systemctl restart nmb smb
neu.Konfigurieren Sie die Snapper-Berechtigungen:
fsrvp-server:~ # snapper -c <snapper_config> set-config \ ALLOW_USERS="EXAMPLE\\\\Administrator EXAMPLE\\\\win-client$"
Überprüfen Sie, ob alle unter ALLOW_USERS aufgeführten Benutzer auch die Berechtigung für das Traversal des Unterverzeichnisses
.snapshots
besitzen.fsrvp-server:~ # snapper -c <snapper_config> set-config SYNC_ACL=yes
Important: Escape-Zeichen bei PfadenGehen Sie mit dem Escape-Zeichen „\“ vorsichtig vor! Setzen Sie das Escape-Zeichen zweimal, damit der Wert in
/etc/snapper/configs/<snapper_config>
ordnungsgemäß auskommentiert wird.„EXAMPLE\win-client$“ bezeichnet das Windows-Clientkonto. Die anfänglichen FSRVP-Anfragen von Windows werden mit diesem Konto ausgegeben.
Erteilen Sie dem Windows-Clientkonto die erforderlichen Berechtigungen:
fsrvp-server:~ # net -U 'Administrator' rpc rights grant \ "EXAMPLE\\win-client$" SeBackupPrivilege Successfully granted rights.
Für den Benutzer „EXAMPLE\Administrator“ muss das obige Kommando nicht ausgeführt werden, da diese Konto bereits die Berechtigungen besitzt.
DiskShadow.exe
#Booten Sie Windows Server 2012 (Beispiel-Hostname: WIN-CLIENT).
Treten Sie derselben Active Directory-Domäne EXAMPLE bei wie mit dem SUSE Linux Enterprise Server.
Booten Sie den Computer neu.
Öffnen Sie die Powershell.
Starten Sie
DiskShadow.exe
, und beginnen Sie den Sicherungsvorgang:PS C:\Users\Administrator.EXAMPLE> diskshadow.exe Microsoft DiskShadow version 1.0 Copyright (C) 2012 Microsoft Corporation On computer: WIN-CLIENT, 6/17/2014 3:53:54 PM DISKSHADOW> begin backup
Geben Sie an, dass die Schattenkopie auch beim Beenden des Programms, beim Zurücksetzen und beim Neubooten erhalten bleiben soll:
DISKSHADOW> set context PERSISTENT
Überprüfen Sie, ob die angegebene Freigabe Snapshots unterstützt, und erstellen Sie einen Snapshot:
DISKSHADOW> add volume \\fsrvp-server\sles_snapper DISKSHADOW> create Alias VSS_SHADOW_1 for shadow ID {de4ddca4-4978-4805-8776-cdf82d190a4a} set as \ environment variable. Alias VSS_SHADOW_SET for shadow set ID {c58e1452-c554-400e-a266-d11d5c837cb1} \ set as environment variable. Querying all shadow copies with the shadow copy set ID \ {c58e1452-c554-400e-a266-d11d5c837cb1} * Shadow copy ID = {de4ddca4-4978-4805-8776-cdf82d190a4a} %VSS_SHADOW_1% - Shadow copy set: {c58e1452-c554-400e-a266-d11d5c837cb1} %VSS_SHADOW_SET% - Original count of shadow copies = 1 - Original volume name: \\FSRVP-SERVER\SLES_SNAPPER\ \ [volume not on this machine] - Creation time: 6/17/2014 3:54:43 PM - Shadow copy device name: \\FSRVP-SERVER\SLES_SNAPPER@{31afd84a-44a7-41be-b9b0-751898756faa} - Originating machine: FSRVP-SERVER - Service machine: win-client.example.com - Not exposed - Provider ID: {89300202-3cec-4981-9171-19f59559e0f2} - Attributes: No_Auto_Release Persistent FileShare Number of shadow copies listed: 1
Beenden Sie den Sicherungsvorgang:
DISKSHADOW> end backup
Versuchen Sie, den erstellten Snapshot zu löschen, und überprüfen Sie, ob er tatsächlich gelöscht wurde:
DISKSHADOW> delete shadows volume \\FSRVP-SERVER\SLES_SNAPPER\ Deleting shadow copy {de4ddca4-4978-4805-8776-cdf82d190a4a} on volume \ \\FSRVP-SERVER\SLES_SNAPPER\ from provider \ {89300202-3cec-4981-9171-19f59559e0f2} [Attributes: 0x04000009]... Number of shadow copies deleted: 1 DISKSHADOW> list shadows all Querying all shadow copies on the computer ... No shadow copies found in system.
34.9 Weiterführende Informationen #
man-Seiten: Eine Liste aller man-Seiten, die mit dem Paket sambainstalliert sind, erhalten Sie durch Ausführen von
apropos samba
. Öffnen Sie eine der man-Seiten mitman NAME_OF_MAN_PAGE
.SUSE-spezifische README-Datei: Das Paket samba-client enthält die Datei
/usr/share/doc/packages/samba/README.SUSE
.Weitere Dokumentation im Paket: Installieren Sie das Paket
samba-doc
mitzypper install samba-doc
.Diese Dokumentation wird im Pfad
/usr/share/doc/packages/samba
installiert. Sie enthält eine HTML-Version der man-Seiten sowie eine Bibliothek der Konfigurationsbeispiele (wiesmb.conf.SUSE
).Online-Dokumentation: Das Samba-Wiki enthält eine umfangreiche Benutzerdokumentation unter https://wiki.samba.org/index.php/User_Documentation.