GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

So installieren und konfigurieren Sie Samba unter Ubuntu 18.04

Samba ist eine kostenlose und quelloffene Neuimplementierung des SMB/CIFS-Netzwerkdateifreigabeprotokolls, das Endbenutzern den Zugriff auf Dateien, Drucker und andere gemeinsam genutzte Ressourcen ermöglicht.

Dieses Tutorial erklärt, wie Samba auf Ubuntu 18.04 installiert und als eigenständiger Server konfiguriert wird, um die Dateifreigabe zwischen verschiedenen Betriebssystemen über ein Netzwerk bereitzustellen.

Wir erstellen die folgenden Samba-Freigaben und -Benutzer.

Benutzer:

  • sadmin - Ein Administrator mit Lese- und Schreibzugriff auf alle Freigaben.
  • josh - Ein normaler Benutzer mit seiner eigenen privaten Dateifreigabe.

Aktien:

  • Benutzer - Diese Freigabe wird allen Benutzern mit Lese-/Schreibberechtigungen zugänglich sein.
  • josh - Auf diese Freigabe können nur die Benutzer josh und sadmin mit Lese-/Schreibberechtigung zugreifen.

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

Voraussetzungen #

Bevor Sie fortfahren, vergewissern Sie sich, dass Sie bei Ihrem Ubuntu 18.04-System als Benutzer mit sudo-Berechtigungen angemeldet sind.

Samba auf Ubuntu installieren #

Samba ist in den offiziellen Ubuntu-Repositories verfügbar. Führen Sie die folgenden Schritte aus, um es auf Ihrem Ubuntu-System zu installieren:

  1. Beginnen Sie damit, den apt-Paketindex zu aktualisieren:

    sudo apt update
  2. Installieren Sie das Samba-Paket mit dem folgenden Befehl:

    sudo apt install samba
  3. Sobald die Installation abgeschlossen ist, wird der Samba-Dienst automatisch gestartet. Um zu prüfen, ob der Samba-Server läuft, geben Sie ein:

    sudo systemctl status smbd

    Die Ausgabe sollte in etwa so aussehen, was anzeigt, dass der Samba-Dienst aktiv ist und läuft:

    ● smbd.service - Samba SMB Daemon
       Loaded: loaded (/lib/systemd/system/smbd.service; enabled; vendor preset: enabled)
       Active: active (running) since Wed 2019-11-27 09:25:38 UTC; 2min 12s ago
         Docs: man:smbd(8)
               man:samba(7)
               man:smb.conf(5)
     Main PID: 15142 (smbd)
       Status: "smbd: ready to serve connections..."
        Tasks: 4 (limit: 1152)
       CGroup: /system.slice/smbd.service
    ...

An diesem Punkt ist Samba installiert und kann konfiguriert werden.

Konfiguriere Firewall #

Wenn auf Ihrem Ubuntu-System eine Firewall ausgeführt wird, müssen Sie eingehende UDP-Verbindungen auf den Ports 137 zulassen und 138 und TCP-Verbindungen auf den Ports 139 und 445 .

Angenommen, Sie verwenden UFW Um Ihre Firewall zu verwalten, können Sie die Ports öffnen, indem Sie das Profil „Samba“ aktivieren:

sudo ufw allow 'Samba'

Globale Samba-Optionen konfigurieren #

Bevor Sie Änderungen an der Samba-Konfigurationsdatei vornehmen, erstellen Sie eine Sicherungskopie für zukünftige Referenzzwecke:

sudo cp /etc/samba/smb.conf{,.backup}

Die Standard-Konfigurationsdatei, die mit dem Samba-Paket geliefert wird, ist für einen eigenständigen Samba-Server konfiguriert. Öffnen Sie die Datei und stellen Sie sicher, dass server role auf standalone server eingestellt ist

sudo nano /etc/samba/smb.conf
/etc/samba/smb.conf
...
# Most people will want "standalone sever" or "member server".
# Running as "active directory domain controller" will require first
# running "samba-tool domain provision" to wipe databases and create a
# new domain.
   server role = standalone server
...

Standardmäßig lauscht Samba auf allen Schnittstellen. Wenn Sie den Zugriff auf den Samba-Server nur von Ihrem internen Netzwerk aus einschränken möchten, kommentieren Sie die folgenden zwei Zeilen aus und geben Sie die Schnittstellen an, an die gebunden werden soll:

/etc/samba/smb.conf
...
# The specific set of interfaces / networks to bind to
# This can be either the interface name or an IP address/netmask;
# interface names are normally preferred
interfaces = 127.0.0.0/8 eth0

# Only bind to the named interfaces and/or networks; you must use the
# 'interfaces' option above to use this.
# It is recommended that you enable this feature if your Samba machine is
# not protected by a firewall or is a firewall itself.  However, this
# option cannot handle dynamic or non-broadcast interfaces correctly.
bind interfaces only = yes
...

Führen Sie anschließend testparm aus Dienstprogramm, um die Samba-Konfigurationsdatei auf Fehler zu überprüfen. Wenn es keine Syntaxfehler gibt, sehen Sie Loaded services file OK.

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

sudo systemctl restart smbdsudo systemctl restart nmbd

Samba-Benutzer und -Verzeichnisstruktur erstellen #

Für eine einfachere Wartbarkeit und Flexibilität anstelle der Verwendung der Standard-Home-Verzeichnisse (/home/user ) befinden sich alle Samba-Verzeichnisse und -Daten im Verzeichnis /samba Verzeichnis.

Um die Datei /samba zu erstellen Verzeichnistyp:

sudo mkdir /samba

Setzen Sie den Gruppenbesitz auf sambashare . Diese Gruppe wird während der Samba-Installation erstellt, später werden wir alle Samba-Benutzer zu dieser Gruppe hinzufügen.

sudo chgrp sambashare /samba

Samba verwendet Linux-Benutzer und ein Gruppenberechtigungssystem, hat aber seinen eigenen Authentifizierungsmechanismus, der von der Standard-Linux-Authentifizierung getrennt ist. Wir erstellen die Benutzer mit dem Standard-Linux useradd Tool und setzen Sie dann das Benutzerpasswort mit dem smbpasswd Dienstprogramm.

Wie wir in der Einführung erwähnt haben, erstellen wir einen regulären 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 #

So erstellen Sie einen neuen Benutzer namens josh Verwenden Sie den folgenden Befehl:

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

Das useradd Optionen haben folgende Bedeutung:

  • -M - Erstellen Sie nicht das Home-Verzeichnis des Benutzers. Wir erstellen dieses Verzeichnis manuell.
  • -d /samba/josh - Setzen Sie das Home-Verzeichnis des Benutzers auf /samba/josh .
  • -s /usr/sbin/nologin - Shell-Zugriff für diesen Benutzer deaktivieren.
  • -G sambashare - Benutzer zu sambashare hinzufügen Gruppe.

Erstellen Sie das Home-Verzeichnis des Benutzers und legen Sie den Verzeichnisbesitz auf Benutzer josh fest und gruppieren Sie sambashare :

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

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

sudo chmod 2770 /samba/josh

Fügen Sie den josh hinzu Benutzerkonto in die Samba-Datenbank, indem Sie das Benutzerpasswort setzen:

sudo smbpasswd -a josh

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

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

Sobald das Passwort festgelegt ist, um das Samba-Konto zu aktivieren, führen Sie Folgendes aus:

sudo smbpasswd -e josh
Enabled user josh.

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

Als Nächstes erstellen wir einen Benutzer und eine Gruppe sadmin . Alle Mitglieder dieser Gruppe haben Administratorrechte. Wenn Sie später einem anderen Benutzer administrative Berechtigungen erteilen möchten, fügen Sie diesen Benutzer einfach zu sadmin hinzu Gruppe.

Erstellen Sie den administrativen Benutzer, indem Sie Folgendes eingeben:

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

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

Legen Sie ein Passwort fest und aktivieren Sie den Benutzer:

sudo smbpasswd -a sadminsudo smbpasswd -e sadmin

Erstellen Sie als Nächstes die Users Freigabeverzeichnis:

sudo mkdir /samba/users

Legen Sie den Verzeichnisbesitz auf Benutzer sadmin fest und gruppieren Sie sambashare :

sudo chown sadmin:sambashare /samba/users

Auf dieses Verzeichnis können alle authentifizierten Benutzer zugreifen. Der folgende chmod Befehl gibt den Mitgliedern von sambashare Schreib-/Lesezugriff Gruppe in /samba/users Verzeichnis:

sudo chmod 2770 /samba/users

Samba-Freigaben konfigurieren #

Öffnen Sie die Samba-Konfigurationsdatei und hängen Sie die Abschnitte an:

sudo nano /etc/samba/smb.conf
/etc/samba/smb.conf
[users]
    path = /samba/users
    browseable = yes
    read only = no
    force create mode = 0660
    force directory mode = 2770
    valid users = @sambashare @sadmin

[josh]
    path = /samba/josh
    browseable = no
    read only = no
    force create mode = 0660
    force directory mode = 2770
    valid users = josh @sadmin

Die Optionen haben folgende Bedeutung:

  • [users] und [josh] - Die Namen der Freigaben, die Sie beim Anmelden verwenden werden.
  • path - Der Pfad zur Freigabe.
  • browseable - Ob die Aktie in der Liste der verfügbaren Aktien aufgeführt werden soll. Durch Einstellung auf no andere Benutzer können die Freigabe nicht sehen.
  • read only - Ob die im valid users angegebenen Benutzer list auf 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 Präfix @ vorangestellt Symbol.

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

Wenn Sie fertig sind, starten Sie die Samba-Dienste neu mit:

sudo systemctl restart smbdsudo systemctl restart nmbd

In den folgenden Abschnitten zeigen wir Ihnen, wie Sie von Linux-, macOS- und Windows-Clients aus eine Verbindung zu einer Samba-Freigabe herstellen.

Herstellen einer Verbindung zu einer Samba-Freigabe von Linux #

Linux-Benutzer können über die Befehlszeile auf die Samba-Freigabe zugreifen, indem Sie den Dateimanager verwenden oder die Samba-Freigabe mounten.

Using the smbclient client #

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

Um smbclient zu installieren unter Ubuntu und Debian laufen:

sudo apt install smbclient

Um smbclient zu installieren auf CentOS und Fedora laufen:

sudo yum install samba-client

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

mbclient //samba_hostname_or_server_ip/share_name -U username

Zum Beispiel, um sich mit einer Freigabe namens josh zu verbinden auf einem Samba-Server mit der IP-Adresse 192.168.121.118 als Benutzer josh Sie würden Folgendes ausführen:

smbclient //192.168.121.118/josh -U josh

Sie werden aufgefordert, das Benutzerkennwort einzugeben.

Enter WORKGROUP\josh's password: 

Sobald Sie das Passwort eingegeben haben, werden Sie bei der Samba-Befehlszeilenschnittstelle angemeldet.

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

Einhängen der Samba-Freigabe #

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

Auf Ubuntu und Debian laufen:

sudo apt install cifs-utils

Führen Sie unter CentOS und Fedora Folgendes aus:

sudo yum install cifs-utils

Erstellen Sie als Nächstes einen Einhängepunkt:

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

Zum Beispiel, um eine Freigabe namens josh zu mounten auf einem Samba-Server mit der IP-Adresse 192.168.121.118 als Benutzer josh in /mnt/smbmount Einhängepunkt, den Sie ausführen würden:

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:  ********

GUI # verwenden

Dateien, der standardmäßige Dateimanager in Gnome, hat eine eingebaute Option für den Zugriff auf Samba-Freigaben.

  1. Öffnen Sie Dateien und klicken Sie in der Seitenleiste auf „Andere Speicherorte“.
  2. Geben Sie bei „Connect to Server“ die Adresse der Samba-Freigabe in folgendem 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.

Herstellen einer Verbindung zu einer Samba-Freigabe von macOS #

In macOS können Sie auf die Samba-Freigaben entweder über die Befehlszeile oder über den Standard-Finder des macOS-Dateimanagers zugreifen. Die folgenden Schritte zeigen, wie Sie mit dem Finder auf die Freigabe zugreifen.

  1. Öffnen Sie „Finder“, wählen Sie „Gehe zu“ 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.

Herstellen einer Verbindung zu einer Samba-Freigabe von Windows #

Windows-Benutzer haben auch die Möglichkeit, sich sowohl über die Befehlszeile als auch über die GUI mit der Samba-Freigabe zu verbinden. Die folgenden Schritte zeigen, wie Sie mit dem Windows-Datei-Explorer auf die Freigabe zugreifen.

  1. Öffnen Sie den Datei-Explorer und klicken Sie im linken Bereich mit der rechten Maustaste auf „Dieser PC“.
  2. Wählen Sie „Choose a custom network location“ und klicken Sie dann auf „Next“.
  3. Geben Sie unter „Internet- oder Netzwerkadresse“ die Adresse der Samba-Freigabe in folgendem Format ein:\\samba_hostname_or_server_ip\sharename .
  4. Klicken Sie auf „Weiter“ und Sie werden aufgefordert, die Anmeldeinformationen wie unten gezeigt einzugeben:
  5. Im nächsten Fenster können Sie einen benutzerdefinierten Namen für den Netzwerkstandort eingeben. Die Standardeinstellung 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.

Ubuntu
  1. So installieren und konfigurieren Sie Redis unter Ubuntu 18.04

  2. So installieren und konfigurieren Sie Redmine unter Ubuntu 18.04

  3. So installieren und konfigurieren Sie Redis unter Ubuntu 20.04

  4. So installieren und konfigurieren Sie Jenkins unter Ubuntu 20.04

  5. Wie installiere und konfiguriere ich Samba unter Ubuntu Linux?

So installieren und konfigurieren Sie Neo4j unter Ubuntu 20.04

So installieren und konfigurieren Sie Samba unter Ubuntu

So installieren und konfigurieren Sie Ubuntu SDK in Ubuntu 16.04 und 14.04

So installieren und konfigurieren Sie PostgreSQL unter Ubuntu

So installieren und konfigurieren Sie Hadoop unter Ubuntu 20.04

So installieren und konfigurieren Sie Samba unter Ubuntu 20.04