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:
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:
Klicken Sie nun auf das Verzeichnis Public, Sie sollten Ihre Dateien im folgenden Bildschirm sehen:
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:
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:
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:
Herzlichen Glückwunsch! Sie haben den Samba-Server unter CentOS 8 erfolgreich installiert und konfiguriert.