Samba Netzwerk Script

Samba Netzwerk Script

Samba Netzwerk Script

Dieses Dokument erklärt die Verwendung des Bash-Scripts zur vollständigen Einrichtung eines Samba-Netzwerks unter Linux in erster Linie für Archlinux basierte Distributionen, es müsste auch mit Debian funktionieren, das habe ich aber nicht gestestet. Das Script führt dich interaktiv durch alle wichtigen Konfigurationsschritte und übernimmt folgende Aufgaben:

  1. Installation von Samba und notwendigen Paketen
  2. Erstellung der sambashare-Gruppe für gemeinsame Berechtigungen
  3. Sicherung bestehender Konfigurationen
  4. Konfiguration der globalen Samba-Einstellungen
  5. Erstellung und Konfiguration von Dateifreigaben (Shares)
  6. Erstellung von Samba-Benutzern und persönlichen Shares
  7. Konfiguration der Firewall für Samba-Zugriff (unterstützt ufw, firewalld, iptables und nftables)
  8. Starten und Aktivieren der Samba-Dienste

Das Script bietet Farbmarkierungen für bessere Lesbarkeit und enthält Fehlerbehandlung für häufige Probleme.


Erste Schritte

  1. Speichere das Script in einer Datei, z.B. samba-setup.sh
  2. Mache es ausführbar: chmod +x samba-setup.sh
  3. Führe es mit Root-Rechten aus: sudo ./samba-setup.sh


Erklärung der Abfragen während der Ausführung

Grundlegende Samba-Konfiguration

Workgroup-Name [WORKGROUP]

Der Workgroup-Name ist die Bezeichnung für die Arbeitsgruppe in deinem Netzwerk. Er dient dazu, Computer in einem Windows-Netzwerk logisch zu gruppieren.

  • Standard ist "WORKGROUP"
  • Sollte mit dem Namen übereinstimmen, den deine Windows-Computer verwenden
  • Du kannst Enter drücken, um den Standardwert zu übernehmen


Server-Beschreibung [Samba Server]

Ein beschreibender Text, der deinen Samba-Server im Netzwerk identifiziert und anderen Benutzern angezeigt wird.

Beispiele:

  • "Dateiserver Buchhaltung"
  • "Linux Medien-Server"
  • "Backup-Server"
  • "Fritz's Linux-Server"


Soll Samba als Active Directory Domain Controller fungieren? (j/n) [n]

Diese Einstellung bestimmt die Rolle deines Samba-Servers im Netzwerk.

  • n (empfohlen): Konfiguriert Samba als einfachen eigenständigen Dateiserver
  • j: Konfiguriert Samba als Active Directory Domain Controller

In den meisten Heimnetzwerken und kleineren Büroumgebungen sollte "n" gewählt werden. Die Einrichtung als Domain Controller ist komplex und erfordert umfassende Kenntnisse über Active Directory.



Soll der Server im Netzwerk sichtbar sein? (j/n) [j]

Diese Einstellung bestimmt, ob dein Samba-Server aktiv seine Anwesenheit im Netzwerk bekannt gibt.

  • j (empfohlen für Heimnetzwerke): Server wird in der Netzwerkumgebung angezeigt
  • n: Server muss mit genauer Adresse angesprochen werden (z.B. \\IP-ADRESSE)


Erstellung der sambashare-Gruppe

Das Script erstellt automatisch eine Gruppe namens "sambashare". Diese Gruppe wird für folgende Zwecke verwendet:

  • Als Standard-Gruppe für alle Samba-Freigaben
  • Zur Rechteverwaltung von Dateien innerhalb der Freigaben
  • Alle Samba-Benutzer werden dieser Gruppe hinzugefügt

Diese gemeinsame Gruppe erleichtert die Rechteverwaltung und Zusammenarbeit zwischen Benutzern.



Konfiguration von Samba-Shares

Möchten Sie einen Samba-Share hinzufügen? (j/n) [j]

Ein Samba-Share ist ein Verzeichnis auf deinem Linux-Server, das über das Netzwerk zugänglich gemacht wird.

Wenn du "j" wählst, werden folgende Details abgefragt:

  1. Share-Name: Name der Freigabe im Netzwerk (z.B. "Dokumente", "Medien")
  2. Pfad zum Share-Verzeichnis: Lokaler Dateipfad (z.B. "/home/username/samba-daten")
    • Falls das Verzeichnis nicht existiert, bietet das Script an, es zu erstellen
  3. Kommentar/Beschreibung: Kurze Beschreibung des Shares
  4. Öffentlich lesbar: Bestimmt die Sichtbarkeit in der Netzwerkumgebung
    • j: Share wird in der Netzwerkumgebung angezeigt
    • n (Standard): Share ist nicht direkt sichtbar, aber mit dem genauen Pfad erreichbar
  5. Gästezugang: Zugriff ohne Authentifizierung
    • j: Jeder kann ohne Anmeldung zugreifen
    • n (Standard): Zugriff nur mit Benutzername/Passwort
  6. Schreibzugriff: Ob Benutzer Änderungen vornehmen können
    • j (Standard): Vollständiger Lese- und Schreibzugriff
    • n: Nur Lesezugriff (schreibgeschützt)
  7. Spezifischer Benutzer für den Share: Linux-Benutzer, der als Eigentümer für Dateien verwendet wird
    • Idealerweise ein existierender Benutzername
    • "nobody" für minimale Rechte
  8. Spezifische Gruppe für den Share:
    • Standardmäßig wird automatisch die Gruppe "sambashare" verwendet
    • Diese Gruppe wird vom Script automatisch erstellt
  9. Zugriffsberechtigungen für neue Dateien: Numerische Unix-Berechtigungen
    • 0644 (empfohlen): Besitzer kann schreiben, Rest nur lesen
    • 0664: Besitzer und Gruppe können schreiben, andere nur lesen
    • 0600: Nur Besitzer darf lesen/schreiben (privat)
  10. Zugriffsberechtigungen für neue Verzeichnisse:
    • 0755 (empfohlen): Besitzer darf alles, andere nur lesen + betreten
    • 0775: Besitzer + Gruppe dürfen alles
    • 0700: Nur der Besitzer hat Zugriff (privat)

Du kannst mehrere Shares einrichten, indem du die Frage nach jedem Share mit "j" beantwortest.



Benutzerkonfiguration

Möchten Sie einen Samba-Benutzer hinzufügen? (j/n) [j]

Diese Option erstellt Benutzer für die Authentifizierung bei deinem Samba-Server.

Wenn ein Benutzer erstellt wird:

  1. Es wird geprüft, ob der Benutzer bereits im Linux-System existiert
  2. Falls nicht, wird ein entsprechender Linux-Benutzer angelegt
  3. Der Benutzer wird zur Gruppe "sambashare" hinzugefügt
  4. Ein Samba-Passwort wird für diesen Benutzer gesetzt

Es ist wichtig, mindestens einen Samba-Benutzer zu erstellen, wenn du Shares hast, die nicht für Gäste zugänglich sind.



Möchten Sie einen persönlichen Share für diesen Benutzer erstellen? (j/n) [j]

Das Script bietet die Möglichkeit, für jeden erstellten Benutzer automatisch einen persönlichen Share einzurichten:

  • Der Share wird nach dem Benutzernamen benannt
  • Der Benutzer wird automatisch als Eigentümer des Shares eingerichtet
  • Dies ist praktisch, um jedem Benutzer einen eigenen privaten Bereich zu geben


Firewall-Konfiguration

Soll die Firewall für Samba konfiguriert werden? (j/n) [j]

Diese Einstellung passt die Firewall für Samba-Netzwerkverkehr an.

  • j (empfohlen): Das Script konfiguriert die Firewall automatisch
  • n: Die Firewall wird nicht angepasst (erfordert manuelle Konfiguration)

Das Script unterstützt verschiedene Firewall-Systeme und wählt automatisch das richtige für dein System:

  1. ufw (Ubuntu Firewall):
    • Verwendet vordefinierte Samba-Profile, wenn verfügbar
    • Konfiguriert anderenfalls die benötigten Ports direkt
  2. firewalld (Fedora, RHEL, CentOS):
    • Aktiviert den Samba-Dienst in der Firewall-Konfiguration
  3. iptables:
    • Konfiguriert die benötigten Ports direkt
    • Versucht, die Regeln dauerhaft zu speichern
  4. nftables:
    • Fügt Regeln für Samba-Ports hinzu
    • Speichert die Konfiguration nach Möglichkeit

Falls keine dieser Firewalls erkannt wird, gibt das Script einen Hinweis aus, welche Ports manuell freigegeben werden müssen.



Nach der Ausführung

Nach erfolgreicher Ausführung des Scripts ist dein Samba-Server betriebsbereit. Das Script erkennt automatisch die passenden Samba-Dienste für dein System und startet diese:

  • Für Arch Linux: smb.service und nmb.service
  • Für Debian/Ubuntu/Fedora: smbd.service und nmbd.service
  • Fallback für ältere Systeme ohne systemd

Die Dienste werden sowohl gestartet als auch für den Autostart nach einem Systemneustart konfiguriert.

Du findest deinen Samba-Server im Netzwerk unter dem Hostnamen oder der IP-Adresse, die am Ende des Scripts angezeigt wird.

Die Samba-Konfigurationsdatei befindet sich unter /etc/samba/smb.conf und kann bei Bedarf manuell angepasst werden.



Wichtige Hinweise

  • Sicherheit: Verwende für sensible Daten keine Gästezugänge
  • Berechtigungen: Die Linux-Dateisystemrechte und Samba-Rechte müssen zusammenpassen
  • Netzwerk: Stelle sicher, dass alle Computer im gleichen Netzwerk sind
  • Firewall: Bei Verbindungsproblemen überprüfe die Firewall-Einstellungen
  • SGID-Bit: Das Script setzt das SGID-Bit für Share-Verzeichnisse, damit neue Dateien automatisch zur sambashare-Gruppe gehören
Samba Netzwerk Script

Mehr Videos findet man auf meinem Youtube Kanal linuxcoach:
https://www.youtube.com/@linuxcoach

 

Ein weiterer Interessanter Artikel zu diesem Thema:
https://computer-experte.ch/g4music/