Installation und Konfiguration von Samba unter CentOS 7

Samba ist eine freie und quelloffene Neuimplementierung des SMB/CIFS-Netzwerkprotokolls für die gemeinsame Nutzung von Dateien, Druckern und anderen gemeinsam genutzten Ressourcen.

In diesem Tutorial zeigen wir, wie man Samba unter CentOS 7 installiert und als eigenständigen Server konfiguriert, um die gemeinsame Nutzung von Dateien über verschiedene Betriebssysteme in einem Netzwerk zu ermöglichen.

Wir erstellen die folgenden Samba-Freigaben und Benutzer.

Benutzer:

  • sadmin – Ein administrativer Benutzer mit Lese- und Schreibzugriff auf alle Freigaben.
  • josh – Ein normaler Benutzer mit einer eigenen privaten Dateifreigabe.

Freigaben:

  • Benutzer – Auf diese Freigabe können alle Benutzer mit Lese- und Schreibberechtigung zugreifen.
  • josh – Auf diese Freigabe können nur die Benutzer josh und sadmin mit Lese-/Schreibrechten zugreifen.

Die Dateifreigaben sind von allen Geräten in Ihrem Netzwerk zugänglich. Später im Tutorial werden wir auch detaillierte Anweisungen geben, wie man sich von Linux-, Windows- und macOS-Clients mit dem Samba-Server verbindet.

Voraussetzungen #

Bevor Sie beginnen, stellen Sie sicher, dass Sie auf Ihrem CentOS 7-System als Benutzer mit sudo-Rechten angemeldet sind.

Samba auf CentOS installieren #

Samba ist in den Standard-CentOS-Repositories verfügbar. Um es auf Ihrem CentOS-System zu installieren, führen Sie den folgenden Befehl aus:

sudo yum install samba samba-client

Nach Abschluss der Installation starten Sie die Samba-Dienste und aktivieren Sie, dass sie beim Systemstart automatisch gestartet werden:

sudo systemctl start smb.servicesudo systemctl start nmb.service
sudo systemctl enable smb.servicesudo systemctl enable nmb.service

Der smbd-Dienst bietet Dateifreigabe- und Druckdienste und lauscht auf den TCP-Ports 139 und 445. Der Dienst nmbd stellt den Clients NetBIOS-over-IP-Naming-Dienste zur Verfügung und überwacht den UDP-Port 137.

Firewall konfigurieren #

Nachdem Samba auf Ihrem CentOS-Rechner installiert ist und läuft, müssen Sie Ihre Firewall konfigurieren und die erforderlichen Ports öffnen. Führen Sie dazu die folgenden Befehle aus:

firewall-cmd --permanent --zone=public --add-service=sambafirewall-cmd --zone=public --add-service=samba

Samba-Benutzer und Verzeichnisstruktur erstellen #

Zur besseren Wartbarkeit und Flexibilität werden anstelle der Standard-Home-Verzeichnisse (/home/user) alle Samba-Verzeichnisse und -Daten im Verzeichnis /samba gespeichert.

Beginnen Sie mit der Erstellung des Verzeichnisses /samba:

sudo mkdir /samba

Erstellen Sie eine neue Gruppe namens sambashare. Später werden wir alle Samba-Benutzer zu dieser Gruppe hinzufügen.

sudo groupadd sambashare 

Setzen Sie die Eigentümerschaft des Verzeichnisses /samba auf sambashare:

sudo chgrp sambashare /samba

Samba verwendet das Linux-Benutzer- und Gruppenberechtigungssystem, hat aber einen eigenen Authentifizierungsmechanismus, der sich von der Standard-Linux-Authentifizierung unterscheidet. Wir werden die Benutzer mit dem Standard-Linux-Tool useradd erstellen und dann das Benutzerpasswort mit dem Dienstprogramm smbpasswd festlegen.

Wie in der Einführung erwähnt, erstellen wir einen normalen Benutzer, der Zugriff auf seine private Dateifreigabe hat, und ein Administratorkonto mit Lese- und Schreibzugriff auf alle Freigaben auf dem Samba-Server.

Samba-Benutzer erstellen #

Um einen neuen Benutzer mit dem Namen josh zu erstellen, verwenden Sie den folgenden Befehl:

sudo useradd -M -d /samba/josh -s /usr/sbin/nologin -G sambashare josh

Die useradd-Optionen haben die folgende Bedeutung:

Erstellen Sie das Home-Verzeichnis des Benutzers und setzen Sie den Eigentümer des Verzeichnisses auf den Benutzer josh und die Gruppe sambashare:

sudo mkdir /samba/joshsudo chown josh:sambashare /samba/josh

Der folgende Befehl fügt dem Verzeichnis /samba/josh das Bit setgid hinzu, so dass die neu erstellten Dateien in diesem Verzeichnis die Gruppe des übergeordneten Verzeichnisses erben. Auf diese Weise hat die Datei, unabhängig davon, welcher Benutzer eine neue Datei erstellt, den Gruppeneigentümer sambashare. Wenn Sie beispielsweise die Berechtigungen des Verzeichnisses nicht auf 2770 setzen und der Benutzer sadmin eine neue Datei erstellt, kann der Benutzer josh diese Datei nicht lesen/schreiben.

sudo chmod 2770 /samba/josh

Fügen Sie das Benutzerkonto josh zur Samba-Datenbank hinzu, indem Sie das Benutzerpasswort festlegen:

sudo smbpasswd -a josh

Sie werden aufgefordert, das Benutzerpasswort einzugeben und zu bestätigen.

New SMB password:Retype new SMB password:Added user josh.

Nachdem Sie das Passwort festgelegt haben, aktivieren Sie das Samba-Konto durch Eingabe von:

sudo smbpasswd -e josh
Enabled user josh.

Um einen weiteren Benutzer zu erstellen, wiederholen Sie den gleichen Vorgang wie beim Erstellen des Benutzers josh.

Als nächstes erstellen wir einen Benutzer und eine Gruppe sadmin. Alle Mitglieder dieser Gruppe werden über administrative Rechte verfügen. Wenn Sie später einem anderen Benutzer administrative Rechte erteilen möchten, fügen Sie ihn einfach zur Gruppe sadmin hinzu.

Erstellen Sie den administrativen Benutzer durch Eingabe von:

sudo useradd -M -d /samba/users -s /usr/sbin/nologin -G sambashare sadmin

Der obige Befehl erstellt auch eine Gruppe sadmin und fügt den Benutzer zu den Gruppen sadmin und sambashare hinzu.

Legen Sie ein Kennwort fest und aktivieren Sie den Benutzer:

sudo smbpasswd -a sadminsudo smbpasswd -e sadmin

Erstellen Sie als Nächstes das Freigabeverzeichnis Users:

sudo mkdir /samba/users

Legen Sie den Eigentümer des Verzeichnisses auf den Benutzer sadmin und die Gruppe sambashare fest:

sudo chown sadmin:sambashare /samba/users

Dieses Verzeichnis ist für alle authentifizierten Benutzer zugänglich. Der folgende Befehl konfiguriert den Schreib-/Lesezugriff für Mitglieder der Gruppe sambashare im Verzeichnis /samba/users:

sudo chmod 2770 /samba/users

Samba-Freigaben konfigurieren #

Öffnen Sie die Samba-Konfigurationsdatei und fügen Sie die Abschnitte hinzu:

sudo nano /etc/samba/smb.conf
/etc/samba/smb.conf

Die Optionen haben folgende Bedeutung:

  • und – Die Namen der Freigaben, die Sie bei der Anmeldung verwenden werden.
  • path – Der Pfad zur Freigabe.
  • browseable – Ob die Freigabe in der Liste der verfügbaren Freigaben aufgeführt werden soll. Durch die Einstellung auf no können andere Benutzer die Freigabe nicht sehen.
  • read only – Ob die in der Liste valid users angegebenen Benutzer in diese Freigabe schreiben können.
  • force create mode – Legt die Berechtigungen für die neu erstellten Dateien in dieser Freigabe fest.
  • force directory mode – Legt die Berechtigungen für die neu erstellten Verzeichnisse in dieser Freigabe fest.
  • valid users – Eine Liste von Benutzern und Gruppen, die auf die Freigabe zugreifen dürfen. Gruppen wird das Symbol @ vorangestellt.

Weitere Informationen zu den verfügbaren Optionen finden Sie auf der Dokumentationsseite der Samba-Konfigurationsdatei.

Starten Sie anschließend die Samba-Dienste neu mit:

sudo systemctl restart smb.servicesudo systemctl restart nmb.service

In den folgenden Abschnitten zeigen wir Ihnen, wie Sie sich von Linux-, macOS- und Windows-Clients aus mit einer Samba-Freigabe verbinden können.

Verbinden mit einer Samba-Freigabe von Linux aus #

Linux-Benutzer können auf die Samba-Freigabe von der Kommandozeile aus zugreifen, den Dateimanager verwenden oder die Samba-Freigabe einhängen.

Verwenden des smbclient-Clients #

smbclient ist ein Tool, mit dem Sie von der Kommandozeile aus auf Samba zugreifen können. Das Paket smbclient ist auf den meisten Linux-Distributionen nicht vorinstalliert, so dass Sie es mit dem Paketmanager Ihrer Distribution installieren müssen.

Um smbclient auf Ubuntu und Debian zu installieren, führen Sie aus:

sudo apt install smbclient

Um smbclient auf CentOS und Fedora zu installieren, führen Sie aus:

sudo yum install samba-client

Die Syntax für den Zugriff auf eine Samba-Freigabe ist wie folgt:

mbclient //samba_hostname_or_server_ip/share_name -U username

Um beispielsweise eine Verbindung zu einer Freigabe mit dem Namen josh auf einem Samba-Server mit der IP-Adresse 192.168.121.118 als Benutzer josh herzustellen, würden Sie Folgendes ausführen:

smbclient //192.168.121.118/josh -U josh

Sie werden aufgefordert, das Benutzerpasswort einzugeben.

Enter WORKGROUP\josh's password:

Nach Eingabe des Passworts werden Sie an der Samba-Befehlszeilenschnittstelle angemeldet.

Try "help" to get a list of possible commands.smb: \>

Samba-Freigabe mounten #

Um eine Samba-Freigabe unter Linux zu mounten, müssen Sie zuerst das Paket cifs-utils installieren.

Unter Ubuntu und Debian führen Sie aus:

sudo apt install cifs-utils

Unter CentOS und Fedora führen Sie aus:

sudo yum install cifs-utils

Nachdem Sie einen Einhängepunkt erstellt haben:

sudo mkdir /mnt/smbmount

Mounten Sie die Freigabe mit dem folgenden Befehl:

sudo mount -t cifs -o username=username //samba_hostname_or_server_ip/sharename /mnt/smbmount

Um beispielsweise eine Freigabe mit dem Namen josh auf einem Samba-Server mit der IP-Adresse 192.168.121.118 als Benutzer josh in den Einhängepunkt /mnt/smbmount einzuhängen, führen Sie aus:

sudo mount -t cifs -o username=josh //192.168.121.118/josh /mnt/smbmount

Sie werden aufgefordert, das Benutzerkennwort einzugeben.

Password for josh@//192.168.121.118/josh: ********

Benutzung der GUI #

Der Standard-Dateimanager in Gnome hat eine eingebaute Option, um auf Samba-Freigaben zuzugreifen.

  1. Öffnen Sie Dateien und klicken Sie auf „Andere Speicherorte“ in der Seitenleiste.
  2. In „Mit Server verbinden“ geben Sie die Adresse der Samba-Freigabe im folgenden Format ein smb://samba_hostname_or_server_ip/sharename.
  3. Klicken Sie auf „Verbinden“ und der folgende Bildschirm erscheint:

  4. Wählen Sie „Registrierter Benutzer“, geben Sie den Samba-Benutzernamen und das Passwort ein und klicken Sie auf „Verbinden“.
  5. Die Dateien auf dem Samba-Server werden angezeigt.

Verbinden mit einer Samba-Freigabe von macOS aus #

In macOS können Sie auf die Samba-Freigaben entweder über die Befehlszeile oder über den standardmäßigen macOS-Dateimanager Finder zugreifen. Die folgenden Schritte zeigen, wie man über den Finder auf die Freigabe zugreift.

  1. Öffnen Sie „Finder“, wählen Sie „Los“ und klicken Sie auf „Verbinden mit“.
  2. Geben Sie unter „Verbinden mit“ die Adresse der Samba-Freigabe im folgenden Format ein smb://samba_hostname_or_server_ip/sharename.

  3. Klicken Sie auf „Verbinden“ und der folgende Bildschirm wird angezeigt:

  4. Wählen Sie „Registrierter Benutzer“, geben Sie den Samba-Benutzernamen und das Passwort ein und klicken Sie auf „Verbinden“.
  5. Die Dateien auf dem Samba-Server werden angezeigt.

Verbinden mit einer Samba-Freigabe von Windows aus #

Windows-Benutzer haben auch die Möglichkeit, eine Verbindung zur Samba-Freigabe sowohl über die Befehlszeile als auch über die grafische Benutzeroberfläche herzustellen. Die folgenden Schritte zeigen, wie man über den Windows File Explorer auf die Freigabe zugreift.

  1. Öffnen Sie den File Explorer und klicken Sie im linken Bereich mit der rechten Maustaste auf „Dieser PC“.
  2. Wählen Sie „Benutzerdefinierten Netzwerkspeicherort auswählen“ und klicken Sie dann auf „Weiter“.
  3. Geben Sie unter „Internet- oder Netzwerkadresse“ die Adresse der Samba-Freigabe im folgenden Format ein \samba_hostname_or_server_ip\sharename.

  4. Klicken Sie auf „Weiter“ und Sie werden aufgefordert, die Anmeldedaten wie unten gezeigt einzugeben:

  5. Im nächsten Fenster können Sie einen benutzerdefinierten Namen für den Netzwerkstandort eingeben. Der Standardname wird vom Samba-Server übernommen.

  6. Klicken Sie auf „Weiter“, um zum letzten Bildschirm des Verbindungseinrichtungsassistenten zu gelangen.
  7. Klicken Sie auf „Fertigstellen“ und die Dateien auf dem Samba-Server werden angezeigt.

Abschluss #

In diesem Tutorial haben Sie gelernt, wie man einen Samba-Server auf CentOS 7 installiert und verschiedene Arten von Freigaben und Benutzern erstellt. Wir haben Ihnen auch gezeigt, wie Sie sich von Linux-, macOS- und Windows-Geräten aus mit dem Samba-Server verbinden können.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.