So verwenden Sie Samba zum Erstellen eines gemeinsamen Dateidienstes auf einem Linux-Server

So verwenden Sie Samba zum Erstellen eines gemeinsamen Dateidienstes auf einem Linux-Server

Vor Kurzem musste unser kleines Team einen freigegebenen Ordner auf dem Server freigeben, damit jeder öffentliche Ressourcendokumente speichern kann. Sie denken, das muss ganz einfach sein. Unter Windows müssen wir nur ein entsprechendes Windows-Konto erstellen, einen Ordner freigeben und dem erstellten Konto Lese-/Schreibberechtigungen erteilen, um die Freigabe abzuschließen. Unter Linux ist das jedoch nicht so schön. Die meisten Ressourcenmaterialien im Internet verweisen darauf, die Freigabeaufgabe über Samba abzuschließen, aber einige Blogs erklären nur, wie es geht, aber nicht, warum es geht. Die Einrichtung ist nicht reibungslos. Ich kenne mich mit Linux nicht aus und habe viele Umwege gemacht, daher werde ich in diesem Blog jeden Schritt gründlich verstehen.

Einführung in Samba

Samba ist eine kostenlose Software, die das SMB-Protokoll auf Linux- und UNIX-Systemen implementiert und aus Server- und Client-Programmen besteht. Das ist Schwachsinn... lass uns etwas Interessantes sehen. Der Autor Tridgwell beantragte die Registrierung des Markenzeichens dieser Software mit SMBServer (kurz für Server Message Block), es gab jedoch keine Möglichkeit, es zu registrieren, da SMB ein bedeutungsloses Wort ist. Dann schlug er im Wörterbuch nach und sah, dass SAMBA die Buchstaben SMB enthält, was auch der Name des lateinamerikanischen Tanzes ist, den wir alle kennen. So entstand der Name Sanba. (Aus Wikipedia)

Um ein freigegebenes Samba-Verzeichnis zu erstellen und einen Benutzernamen/ein Passwort für den Zugriff auf das freigegebene Verzeichnis zu benötigen, müssen wir zuerst einen Linux-Benutzer erstellen und dann über smbpasswd einen Samba-Benutzer erstellen (der Benutzername muss derselbe sein). Der Originaltext lautet hier:

Um die Authentifizierung auf einem eigenständigen Host bereitzustellen, müssen Sie die Konten lokal auf dem Betriebssystem und zusätzlich in der Samba-Datenbank erstellen. Standardmäßig verwendet Samba das tdbsam-Backend und speichert die Datenbank in der Datei /usr/local/samba/private/passdb.tdb. Optional können Sie mit dem Backend-Parameter passdb einen anderen Speicherort in der Datei smb.conf festlegen. Weitere Informationen finden Sie auf der Manpage smb.conf 5 (von https://wiki.samba.org/index.php/Setting_up_Samba_as_a_Standalone_Server).

Erstellen Sie ein freigegebenes Verzeichnis, das eine Benutzernamenauthentifizierung erfordert

1. Erstellen Sie einen Benutzer für das freigegebene Verzeichnis. Wir verwenden hier zur Veranschaulichung eine Gruppe.

Gruppenzusatz smbgrp
useradd fielshare -s /sbin/nologin -g smbgrp -p <Passwort>
#Erstellen Sie einen SMB-Benutzer mit demselben Namen. Das Passwort hier ist völlig unabhängig vom Passwort des lokalen Benutzers. Der Benutzer, den wir schließlich verwendet haben, wurde mit smbpasswd -a fielshare erstellt.

2. Erstellen Sie ein Arbeitsverzeichnis, das freigegeben werden muss, und legen Sie die Ordnerberechtigungen fest

mkdir -p /srv/samba/sicher
chmod -R 0770 /srv/samba/secure
chown -R root:smbgrp /srv/samba/secure

Um ein freigegebenes Samba-Verzeichnis zu erstellen und einen Benutzernamen/ein Passwort für den Zugriff auf das freigegebene Verzeichnis zu benötigen, müssen wir zuerst einen Linux-Benutzer erstellen und dann über smbpasswd einen Samba-Benutzer erstellen (der Benutzername muss derselbe sein). Der Originaltext lautet hier:

3. Ändern des Sicherheitskontexts

chcon -t samba_share_t /srv/samba/secure

Dieser Befehl ist ein SELinux-Befehl (siehe Security-Enhanced Linux), der /srv/samba/securel in den Samba-Kontext umschaltet.

4. Ändern Sie die Konfigurationsdatei smb.conf

Bevor wir die Konfigurationsdatei ändern, sollten wir sie sichern, um Unfälle zu vermeiden.

cp /etc/samba/smb.conf /etc/samba/smb.conf.orig

Dabei haben wir folgende Aufgaben zu erledigen:

1. Ändern Sie die Arbeitsgruppe im Abschnitt [global] in WORKGROUP (der Name der Arbeitsgruppe wird unter Arbeitsplatz => Eigenschaften => Computername angezeigt).

2. Legen Sie den NetBIOS-Namen unter [global] fest. Dies kann alles sein, genau wie der Computername, den wir in „Meine Nachbarschaft“ sehen.
3. Stellen Sie sicher, dass die Sicherheit unter [global] auf Benutzer eingestellt ist.
4. Fügen Sie die Konfiguration für freigegebene Verzeichnisse hinzu

#Der Ordnername, der angezeigt wird, wenn Sie in „Meine Nachbarschaft“ darauf klicken [Teilen]
  Kommentar = Sichere Dateiserverfreigabe
  # Pfad zum freizugebenden Verzeichnis = /srv/samba/secure
  # Zugängliche Benutzer, mehrere Benutzer sind durch Leerzeichen getrennt und die Benutzergruppe beginnt mit @ valid users = @smbgrp
  # Anonymen Zugriff deaktivieren und auf Nein setzen
  Gast ok = nein
  beschreibbar = ja
  durchsuchbar = ja

Die gesamte smb.conf-Datei sieht wie folgt aus:

# Siehe smb.conf.example für eine detailliertere Konfigurationsdatei oder
# Lesen Sie die Manpage von smb.conf.
# Führen Sie 'testparm' aus, um zu überprüfen, ob die Konfiguration korrekt ist
# Sie haben es geändert.
[global]
  Arbeitsgruppe = ARBEITSGRUPPE
  NetBIOS-Name = CentOS
  Sicherheit = Benutzer
  passdb backend = tdbsam
  Druck = Tassen
  Druckkappenname = Tassen
  Drucker laden = nein
  Tassen Optionen = roh
[Drucker]
  Kommentar = Alle Drucker
  Pfad = /var/tmp
  druckbar = Ja
  Maske erstellen = 0600
  durchsuchbar = Nein
[drucken$]
  Kommentar = Druckertreiber
  Pfad = /var/lib/samba/drivers
  Liste schreiben = @printadmin root
  Force-Gruppe = @printadmin
  Maske erstellen = 0664
  Verzeichnismaske = 0775
 [Aktie]
  Kommentar = Sichere Dateifreigabe
  Pfad = /srv/samba/secure
  gültige Benutzer = @smbgrp
  Gast ok = nein
  beschreibbar = ja
  durchsuchbar = ja
  durchsuchbar = ja

Beachten Sie, dass smb.conf standardmäßig einen [home]-Knoten hat. Wenn Sie keinen Ordner mit demselben Namen wie Ihr Benutzername haben möchten, löschen Sie ihn bitte.

Beenden Sie die Bearbeitung, speichern Sie die Konfigurationsdatei,

Nach der Ausführung von testparm erhalten Sie ein Ergebnis ähnlich dem folgenden, was bedeutet, dass kein Problem mit der Konfigurationsdatei vorliegt

[root@localhost software]# testparm
Laden Sie SMB-Konfigurationsdateien aus /etc/samba/smb.conf
rlimit_max: Erhöhen von rlimit_max (1024) auf das minimale Windows-Limit (16384)
Verarbeitungsbereich „[Drucker]“
Verarbeitungsabschnitt "[print$]"
Verarbeitungsabschnitt „[share]“
Die geladene Dienstedatei ist erfolgreich.
Serverrolle: ROLE_STANDALONE
Drücken Sie die Eingabetaste, um einen Dump Ihrer Servicedefinitionen anzuzeigen.
# Globale Parameter
[global]
 Drucker laden = Nein
 NetBIOS-Name = CENTOS-SHARE
 Druckkappenname = Tassen
 Sicherheit = BENUTZER
 idmap-Konfiguration *: Backend = tdb
 Tassen Optionen = roh
[Drucker]
 durchsuchbar = Nein
 Kommentar = Alle Drucker
 Maske erstellen = 0600
 Pfad = /var/tmp
 druckbar = Ja
[drucken$]
 Kommentar = Druckertreiber
 Maske erstellen = 0664
 Verzeichnismaske = 0775
 Force-Gruppe = @printadmin
 Pfad = /var/lib/samba/drivers
 Liste schreiben = @printadmin root
[Aktie]
 Kommentar = Sichere Dateifreigabe
 Pfad = /home/share
 Nur lesen = Nein
 gültige Benutzer = @smbgrp
[root@localhost software]#

5. Starten Sie den Samba-Dienst neu und öffnen Sie meinen Computer zum Testen

systemctl startet smb.service neu
systemctl restart nmb.service

Da sich die Testmaschine und der Linux-Host nicht im selben Netzwerk befinden, kann ich den von mir konfigurierten CENTOS-SHARE in meiner Nachbarschaft nicht finden. Hier greife ich direkt über IP darauf zu

6. Vergessen Sie nicht, eine Firewall hinzuzufügen, sonst können Sie Ihre Nachbarn nicht sehen

Firewall-Befehl --permanent --zone=public --add-service=samba
Firewall-Befehl --reload 

Zusammenfassen

Hier zeigen wir nur, wie Ordner im Benutzernamen-Authentifizierungsmodus freigegeben werden, der hauptsächlich für Windows gedacht ist. Studenten, die damit nicht vertraut sind, können die anonyme Freigabe selbst ausprobieren. Während des Einrichtungsprozesses kam ich mit etwas in Berührung, was ich noch nie zuvor gesehen hatte: SELinux, und auf diesem Gebiet gibt es noch viel zu tun. Im Internet gibt es viele Artikel, die die Verwendung von SAMBA vorstellen. Der Zweck dieses Blogs besteht darin, Ihnen die Verwendung aus verschiedenen Perspektiven zu erläutern.

Das könnte Sie auch interessieren:
  • Linux Samba-Server – sehr detaillierte Installation und Konfiguration (mit Problemlösung)
  • So installieren und konfigurieren Sie einen Samba-Server unter Linux
  • Tutorial zur Samba-Konfiguration für die Dateifreigabe im Linux-System

<<:  MySQL-Grundlagen in 1 Stunde

>>:  Vue verwendet Mixins zur Optimierung von Komponenten

Artikel empfehlen

Detailliertes Tutorial zur Installation der MySQL 8.0.20-Datenbank auf CentOS 7

Weiterführende Literatur: MySQL8.0.20-Installatio...

MySQL Series 7 MySQL-Speicher-Engine

1. MyISAM-Speicher-Engine Mangel: Keine Unterstüt...

So ermitteln Sie, ob das Linux-System auf VMware installiert ist

Wie kann festgestellt werden, ob das aktuelle Lin...

Implementierungscode der Front-End-HTML-Skin-Änderungsfunktion

50 Zeilen Code zum Ändern von 5 Hautfarben, einsc...

Praktisches MySQL + PostgreSQL Batch-Insert-Update insertOrUpdate

Inhaltsverzeichnis 1. Baidu-Enzyklopädie 1. MySQL...

Erläuterung der Konfiguration und Verwendung der MySQL-Speicher-Engine InnoDB

MyISAM und InnoDB sind die gängigsten Speicher-En...

Wird der Index durch MySQL ungültig?

Wird MySQLs IN den Index ungültig machen? Gewohnh...

Mehrere Möglichkeiten zum einfachen Durchlaufen von Objekteigenschaften in JS

Inhaltsverzeichnis 1. Selbstaufzählbare Eigenscha...

Zwei Möglichkeiten zum Verwalten von Volumes in Docker

Im vorherigen Artikel habe ich die Grundkenntniss...

Node.js implementiert die Wiederaufnahme von Haltepunkten

Inhaltsverzeichnis Lösungsanalyse Scheibe Lebensl...