So erstellen Sie einen Ubuntu Active Directory-Domänencontroller mit Samba 4
Inhaltsverzeichnis:
- Voraussetzungen
- Installation von Samba unter Ubuntu
- Firewall konfigurieren
- Konfigurieren globaler Samba-Optionen
- Samba-Benutzer und Verzeichnisstruktur erstellen
- Samba-Benutzer anlegen
- Konfigurieren von Samba-Freigaben
- Herstellen einer Verbindung zu einer Samba-Freigabe unter Linux
- Verwendung des smbclient-Clients
- Mounten der Samba-Freigabe
- GUI verwenden
- Fazit
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:
-
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:
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 dersambashare
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:
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:
-
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 dervalid users
Benutzer angegebenenvalid 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.
- Ö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 UbuntuSo installieren und konfigurieren Sie einen NFS-Server unter Ubuntu 18.04
Network File System (NFS) ist ein verteiltes Dateisystemprotokoll, mit dem Sie Remoteverzeichnisse über ein Netzwerk freigeben können. In diesem Tutorial erfahren Sie, wie Sie einen NFSv4-Server unter Ubuntu 18.04 einrichten.
So installieren und konfigurieren Sie redis unter Ubuntu 18.04
Redis ist ein Open-Source-Speicher für In-Memory-Datenstrukturen. Es kann als Datenbank-, Cache- und Nachrichtenbroker verwendet werden und unterstützt verschiedene Datenstrukturen wie Strings, Hashes, Listen, Sets usw. Dieses Tutorial beschreibt die Installation und Konfiguration von Redis auf einem Ubuntu 18.04-Server.
So installieren und konfigurieren Sie Samba auf Centos 7
In diesem Tutorial wird gezeigt, wie Samba unter CentOS 7 installiert und als eigenständiger Server konfiguriert wird, um die gemeinsame Nutzung von Dateien auf verschiedenen Betriebssystemen über ein Netzwerk zu ermöglichen.