[[..:start|zurück]] # Docker Samba Setup – Dokumentation 🧾 Diese Anleitung beschreibt die Einrichtung eines persistenten Samba-Containers mit Benutzerverwaltung und dauerhaftem Share-Verzeichnis unter `/opt/samba`. --- ## 📁 Verzeichnisstruktur ``` /opt/docker/ ├── samba/ │ ├── config/ # Konfiguration und Passwörter │ └── share/ # Freigegebene Dateien (auf /opt/samba gemountet) ``` ### Host-Mount: ```bash UUID=8d717546-5662-4f7e-b580-a3d262614304 /opt/samba ext4 defaults 0 2 ``` --- ## ⚙️ Docker Compose Konfiguration ```yaml services: samba: image: dperson/samba container_name: samba restart: always stdin_open: true tty: true ports: - "137:137/udp" - "138:138/udp" - "139:139/tcp" - "445:445/tcp" volumes: - /opt/samba:/mount command: > -p -u "benutzer1;passwort123" -s "public;/mount;yes;no;no;all;none" ``` * `-u`: Benutzername und Passwort im Format `name;passwort` * `-s`: Share mit Parametern: `share;pfad;readonly;browsable;guest;users;admins` * `-p`: Persistiert Passwörter zwischen Neustarts --- ## 🔐 Nutzerzugriff testen Installiere smbclient auf dem Host (sofern nicht vorhanden): ```bash sudo apt install smbclient ``` Dann prüfen: ```bash smbclient -L //192.168.178.96 -U benutzer1 ``` Wenn SMB1 deaktiviert ist, kann ignoriert werden – die Freigaben sind dennoch über SMB2/3 zugänglich. --- ## 🧼 Bekannte Fehler & Lösungen | Fehler | Lösung | | ------------------------------------ | -------------------------------------------------------------------- | | `ERROR: command not found: #` | Docker interpretiert `# Kommentar` im Command-String. `#` entfernen. | | `smbclient: Kommando nicht gefunden` | `sudo apt install smbclient` ausführen. | | Share erscheint nicht | Netzwerk prüfen & `mount` Verzeichnisrechte prüfen (`chmod 770`). | --- ## 🔁 Neustarts und Persistenz * Der Benutzer `benutzer1` und das Passwort sind persistent dank `-p`. * Daten im Share `/opt/samba` bleiben bei Neustarts erhalten. --- ## 🗂️ Beispiel für mehrere Benutzer und Shares ```yaml command: > -p -u "user1;secret1" -u "user2;secret2" -s "data1;/mount;yes;yes;no;user1;user1" -s "data2;/mount;yes;yes;no;user2;user2" ``` --- {{avatar>lars|Lars.Weiss@gmail.com?l|Lars Weiß}} //[[Lars.Weiss@gmail.com|Lars Weiß]] 24.05.2025 19:50//