Wie man Samba-Server unter CentOS 8 installiert

Samba ist eine freie und quelloffene Software, die zur gemeinsamen Nutzung von Dateien, Ordnern und Druckern zwischen Linux- und Windows-Systemen verwendet werden kann. Sie wird auch für die Authentifizierung und Autorisierung, Namensauflösung und Dienstankündigung verwendet. Es kann auf verschiedenen Betriebssystemen ausgeführt werden, darunter Linux, Unix, OpenVMS und viele andere.

In diesem Tutorial werden wir lernen, wie man Samba installiert und als eigenständiger Sharing-Server unter CentOS 8 konfiguriert.

Voraussetzungen

  • Ein Server mit CentOS 8.
  • Ein Root-Passwort wird auf Ihrem Server konfiguriert.

Samba-Server installieren

Standardmäßig ist das Samba-Paket im CentOS-Standard-Repository verfügbar. Sie können es mit dem folgenden Befehl installieren:

dnf install samba samba-common samba-client -y

Starten Sie nach der Installation von Samba den SMB-Dienst und aktivieren Sie ihn nach dem Systemneustart mit folgendem Befehl:

systemctl start smb
 systemctl enable smb

Sie können nun den Samba-Dienst mit dem folgenden Befehl überprüfen:

systemctl status smb

Sie sollten die folgende Ausgabe erhalten:

? smb.service - Samba SMB Daemon
   Loaded: loaded (/usr/lib/systemd/system/smb.service; disabled; vendor preset: disabled)
   Active: active (running) since Mon 2020-03-02 23:03:30 EST; 8s ago
     Docs: man:smbd(8)
           man:samba(7)
           man:smb.conf(5)
 Main PID: 2072 (smbd)
   Status: "smbd: ready to serve connections..."
    Tasks: 4 (limit: 25028)
   Memory: 33.8M
   CGroup: /system.slice/smb.service
           ??2072 /usr/sbin/smbd --foreground --no-process-group
           ??2074 /usr/sbin/smbd --foreground --no-process-group
           ??2075 /usr/sbin/smbd --foreground --no-process-group
           ??2076 /usr/sbin/smbd --foreground --no-process-group

Erstellen Sie eine öffentliche Freigabe mit Samba

In diesem Abschnitt werden wir eine öffentliche Freigabe mit Samba erstellen, so dass jeder ohne Passwort auf das öffentliche Freigabeverzeichnis zugreifen kann.

Erstellen Sie ein öffentliches Freigabeverzeichnis

Erstellen Sie zunächst einen gemeinsamen Ordner namens public und legen Sie außerdem zwei Dateien im öffentlichen Verzeichnis an:

mkdir -p /samba/share/public
 touch /samba/share/public/file1.txt
 touch /samba/share/public/file2.txt

Als nächstes weisen Sie die erforderlichen Berechtigungen und Besitzverhältnisse mit dem folgenden Befehl zu:

chmod -R 0755 /samba/share/
 chmod -R 0755 /samba/share/public
 chown -R nobody:nobody /samba/share
 chown -R nobody:nobody /samba/share/public

Samba konfigurieren

Als nächstes müssen Sie Samba für die Freigabe eines öffentlichen Verzeichnisses konfigurieren.

Erstellen Sie zunächst eine Sicherungskopie der Datei /etc/samba/smb.conf mit folgendem Befehl:

mv /etc/samba/smb.conf /etc/samba/smb.bak

Als nächstes erstellen Sie eine neue Samba-Konfigurationsdatei:

nano /etc/samba/smb.conf

Fügen Sie die folgenden Zeilen hinzu:

[global]
workgroup = WORKGROUP
server string = Samba Server %v
netbios name = samba-server
security = user
map to guest = bad user
dns proxy = no

[Public]
path = /samba/share/public
browsable =yes
writable = yes
guest ok = yes
read only = no

Speichern und schließen Sie die Datei. Starten Sie dann den Samba-Dienst neu, um die Änderungen zu übernehmen:

systemctl restart smb

Als nächstes testen Sie die Samba-Konfiguration mit dem folgenden Befehl:

testparm

Sie sollten die folgende Ausgabe sehen:

Load smb config files from /etc/samba/smb.conf
Loaded services file OK.
Server role: ROLE_STANDALONE

Press enter to see a dump of your service definitions

# Global parameters
[global]
	dns proxy = No
	map to guest = Bad User
	netbios name = SAMBA-SERVER
	security = USER
	server string = Samba Server %v
	idmap config * : backend = tdb


[Public]
	guest ok = Yes
	path = /samba/share/public
	read only = No

Konfigurieren Sie SELinux und Firewall

Als nächstes setzen Sie die richtigen booleschen SELinux- und Sicherheitskontextwerte für das freigegebene Verzeichnis mit dem folgenden Befehl:

setsebool -P samba_export_all_ro=1 samba_export_all_rw=1
 semanage fcontext –at samba_share_t "/samba/share/public(/.*)?" restorecon /samba/share/public

Als nächstes werden alle Samba-Dienste durch Firewalld mit dem folgenden Befehl aktiviert:

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

Zugriff auf Samba-Freigabe von Ubuntu Gnome

Um auf die Samba-Freigabe zuzugreifen, gehen Sie auf den entfernten Rechner, öffnen Sie den Gnome-Datei-Manager und klicken Sie auf die Verbindung zum Server, wie unten gezeigt:

Zugang zu SAMBA von Gnome aus

Geben Sie die IP-Adresse Ihres Samba-Servers an und klicken Sie auf die Schaltfläche Verbinden. Nach erfolgreicher Verbindung sollten Sie die Samba-Freigabe im folgenden Bildschirm sehen:

Samba-Freigabe im Datei-Explorer

Klicken Sie nun auf das Verzeichnis Public, Sie sollten Ihre Dateien im folgenden Bildschirm sehen:

Liste der Dateien

Zugriff auf die Samba-Freigabe von der Ubuntu-Befehlszeile

Sie können auch über die Befehlszeile auf die Samba-Freigabe zugreifen.

Zuerst listen Sie alle verfügbaren Samba-Freigaben mit dem folgenden Befehl auf:

smbclient -L //45.58.38.51

Sie sollten die folgende Ausgabe sehen:

Domain=[WORKGROUP] OS=[Windows 6.1] Server=[Samba 4.10.4]

	Sharename       Type      Comment
	---------       ----      -------
	Public          Disk      
	IPC$            IPC       IPC Service (Samba Server 4.10.4)
Domain=[WORKGROUP] OS=[Windows 6.1] Server=[Samba 4.10.4]

	Server               Comment
	---------            -------

	Workgroup            Master
	---------            -------

Sie können die Samba-Freigabe auch über das cifs-Protokoll einhängen. Installieren Sie dazu das cifs-utils-Paket mit dem folgenden Befehl:

apt-get install cifs-utils -y

Als nächstes mounten Sie die Samba-Freigabe in das Verzeichnis /mnt mit folgendem Befehl:

mount -t cifs //45.58.38.51/public /mnt/

Sie werden gebeten, ein Passwort einzugeben, wie unten gezeigt:

Password for root@//45.58.38.51/public: 

Drücken Sie einfach die Eingabetaste, ohne ein Passwort einzugeben, um die Samba-Freigabe zu aktivieren:

Sie können nun auf die Samba-Freigabe im Verzeichnis /mnt zugreifen:

ls /mnt/

Sie sollten die folgende Ausgabe sehen:

file1.txt  file2.txt

Private Freigabe mit Samba erstellen

In diesem Abschnitt werden wir eine private Freigabe mit Samba erstellen, so dass nur authentifizierte Benutzer auf das private Freigabeverzeichnis zugreifen können.

Benutzer und Gruppe erstellen

Erstellen Sie zunächst eine Gruppe mit dem Namen private mit folgendem Befehl:

groupadd private

Als nächstes erstellen Sie einen neuen Benutzer mit dem Namen privateuser und fügen ihn der privaten Gruppe hinzu:

useradd -g private privateuser

Legen Sie dann das Passwort für den Benutzer mit dem folgenden Befehl fest:

smbpasswd -a privateuser

Ausgabe:

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

Erstellen Sie ein privates Freigabeverzeichnis

Als nächstes erstellen Sie einen gemeinsamen Ordner mit dem Namen „privat“ und erstellen auch zwei Dateien innerhalb des privaten Verzeichnisses:

mkdir -p /samba/share/private
 touch /samba/share/private/private1.txt
 touch /samba/share/private/private2.txt

Weisen Sie dann mit dem folgenden Befehl die entsprechenden Berechtigungen und Eigentümer zu:

chmod -R 0770 /samba/share/private
 chown -R root:private /samba/share/private

Als nächstes konfigurieren Sie SELinux context for private directory mit folgendem Befehl:

semanage fcontext –at samba_share_t "/samba/share/private(/.*)?"
 restorecon /samba/share/private

Konfigurieren Sie Samba

Öffnen Sie dann die Samba-Konfigurationsdatei und definieren Sie die private Freigabe:

nano /etc/samba/smb.conf

Fügen Sie die folgenden Zeilen am Ende der Datei hinzu:

[Private]
path = /samba/share/private
valid users = @private     
guest ok = no
writable = yes
browsable = yes

Speichern und schließen Sie die Datei und starten Sie dann den Samba-Dienst neu, um die Änderungen zu übernehmen:

systemctl restart smb

Überprüfen Sie als nächstes die Samba-Konfiguration mit dem folgenden Befehl:

testparm

Sie sollten die folgende Ausgabe sehen:

Load smb config files from /etc/samba/smb.conf
Loaded services file OK.
Server role: ROLE_STANDALONE

Press enter to see a dump of your service definitions

# Global parameters
[global]
	dns proxy = No
	map to guest = Bad User
	netbios name = SAMBA-SERVER
	security = USER
	server string = Samba Server %v
	idmap config * : backend = tdb


[Public]
	guest ok = Yes
	path = /samba/share/public
	read only = No


[Private]
	path = /samba/share/private
	read only = No
	valid users = @private

Auf Samba-Freigabe von der Ubuntu-Befehlszeile aus zugreifen

Greifen Sie zunächst mit dem folgenden Befehl auf die verfügbare Freigabe zu:

smbclient -L //45.58.38.51

Sie sollten die folgende Ausgabe sehen:

Domain=[WORKGROUP] OS=[Windows 6.1] Server=[Samba 4.10.4]

	Sharename       Type      Comment
	---------       ----      -------
	Public          Disk      
	Private         Disk      
	IPC$            IPC       IPC Service (Samba Server 4.10.4)
Domain=[WORKGROUP] OS=[Windows 6.1] Server=[Samba 4.10.4]

	Server               Comment
	---------            -------

	Workgroup            Master
	---------            -------

Als nächstes verbinden Sie sich mit dem Samba-Server und listen die verfügbare Freigabe mit dem folgenden Befehl auf:

smbclient //45.58.38.51/private -U privateuser

Sie werden gebeten, ein Passwort wie unten gezeigt anzugeben:

Enter privateuser's password: 

Geben Sie Ihr Passwort ein und drücken Sie die Eingabetaste, um auf die Samba-Shell zuzugreifen, wie unten dargestellt:

Domain=[WORKGROUP] OS=[Windows 6.1] Server=[Samba 4.10.4]
smb: \>

Listen Sie nun die verfügbare Freigabe mit dem folgenden Befehl auf:

smb: \> ls

Sie sollten die folgende Ausgabe sehen:

  
.                                   D        0  Tue Mar  3 10:03:22 2020
  ..                                  D        0  Tue Mar  3 10:01:56 2020
  private1.txt                        N        0  Tue Mar  3 10:03:17 2020
  private2.txt                        N        0  Tue Mar  3 10:03:22 2020

		51194 blocks of size 2097152. 49358 blocks available

Verlassen Sie nun die Samba-Shell mit folgendem Befehl:

smb: \>exit

Sie können die Samba-Freigabe auch im Verzeichnis /opt einhängen:

mount -t cifs -o user=privateuser //45.58.38.51/private /opt

Sie werden gebeten, ein Passwort wie unten gezeigt anzugeben:

Password for privateuser@//45.58.38.51/private:  *********

Geben Sie Ihr Passwort ein und drücken Sie die Eingabetaste, um die Samba-Freigabe zu aktivieren.

Sie können nun Ihre Samba-Freigabe im Verzeichnis /opt wie unten gezeigt überprüfen:

ls /opt/

Ausgabe:

private1.txt  private2.txt

Zugriff auf die Samba-Freigabe von Ubuntu Gnome

Um auf die Samba-Freigabe zuzugreifen, gehen Sie auf den entfernten Rechner, öffnen Sie den Gnome-Datei-Manager und klicken Sie auf die Verbindung zum Server, wie unten gezeigt:

Zugang zum privaten Anteil in Gnome

Geben Sie die IP-Adresse Ihres Samba-Servers an und klicken Sie auf die Schaltfläche Verbinden. Nach einer erfolgreichen Verbindung sollten Sie im folgenden Bildschirm die Samba-Freigabe sehen:

Öffentlicher und privater Anteil

Klicken Sie nun auf das Verzeichnis Private, geben Sie Ihren Benutzernamen und Ihr Passwort an und klicken Sie dann auf die Schaltfläche Verbinden. Im folgenden Bildschirm sollten Sie Ihre Dateien sehen:

Anmeldung mit Benutzername und Passwort

Dateien

Herzlichen Glückwunsch! Sie haben den Samba-Server unter CentOS 8 erfolgreich installiert und konfiguriert.

Das könnte dich auch interessieren …