Was ist Samba?
Samba ist eine Open-Source-Implementierung des Server Message Block (SMB)-Protokolls. Es ermöglicht Linux, mit dem Windows-Betriebssystem sowohl als Server als auch als Client zu arbeiten. Samba teilt Linux-Dateien und -Drucker mit Windows-Systemen und gibt Linux-Benutzern auch Zugriff auf Dateien auf Windows-Systemen. Samba verwendet NetBIOS über TCP/IP (NetBT) Protokolle und benötigt nicht das NetBEUI (Microsoft Raw NetBIOS Frame) Protokoll.
In den meisten Linux-Distributionen sind mehrere Samba-Pakete enthalten:
- Samba :Stellt einen SMB/Common Internet File System (CIFS)-Server bereit, der verwendet werden kann, um Netzwerkdienste für SMB/CIFS-Clients bereitzustellen
- Samba-Client :Bietet einige SMB/CIFS-Clients zur Ergänzung des integrierten SMB/CIFS-Dateisystems in Linux. Diese Clients ermöglichen den Zugriff auf SMB/CIFS-Freigaben und das Drucken auf SMB/CIFS-Druckern.
- samba-gemeinsam :Stellt Dateien bereit, die sowohl für die Server- als auch für die Client-Samba-Pakete erforderlich sind
- samba-winbind :Stellt den winbind-Daemon und die Client-Tools bereit. winbind ermöglicht die Linux-Mitgliedschaft in Windows-Domänen und die Verwendung von Windows-Benutzer- und -Gruppenkonten
- samba-winbind-clients :Stellt die Network Security Services (NSS)-Bibliothek und Pluggable Authentication Modules (PAM) bereit, die für die Kommunikation mit winbind benötigt werden
Verwenden Sie „yum install [package_name] ” um die Pakete zu installieren.
# yum install [package_name]
Samba-Daemons und -Dienste
Das Samba-Server-Paket enthält die folgenden Daemons und zugehörigen Dienste:
- smbd :Der Server-Daemon, der Dateifreigabe- und Druckdienste für Windows-Clients bereitstellt. Es ist auch für die Benutzerauthentifizierung, das Sperren von Ressourcen und die gemeinsame Nutzung von Daten über das SMB-Protokoll verantwortlich.
- nmbd :Der NetBIOS Nameserver-Daemon antwortet auf Name-Service-Anforderungen, die von SMB/CIFS in Windows-basierten Systemen erzeugt werden. Es bietet auch Browsing-Unterstützung in der Windows-Netzwerkumgebungsansicht.
Diese Daemons werden von den zugehörigen Diensten smb und nmb gesteuert, zum Beispiel:
# systemctl start smb # systemctl start nmb
Das Paket samba-winbind enthält den winbindd-Daemon und den zugehörigen Dienst:
- winbindd :Löst Benutzer- und Gruppeninformationen auf einem Windows-Server auf und macht diese Informationen für Linux verständlich.
Dieser Daemon wird vom winbind-Dienst gesteuert:
# systemctl start winbind
Samba-Server-Konfiguration
Die Hauptkonfigurationsdatei für Samba ist /etc/samba/smb.conf . Diese Konfigurationsdatei ist in Abschnitte unterteilt, die jeweils mit Text beginnen, der von eckigen Klammern umgeben ist. Mit Ausnahme des Abschnitts [global] beschreibt jeder Abschnitt eine gemeinsam genutzte Ressource, die als „Freigabe“ bezeichnet wird “. Typische Abschnitte sind:
Abschnitt | Beschreibung |
---|---|
[global] | Definiert globale Parameter |
[Häuser] | Definiert Freigaben im Homes-Verzeichnis |
[Drucker] | Definiert Drucker |
[Freigabename] | Definiert eine Freigabe |
Parameter innerhalb des Abschnitts definieren die Share-Attribute. Unter der Annahme, dass die globalen Parameter richtig konfiguriert sind, definiert das folgende Beispiel eine Freigabe, die allen Windows-Benutzern Lese- und Schreibberechtigungen für das lokale /tmp-Verzeichnis gibt:
# vi /etc/samba/smb.conf [tmp] comment = Insert a comment here path = /tmp writable = yes guest ok = yes
Siehe smb.conf man-Seite für eine Beschreibung aller Parameter, die Sie in der Konfigurationsdatei einstellen können.
# man smb.conf
Es gibt globale Parameter, Sicherheitsparameter, Protokollierungsparameter, Browserparameter, Kommunikationsparameter und Freigabeparameter. Es gibt auch mehrere grafische Benutzeroberflächen zum Konfigurieren und Verwalten von Samba. Eine Liste davon finden Sie unter http://www.samba.org/samba/GUI/.
[homes] Teilen
Samba stellt diese Freigabe bereit, um Benutzern die gemeinsame Nutzung ihrer Linux-Home-Verzeichnisse mit einem Windows-System zu erleichtern. Das Folgende ist ein Beispiel:
# vi /etc/samba/smb.conf [homes] comment = Insert a comment here browsable = no writable = yes
Diese Einstellungen hindern andere Benutzer als die Eigentümer daran, Home-Verzeichnisse zu durchsuchen, während sie angemeldeten Eigentümern vollen Zugriff gewähren.
Starten eines Samba-Servers
Um einen Samba-Server zu starten, führen Sie den unten gezeigten Befehl aus.
# systemctl start smb
Wenn Sie Konfigurationsänderungen an der Datei /etc/samba/smb.conf vornehmen, führen Sie einen Neustart durch oder laden Sie neu:
# systemctl restart smb # systemctl reload smb
Das reload-Argument stoppt und startet den smb-Dienst nicht; es lädt nur die Konfigurationsdatei neu. Verwenden Sie den Befehl systemctl, um den Dienst so zu konfigurieren, dass er beim Booten gestartet wird. Beispiel:
# systemctl enable smb
Samba-Servertypen
– Der Servertyp wird im Abschnitt [global] der Datei /etc/samba/smb.conf konfiguriert.
– Ein eigenständiger Server kann ein Arbeitsgruppenserver oder ein Mitglied einer Arbeitsgruppe sein.
– Ein Domänenmitgliedsserver meldet sich bei einem Domänencontroller an und unterliegt den Sicherheitsregeln der Domäne.
– Ein Samba-Server kann ein Domänencontroller in einer Windows NT-Domäne, aber nicht in einer Active Directory-Domäne sein.
Weitere Details zu Samba-Servertypen finden Sie im folgenden Beitrag.
Was sind verschiedene Samba-Server-Typen?Zugriff auf Linux-Freigaben von Windows aus
Um von Windows aus auf eine Freigabe auf einem Linux-Samba-Server zuzugreifen, öffnen Sie Arbeitsplatz oder Explorer und geben Sie den Hostnamen des Samba-Servers und den Freigabenamen im folgenden Format ein:
\\servername\sharename
Wenn Sie \\servername eingeben , zeigt Windows die Verzeichnisse an, die das Linux-System gemeinsam nutzt. Sie können auch ein Netzlaufwerk einem Freigabenamen zuordnen, indem Sie dieselbe Syntax verwenden.
smbusers File
Damit ein Windows-Benutzer auf eine Samba-Freigabe auf einem Linux-System zugreifen kann, muss der Benutzer einen Windows-Benutzernamen und ein Samba-Passwort angeben. Der Windows-Benutzername muss mit dem Linux-Benutzernamen identisch sein oder einem Linux-Benutzernamen zugeordnet werden. Samba speichert diese Benutzernamen-Maps in /etc/samba/smbusers Datei. Benutzer mit demselben Benutzernamen unter Linux und Windows benötigen keinen Eintrag in dieser Datei, aber sie benötigen trotzdem ein Samba-Passwort.
Die Datei /etc/samba/smbusers hat zwei Standardeinträge:
root = administrator admin nobody = guest pcguest smbguest
Der erste Eintrag ordnet den Linux-Root-Benutzer dem Administrator und den Admin-Benutzern in Windows zu. Der zweite Eintrag ordnet den Linux-Benutzer none drei Windows-Benutzernamen zu – guest, pcguest, smbguest.
Um den Windows-Benutzernamen von john dem Linux-Benutzernamen von user01 zuzuordnen, fügen Sie den folgenden Eintrag zu /etc/samba/smbusers hinzu:
# vi /etc/samba/smbusers user01 = john
Samba verwendet Samba-Passwörter, keine Linux-Passwörter, um Benutzer zu authentifizieren. Fügen Sie mit dem folgenden Befehl ein Passwort für den Benutzer user01 hinzu:
# smbpasswd –a user01 New SMB password: Retype new SMB password: Added user oracle.
Zugriff auf Windows-Freigaben von Linux aus
Es gibt 2 Dienstprogramme, um Samba-Server abzufragen:
- findsmb
- smbtree
Verwenden Sie das findsmb Befehl, um ein Subnetz nach Samba-Servern abzufragen. Der Befehl zeigt die IP-Adresse, den NetBIOS-Namen, die Arbeitsgruppe, das Betriebssystem und die Version für jeden gefundenen Server an.
Sie können auch den smbtree verwenden Befehl, der ein textbasierter SMB-Netzwerkbrowser ist. Es zeigt ein Hierarchiediagramm mit allen bekannten Domänen, den Servern in diesen Domänen und den Freigaben auf den Servern.
Die GNOME- und KDE-Desktops bieten browserbasierte Dateimanager zum Anzeigen von Windows-Freigaben im Netzwerk. Geben Sie smb: ein in der Adressleiste des Dateimanagers, um Freigaben zu durchsuchen.
Verwenden Sie den smbclient Dienstprogramm zum Herstellen einer Verbindung zu einer Windows-Freigabe über die Befehlszeile. Das Format ist wie folgt:
smbclient //[servername]/[sharename] [-U [username]]
Das smb:\> Die Eingabeaufforderung wird nach erfolgreicher Anmeldung angezeigt. Geben Sie help ein, um eine Liste mit Befehlen anzuzeigen. Geben Sie exit ein, um smbclient zu beenden.
Um Samba-Freigaben einzuhängen, installieren Sie das Paket cifs-utils:
# yum install cifs-utils
Verwenden Sie die mount.cifs Befehl mit dem folgenden Format zum Mounten von Samba-Freigaben:
# mount.cifs //[servername]/[sharename] /mount-point -o username=[username],password=[password]