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:
- Installation von Samba und notwendigen Paketen
- Erstellung der sambashare-Gruppe für gemeinsame Berechtigungen
- Sicherung bestehender Konfigurationen
- Konfiguration der globalen Samba-Einstellungen
- Erstellung und Konfiguration von Dateifreigaben (Shares)
- Erstellung von Samba-Benutzern und persönlichen Shares
- Konfiguration der Firewall für Samba-Zugriff (unterstützt ufw,
firewalld, iptables und nftables)
- 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
- Speichere das Script in einer Datei, z.B.
samba-setup.sh
- Mache es ausführbar:
chmod +x samba-setup.sh
- 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:
- Share-Name: Name der Freigabe im Netzwerk (z.B. "Dokumente",
"Medien")
- Pfad zum Share-Verzeichnis: Lokaler Dateipfad (z.B.
"/home/username/samba-daten")
- Falls das Verzeichnis nicht existiert, bietet das Script an, es
zu erstellen
- Kommentar/Beschreibung: Kurze Beschreibung des Shares
- Ö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
- Gästezugang: Zugriff ohne Authentifizierung
- j: Jeder kann ohne Anmeldung zugreifen
- n (Standard): Zugriff nur mit Benutzername/Passwort
- Schreibzugriff: Ob Benutzer Änderungen vornehmen können
- j (Standard): Vollständiger Lese- und Schreibzugriff
- n: Nur Lesezugriff (schreibgeschützt)
- 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
- Spezifische Gruppe für den Share:
- Standardmäßig wird automatisch die Gruppe "sambashare"
verwendet
- Diese Gruppe wird vom Script automatisch erstellt
- 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)
- 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:
- Es wird geprüft, ob der Benutzer bereits im Linux-System existiert
- Falls nicht, wird ein entsprechender Linux-Benutzer angelegt
- Der Benutzer wird zur Gruppe "sambashare" hinzugefügt
- 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:
- ufw (Ubuntu Firewall):
- Verwendet vordefinierte Samba-Profile, wenn verfügbar
- Konfiguriert anderenfalls die benötigten Ports direkt
- firewalld (Fedora, RHEL, CentOS):
- Aktiviert den Samba-Dienst in der Firewall-Konfiguration
- iptables:
- Konfiguriert die benötigten Ports direkt
- Versucht, die Regeln dauerhaft zu speichern
- 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