🔹 Warum dieses Skript?

Das Einrichten von Samba-Freigaben kann mühsam sein, besonders wenn man sich nicht ständig mit Konfigurationsdateien beschäftigt. Dieses PHP-Tool erstellt automatisch eine fertige smb.conf-Datei, die du direkt auf deinem Server nutzen kannst.

Ob öffentliche Freigaben, passwortgeschützte Nutzerordner oder IP-beschränkter Zugriff – alles lässt sich bequem über eine Web-Oberfläche einstellen.

🛠️ Features des Samba-Generators

  • Benutzerfreundliche Web-Oberfläche für die Freigaben-Konfiguration
  • Unterstützt anonyme & passwortgeschützte Freigaben
  • Automatische Erstellung einer smb.conf-Datei
  • Optionale IP-Beschränkung – Zugriff nur für bestimmte Netzwerke
  • Backup-Option – Automatische Datensicherung bei Freigaben

📌 Beispiel: Generierte Samba-Konfiguration

Angenommen, du möchtest eine Freigabe mit folgenden Werten erstellen:

  • Name: shared
  • Pfad: /srv/samba/shared
  • Gastzugriff: Nein
  • Benutzer: admin, user1
  • Zugriffsrechte: admin = schreiben, user1 = lesen
  • Zugriff nur für bestimmte IPs: 192.168.1.10, 192.168.1.20

Das Skript generiert automatisch folgende smb.conf:

[shared]
path = /srv/samba/shared
guest ok = no
valid users = admin user1
read list = user1
write list = admin
hosts allow = 192.168.1.10 192.168.1.20

💡 Diese Datei kann direkt auf deinem Samba-Server verwendet werden!

🔎 Code-Analyse – Wichtige Abschnitte erklärt

1️⃣ Formulareingaben verarbeiten

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $shareName = $_POST['share_name'];
    $path = $_POST['path'];
    $users = $_POST['users'];

👉 Hier liest das Skript die Werte aus dem Formular aus, die der Nutzer eingegeben hat.

2️⃣ Erstellung des Samba-Blocks

$generatedSambaConfig .= "[{$shareName}]\n";
$generatedSambaConfig .= "path = {$path}\n";

👉 Hier wird der Grundblock für die Freigabe erstellt – mit Name und Pfad.

3️⃣ Unterstützung für Gastzugriff

if ($guestAccess === 'yes') {
    $generatedSambaConfig .= "guest ok = yes\n";
    $generatedSambaConfig .= "read only = no\n"; 
} else {
    $generatedSambaConfig .= "guest ok = no\n";
}

👉 Falls der Nutzer anonymen Zugriff erlaubt, wird die Einstellung entsprechend gesetzt.

4️⃣ Benutzerzugriff & Berechtigungen setzen

$validUsers = implode(' ', $users);
$generatedSambaConfig .= "valid users = {$validUsers}\n";

👉 Hier wird festgelegt, welche Benutzer Zugriff auf die Freigabe haben.

5️⃣ IP-Beschränkung einbauen (optional)

if (!empty($allowedIps)) {
    $generatedSambaConfig .= "hosts allow = " . implode(' ', $allowedIps) . "\n";
}

👉 Falls der Zugriff nur für bestimmte IPs erlaubt ist, wird diese Regel gesetzt.

📥 Download & Nutzung

💾 Download: samba_generator.php

📌 Lizenz: Open-Source – Feel free to use & modify!

📢 Hast du Fragen oder Verbesserungsvorschläge? Schreib mir! 🚀

💡 Fazit – Warum ist das Skript nützlich?

  • Zeitsparend – Ersetzt das manuelle Schreiben von smb.conf-Dateien
  • Fehlersicher – Keine falschen oder vergessenen Parameter
  • Flexibel – Unterstützt Gastzugriff, Benutzer & IP-Beschränkungen
  • Einsteigerfreundlich – Keine Linux-Kommandozeile nötig

Von Daniel Mattick

Ich bin Daniel, Technik-Enthusiast mit einer Vorliebe für Automatisierung, Skripting und alles, was IT-Prozesse einfacher macht. Ich bastle gerne an Lösungen, die den Alltag in der IT erleichtern – egal ob für Profis oder Neugierige, die sich in die Materie einarbeiten wollen. Dabei teile ich mein Wissen und meine Skripte in der IT Toolbox, weil ich finde: Gute Lösungen sollte man nicht für sich behalten!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert