In diesem Tutorial erfahren Sie, wie Sie einen Samba-Server unter Ubuntu installieren und konfigurieren, um Dateien im lokalen Netzwerk freizugeben. Samba ist eine freie und Open-Source-SMB / CIFS-Protokoll-Implementierung für Unix und Linux, die Datei-und Druckfreigabe zwischen Unix/Linux -, Windows-und macOS-Maschinen in einem lokalen Netzwerk ermöglicht.

Samba wird normalerweise unter Linux installiert und ausgeführt., Es umfasst mehrere Programme, die verschiedenen, aber verwandten Zwecken dienen, von denen die wichtigsten sind:

  • smbd: bietet SMB/CIFS-Dienst (Dateifreigabe und Drucken), kann auch als Windows-Domänencontroller fungieren.
  • nmbd: Dieser Daemon bietet NetBIOS Name Service, hört auf Name-Server-Anfragen. Außerdem kann der Samba-Server von anderen Computern im Netzwerk gefunden werden.

So installieren Sie den Samba-Server unter Ubuntu

Samba ist in den meisten Linux-Distributionen enthalten. Um Samba unter Ubuntu zu installieren, führen Sie einfach den folgenden Befehl im Terminal aus.,

sudo apt install samba samba-common-bin

Die neueste verfügbare stabile Version ist 4.12.0, veröffentlicht am 03. Um Ihre Samba-Version zu überprüfen, führen Sie

smbd --version

Beispielausgabe aus:

Version 4.7.6-Ubuntu

Um zu überprüfen, ob der Samba-Dienst ausgeführt wird, geben Sie den folgenden Befehl aus.

systemctl status smbd nmbd

Um diese beiden Dienste zu starten, geben Sie den folgenden Befehl aus:

sudo systemctl start smbd nmbd

Nach dem Start wird smbd TCP-Port 139 und 445 abhören. nmbd wird UDP Port 137 und 138 abhören.,

  • TCP 139: wird für die Datei-und Druckerfreigabe und andere Vorgänge verwendet.
  • TCP 445: der NetBIOS-less CIFS port.
  • UDP 137: wird für das Surfen im NetBIOS-Netzwerk verwendet.
  • UDP 138: wird für NetBIOS Name Service verwendet.

Wenn Sie die UFW-Firewall unter Ubuntu aktiviert haben, müssen Sie die oben genannten Ports in der Firewall mit dem folgenden Befehl öffnen.

sudo ufw allow samba

Erstellen Sie eine private Samba-Freigabe

In diesem Abschnitt erfahren Sie, wie Sie eine private Samba-Freigabe erstellen, für die der Client Benutzername und Kennwort eingeben muss, um Zugriff zu erhalten., Die Haupt-Samba-Konfigurationsdatei befindet sich unter: /etc/samba/smb.conf. Sie können es im Terminal mit einem Befehlszeilentexteditor wie nanobearbeiten.

sudo nano /etc/samba/smb.conf

Stellen Sie im Abschnitt sicher, dass der Wert von workgroup mit den Arbeitsgruppeneinstellungen von Windows-Computern identisch ist.,

workgroup = WORKGROUP

Sie finden die Einstellung auf Ihrem Windows-Computer unter Control Panel > System and Security > System.

Scrollen Sie dann zum Ende der Datei. (Im Nano-Texteditor können Sie dies erreichen, indem Sie CTRL+W und dann CTRL+V. ) Fügen Sie einen neuen Abschnitt wie unten.,

Erläuterung:

  • Private ist der Ordnername, der im Windows-Netzwerk angezeigt wird.
  • Der Kommentar ist eine Beschreibung für den freigegebenen Ordner.
  • Der Parameter path gibt den Pfad zum freigegebenen Ordner an. Ich benutze /srv/samba/private/ als Beispiel. Sie können auch einen Ordner in Ihrem home-Verzeichnis.
  • browseable = yes: Ermöglichen Sie anderen Computern im Netzwerk, den Samba-Server und die Samba-Freigabe anzuzeigen., Wenn no festgelegt ist, müssen Benutzer den Namen des Samba-Servers kennen und dann manuell einen Pfad im Dateimanager eingeben, um auf den freigegebenen Ordner zuzugreifen.
  • guest ok = no: Deaktivieren der Gast-Zugang. Mit anderen Worten, Sie müssen Benutzernamen und Kennwort auf dem Clientcomputer eingeben, um auf den freigegebenen Ordner zuzugreifen.
  • writable = yes: Gewährt Clients Lese-und Schreibberechtigungen.
  • valid users = @samba: Nur Benutzer der Samba-Gruppe dürfen auf diese Samba-Freigabe zugreifen.

Speichern und Schließen der Datei., (Um die Datei im Nano-Texteditor zu speichern, drücken Sie Ctrl+O und dann die Eingabetaste, um den zu schreibenden Dateinamen zu bestätigen. Um die Datei zu schließen, drücken Sie Ctrl+X.) Jetzt müssen wir einen Samba-Benutzer erstellen. Zuerst müssen wir ein Standard-Linux-Benutzerkonto mit dem folgenden Befehl erstellen. Ersetzen Sie username durch Ihren gewünschten Benutzernamen.

sudo adduser username

Sie werden aufgefordert, ein Unix-Passwort festzulegen., Danach müssen Sie auch ein separates Samba-Passwort für den neuen Benutzer mit dem folgenden Befehl festlegen:

sudo smbpasswd -a username

Erstellen Sie die Samba-Gruppe.

sudo groupadd samba

Und fügen Sie diesen Benutzer der samba-Gruppe.

sudo gpasswd -a username samba

Erstellen Sie den privaten Ordner freigeben.

sudo mkdir -p /srv/samba/private/

Die Samba-Gruppe muss über Lese -, Schreib-und Ausführungsberechtigungen für den freigegebenen Ordner verfügen. Sie können diese Berechtigungen erteilen, indem Sie den folgenden Befehl ausführen., (Wenn Ihr System nicht über den Befehl setfacl verfügt, müssen Sie das Paket acl mit sudo apt install aclinstallieren.)

sudo setfacl -R -m "g:samba:rwx" /srv/samba/private/

Führen Sie als Nächstes den folgenden Befehl aus, um zu überprüfen, ob syntaktische Fehler vorliegen.

testparm

Jetzt müssen Sie nur noch smbd und nmbd Daemon.,

sudo systemctl restart smbd nmbd

So erstellen Sie eine öffentliche Samba-Freigabe ohne Authentifizierung

Um eine öffentliche Freigabe zu erstellen, ohne dass Benutzername und Kennwort erforderlich sind, müssen die folgenden Bedingungen erfüllt sein.

  • Legen Sie security = user im globalen Abschnitt der Samba-Konfigurationsdatei fest. Sie können zwar eine öffentliche Freigabe mit dem security = share – Modus erstellen, dieser Sicherheitsmodus ist jedoch veraltet. Es wird dringend empfohlen, denshare – Modus zu vermeiden.
  • Legen Sie map to guest = bad user im globalen Abschnitt der Samba-Konfigurationsdatei fest., Dies führt dazu, dass smbd ein Gastkonto verwendet, um Clients zu authentifizieren, die kein registriertes Konto auf dem Samba-Server haben. Da es sich um ein Gastkonto handelt, müssen Samba-Clients kein Kennwort eingeben.
  • Legen Sie guest ok = yes in der Freigabedefinition fest, um den Gastzugriff zu ermöglichen.
  • Erteilen Sie dem nobody – Konto, das das Standard-Gastkonto ist, Lese -, Schreib-und Ausführungsberechtigung des öffentlichen Ordners.

Tatsächlich sind die ersten beiden Bedingungen bereits erfüllt, da Samba diese beiden Einstellungen standardmäßig verwendet.,

Hier ist eine Schritt-für-Schritt-Anleitung zum Erstellen einer öffentlichen Freigabe. Öffnen und bearbeiten Sie zunächst die Samba-Konfigurationsdatei.

sudo nano /etc/samba/smb.conf

Stellen Sie im Abschnitt sicher, dass der Wert von workgroup mit den Arbeitsgruppeneinstellungen von Windows-Computern identisch ist.

workgroup = WORKGROUP

Sie finden die Einstellung auf Ihrem Windows-Computer unter Control Panel > System and Security > System.,

Scrollen Sie dann zum Ende der Datei und fügen Sie die folgenden Zeilen ein.

Speichern und Schließen der Datei. Erstellen Sie als Nächstes den Ordner /srv/samba/public/.

sudo mkdir -p /srv/samba/public

Stellen Sie dann sicher, dass das nobody – Konto Lese -, Schreib-und Ausführungsberechtigungen für den öffentlichen Ordner hat, indem Sie den folgenden Befehl ausführen. (Wenn Ihr System nicht über den Befehl setfacl verfügt, müssen Sie das Paket acl mit sudo apt install aclinstallieren.,)

sudo setfacl -R -m "u:nobody:rwx" /srv/samba/public/

smbd und nmbd neu starten.

sudo systemctl restart smbd nmbd

Zugriff auf den freigegebenen Samba-Ordner von Windows

Öffnen Sie auf einem Windows-Computer im selben Netzwerk den Datei-Explorer und klicken Sie im linken Bereich auf Network. Wenn die folgende Meldung angezeigt wird, müssen Sie auf die Nachricht klicken und die Netzwerkerkennung und Dateifreigabe aktivieren.

Geben Sie als nächstes \\ gefolgt von der IP-Adresse des Samba-Servers in die Adressleiste des Datei-Explorers ein: \\192.168.0.102., Sie sehen eine Liste der freigegebenen Ressourcen auf dem Samba-server.

Dann doppelklicken Sie auf den freigegebenen Ordner. Um auf die private Freigabe zuzugreifen, müssen Sie den Samba-Benutzernamen und das Kennwort eingeben. Sie müssen dies nicht tun, um auf Public Share zuzugreifen.

Nach der Verbindung können Sie Dateien im freigegebenen Samba-Ordner lesen, schreiben und löschen.

Verbindungsfehler

Wenn Sie den folgenden Fehler erhalten:

You do not have permission to access \\hostname\share-name. Contact your network administrator to request access.

Sie können versuchen, über die Eingabeaufforderung eine Verbindung zur Samba-Freigabe herzustellen., Öffnen Sie eine Eingabeaufforderung und führen Sie den folgenden Befehl aus, um die aktuelle Samba-Sitzung zu schließen.

net use \\samba-server-ip\share-name /delete

Stellen Sie als Nächstes mit dem folgenden Befehl eine Verbindung zur Samba-Freigabe her:

net use \\samba-server-ip\share-name /user:samba-username password

Sobald der obige Befehl erfolgreich ausgeführt wurde, wechseln Sie zur Registerkarte Netzwerk im Datei-Explorer und jetzt sollten Sie auf die Samba-Freigabe zugreifen können.

Laufwerkzuordnung unter Windows

Ein Merkmal des Windows-Betriebssystems ist die Möglichkeit, einen Laufwerksbuchstaben (z. B. S:) einem Remote-Verzeichnis zuzuordnen., Um den Laufwerksbuchstaben S: der Samba-Freigabe zuzuordnen, klicken Sie mit der rechten Maustaste auf den freigegebenen Samba-Ordner und wählen Sie Netzlaufwerk zuordnen. Wählen Sie dann einen Laufwerksbuchstaben und klicken Sie auf Fertig stellen.

Sobald die Laufwerkzuordnung eingerichtet ist, können Anwendungen über den Laufwerksbuchstaben auf die Dateien in der Samba-Freigabe zugreifen S:. Und diese Samba-Freigabe wird automatisch gemountet, wenn Sie sich bei Ihrem Windows-Computer anmelden.,

Zugriff auf Samba-Freigabeordner im Nautilus-Dateimanager unter Linux

Wenn Sie den Nautilus-Dateimanager verwenden, klicken Sie im linken Bereich auf Other Locations. Unten sehen Sie eine Option zum Herstellen einer Verbindung zum Server. Um auf Ihre Samba-Freigabe zuzugreifen, geben Sie smb:// gefolgt von der IP-Adresse des Samba-Servers ein und drücken Sie die Eingabetaste. Zum Beispiel:

  • smb://192.168.0.102

sehen Sie eine Liste der freigegebenen Ressourcen auf dem Samba-server.,

Wenn Sie auf den privaten freigegebenen Ordner klicken, müssen Sie den Samba-Benutzernamen und das Kennwort eingeben. Wenn Sie auf den öffentlichen freigegebenen Ordner klicken,wählen Sie die Verbindung als Anonym.

Samba-Freigabe automatisch über die Befehlszeile unter Linux mounten

Wenn Sie die Samba-Freigabe beim Booten automatisch mounten müssen, können Sie die Befehlszeile zum Mounten verwenden und dann einen Eintrag in der Datei /etc/fstab hinzufügen. Dazu müssen Sie das Paket installieren.,

CentOS/RHEL

sudo dnf install cifs-utils

Debian/Ubuntu

sudo apt install cifs-utils

erstellen Sie Dann einen mount-Punkt für die Samba-Freigabe.

sudo mkdir /mnt/samba-private

Jetzt können Sie den folgenden Befehl verwenden, um einen privaten freigegebenen Ordner zu mounten.

sudo mount -t cifs -o username=your_samba_username //192.168.0.102/private /mnt/samba-private/

Sie werden aufgefordert, das Samba-Passwort einzugeben. Danach wird es im Verzeichnis /mnt/samba-private/ gemountet.

Um die Samba-Freigabe automatisch zu mounten, bearbeiten Sie die Datei .

sudo nano /etc/fstab

Fügen Sie die folgende Zeile in die Datei.,

Wobei:

  • / / 192.168.0.102 / private: die IP-Adresse des Samba-Servers und der Freigabename.
  • / mnt / samba-private: Einhängepunkt für die Samba-Freigabe.
  • cifs: Dateisystemtyp
  • x-systemd.automount: Diese Option weist systemd an, eine Automount-Einheit für das Dateisystem zu erstellen. Wir verwenden dies, weil sichergestellt wird, dass das Remote-Dateisystem erst nach dem Netzwerkzugriff gemountet wird.
  • _netdev: Dies gibt an, dass für das Mount ein Netzwerk erforderlich ist.
  • credentials=: Linux sollte in der Datei /etc/samba-credential.conf nach Anmeldeinformationen suchen.,
  • uid=1000, gid=1000: Standardmäßig gehört das gemountete Dateisystem dem Root-Benutzer. Wir verwenden uid und gid, um den Besitz des Dateisystems zu ändern. Normalerweise verwenden Sie Ihre eigene UID und gid, die standardmäßig beide 1000 sind.
  • x-gvfs-show: Wenn Sie GNOME desktop environment oder deren Derivate verwenden, können Sie diese Option verwenden, um das gemountete Dateisystem im Dateimanager anzuzeigen.

Speichern und Schließen der Datei. Erstellen Sie dann die Anmeldeinformationsdatei.

sudo nano /etc/samba-credential.conf

Fügen Sie die folgenden Zeilen in der Datei.

Datei speichern und schließen., Stellen Sie sicher, dass nur der Root-Benutzer diese Datei lesen kann.

sudo chmod 600 /etc/samba-credential.conf

Wenn Sie Ihren Linux-Computer jetzt neu starten, wird die Samba-Freigabe automatisch gemountet.

Kann nicht auf die Samba-Freigabe schreiben?

Mit dem oben beschriebenen CIFS-Mount können Sie in die Samba-Freigabe schreiben. Wenn beim Erstellen einer Datei der folgende Fehler angezeigt wird:

Read-only file system

Überprüfen Sie, ob Sie writable = yes in der Samba-Konfigurationsdatei festgelegt haben., Manchmal befindet sich der freigegebene Samba-Ordner auf einer externen Festplatte, und stellen Sie dann sicher, dass Sie die externe Festplatte im Lese- / Schreibmodus auf dem Samba-Server bereitstellen. Zum Beispiel habe ich meine btrfs Festplatte mit der folgenden Zeile in /etc/fstab gemountet.

LABEL=5TB /mnt/5TB btrfs defaults 0 0

Es stellt sich heraus, dass die Option defaults keine Schreiboperation zulässt. Um es beschreibbar zu machen, fügen Sie die Option rw hinzu.

LABEL=5TB /mnt/5TB btrfs defaults,rw 0 0

Dann die Festplatte aushängen. Sie müssen Ihren eigenen Mount-Punkt verwenden.

sudo umount /mnt/5TB

Und montieren Sie es wieder.,

sudo mount -a

Tipp zur Fehlerbehebung

Wenn Ihr Samba-Server nicht wie erwartet funktioniert, können Sie die Protokolldateien im Verzeichnis /var/log/samba/ überprüfen. Sie können die folgende Zeile im Abschnitt der Datei /etc/samba/smb.conf hinzufügen, um die Protokollstufe zu erhöhen, wenn Sie weitere Informationen protokollieren möchten.

log level = 2

Zusammenfassung

Das ist es! Ich hoffe, dieses Tutorial hat Ihnen beim Einrichten des Samba-Servers unter Ubuntu geholfen. Wie immer, wenn Sie diesen Beitrag nützlich fanden, dann abonnieren Sie unseren kostenlosen Newsletter., Möglicherweise möchten Sie auch den folgenden Artikel lesen, um den Drucker im lokalen Netzwerk freizugeben.

  • Einrichten eines Druckservers unter Ubuntu (Bonjour, IPP, Samba, AirPrint)
Bewerten Sie dieses Tutorial

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.