Android

So installieren und konfigurieren Sie Samba unter Ubuntu 18.04

So erstellen Sie einen Ubuntu Active Directory-Domänencontroller mit Samba 4

So erstellen Sie einen Ubuntu Active Directory-Domänencontroller mit Samba 4

Inhaltsverzeichnis:

Anonim

Samba ist eine kostenlose und Open-Source-Neuimplementierung des SMB / CIFS-Netzwerk-File-Sharing-Protokolls, mit dem Endbenutzer auf Dateien, Drucker und andere freigegebene Ressourcen zugreifen können.

In diesem Tutorial wird erklärt, wie Sie Samba unter Ubuntu 18.04 installieren und als eigenständigen Server konfigurieren, um die gemeinsame Nutzung von Dateien auf verschiedenen Betriebssystemen über ein Netzwerk zu ermöglichen.

Wir werden die folgenden Samba-Freigaben und Benutzer erstellen.

Benutzer:

  • sadmin - Ein Administrator mit Lese- und Schreibzugriff auf alle Freigaben. josh - Ein regulärer Benutzer mit einer eigenen privaten Dateifreigabe.

Anteile:

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

Auf die Dateifreigaben kann von allen Geräten in Ihrem Netzwerk zugegriffen werden. Später in diesem Tutorial werden wir auch detaillierte Anweisungen zum Herstellen einer Verbindung zum Samba-Server von Linux-, Windows- und macOS-Clients aus geben.

Voraussetzungen

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

Installation von Samba unter Ubuntu

Samba ist in den offiziellen Ubuntu-Repositories verfügbar. Um es auf Ihrem Ubuntu-System zu installieren, gehen Sie wie folgt vor:

  1. Aktualisieren Sie zunächst den Index der apt-Pakete:

    sudo apt update

    Installieren Sie das Samba-Paket mit dem folgenden Befehl:

    sudo apt install samba

    Nach Abschluss der Installation wird der Samba-Dienst automatisch gestartet. Geben Sie Folgendes ein, um zu überprüfen, ob der Samba-Server ausgeführt wird:

    sudo systemctl status smbd

    Die Ausgabe sollte wie folgt aussehen und darauf hinweisen, dass der Samba-Dienst aktiv ist und ausgeführt wird:

    ● 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…

Zu diesem Zeitpunkt wurde Samba installiert und kann nun konfiguriert werden.

Firewall konfigurieren

Angenommen, Sie verwenden UFW zur Verwaltung Ihrer Firewall, können Sie die Ports öffnen, indem Sie das 'Samba'-Profil aktivieren:

sudo ufw allow 'Samba'

Konfigurieren globaler Samba-Optionen

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

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

Die mit dem Samba-Paket gelieferte Standardkonfigurationsdatei ist für den eigenständigen Samba-Server konfiguriert. Öffnen Sie die Datei und stellen Sie sicher, dass die server role auf den standalone server

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 an allen Schnittstellen. Wenn Sie den Zugriff auf den Samba-Server nur von Ihrem internen Netzwerk aus einschränken möchten, entfernen Sie die folgenden zwei Kommentare 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 das Dienstprogramm testparm , um die Samba-Konfigurationsdatei auf Fehler zu überprüfen. Wenn keine Syntaxfehler vorliegen, wird Loaded services file OK.

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

sudo systemctl restart smbd sudo systemctl restart nmbd

Samba-Benutzer und Verzeichnisstruktur erstellen

Um die Wartung und Flexibilität zu vereinfachen, anstatt die Standard-Home-Verzeichnisse ( /home/user ) zu verwenden, befinden sich alle Samba-Verzeichnisse und /samba Verzeichnis /samba .

So erstellen Sie das Verzeichnis /samba :

sudo mkdir /samba

Setzen Sie die Gruppeneigentümerschaft auf sambashare . Diese Gruppe wird während der Samba-Installation erstellt. Später werden alle Samba-Benutzer dieser Gruppe hinzugefügt.

sudo chgrp sambashare /samba

Samba verwendet Linux-Benutzer und ein Gruppenberechtigungssystem, verfügt jedoch über einen eigenen Authentifizierungsmechanismus, der sich von der Standard-Linux-Authentifizierung unterscheidet. Wir werden die Benutzer mit dem Standard-Linux-Tool useradd und dann das Benutzerkennwort mit dem Dienstprogramm smbpasswd .

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

Samba-Benutzer anlegen

Verwenden Sie den folgenden Befehl, um einen neuen Benutzer mit dem Namen josh zu erstellen:

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

Die useradd Optionen haben folgende Bedeutung:

  • -M -das Home-Verzeichnis des Benutzers wird nicht erstellt. Wir werden dieses Verzeichnis manuell erstellen. -d /samba/josh - -d /samba/josh das Home-Verzeichnis des Benutzers auf /samba/josh . -s /usr/sbin/nologin - Deaktiviert den Shell-Zugriff für diesen Benutzer. -G sambashare - -G sambashare den Benutzer der sambashare Gruppe hinzu.

Erstellen Sie das sambashare des Benutzers und setzen Sie das Verzeichnis auf Benutzer josh und group sambashare :

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

Der folgende Befehl fügt das setgid-Bit zum Verzeichnis /samba/josh sodass 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 von sambashare . Wenn Sie beispielsweise die Berechtigungen des Verzeichnisses nicht auf 2770 und der Benutzer sadmin eine neue Datei erstellt, kann der Benutzer josh nicht in diese Datei lesen / schreiben.

sudo chmod 2770 /samba/josh

Fügen Sie das josh Benutzerkonto zur Samba-Datenbank hinzu, indem Sie das Benutzerkennwort 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.

Sobald das Passwort zur Aktivierung des Samba-Kontos festgelegt wurde, gehen Sie wie folgt vor:

sudo smbpasswd -e josh

Enabled user josh.

Um einen weiteren Benutzer anzulegen, wiederholen Sie den gleichen Vorgang wie beim Anlegen 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 Administratorrechte erteilen möchten, fügen Sie diesen Benutzer einfach der sadmin Gruppe hinzu.

Erstellen Sie den Administrator, 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ügt den Benutzer sowohl zu sadmin als auch zu sambashare Gruppen hinzu.

Legen Sie ein Passwort fest und aktivieren Sie den Benutzer:

sudo smbpasswd -a sadmin sudo smbpasswd -e sadmin

Erstellen Sie als Nächstes das Users :

sudo mkdir /samba/users

sadmin Sie den Verzeichnisbesitz auf Benutzer sadmin und Gruppe sambashare :

sudo chown sadmin:sambashare /samba/users

Auf dieses Verzeichnis können alle authentifizierten Benutzer zugreifen. Mit dem folgenden Befehl chmod Mitglieder der Gruppe sambashare im Verzeichnis /samba/users Schreib- / Lesezugriff:

sudo chmod 2770 /samba/users

Konfigurieren von Samba-Freigaben

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

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

path = /samba/users browseable = yes read only = no force create mode = 0660 force directory mode = 2770 valid users = @sambashare @sadmin 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:

  • und - Die Namen der Freigaben, die Sie beim Anmelden verwenden. path - Der Pfad zur Freigabe. browseable - browseable ob die Freigabe in der Liste der verfügbaren Freigaben aufgeführt werden soll. Wenn Sie diese Option auf " no andere Benutzer die Freigabe nicht sehen. read only - Gibt an, ob die in der Liste der valid users Benutzer angegebenen valid users 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 der Benutzer 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 danach die Samba-Dienste neu mit:

sudo systemctl restart smbd sudo 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 unter Linux

Linux-Benutzer können über die Befehlszeile mit dem Dateimanager auf die Samba-Freigabe zugreifen oder die Samba-Freigabe mounten.

Verwendung des smbclient-Clients

smbclient ist ein Tool, mit dem Sie über die Befehlszeile auf Samba zugreifen können. Das smbclient Paket ist auf den meisten Linux-Distributionen nicht vorinstalliert, daher müssen Sie es mit Ihrem Distributionspaket-Manager installieren.

So installieren Sie smbclient unter Ubuntu und Debian:

sudo apt install smbclient

So installieren Sie smbclient unter CentOS und Fedora:

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

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 , würden Sie josh ausführen:

smbclient //192.168.121.118/josh -U josh

Sie werden aufgefordert, das Benutzerpasswort einzugeben.

Enter WORKGROUP\josh's password:

Sobald Sie das Kennwort eingegeben haben, werden Sie an der Samba-Befehlszeilenschnittstelle angemeldet.

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

Mounten der Samba-Freigabe

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

Auf Ubuntu und Debian laufen:

sudo apt install cifs-utils

Auf CentOS und Fedora laufen:

sudo yum install cifs-utils

Erstellen Sie als Nächstes einen Einhängepunkt:

sudo mkdir /mnt/smbmount

Hängen Sie die Freigabe mit dem folgenden Befehl ein:

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 an den Mount-Punkt /mnt/smbmount mounten, würden Sie /mnt/smbmount ausführen:

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

Sie werden aufgefordert, das Benutzerpasswort einzugeben.

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

GUI verwenden

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

  1. Öffnen Sie Dateien und klicken Sie in der Seitenleiste auf "Other Locations". Geben Sie unter "Connect to Server" die Adresse der Samba-Freigabe im folgenden Format smb://samba_hostname_or_server_ip/sharename Klicken Sie auf "Connect". Der folgende Bildschirm wird angezeigt:

Fazit

In diesem Tutorial haben Sie gelernt, wie Sie den Samba-Server unter Ubuntu 18.04 installieren und verschiedene Arten von Freigaben und Benutzern erstellen. Wir haben Ihnen auch gezeigt, wie Sie von Linux-, MacOS- und Windows-Geräten aus eine Verbindung zum Samba-Server herstellen.

Samba Ubuntu