[[..:start|zurück]] ====== Debian Docker-Server Einrichtung – Teil 3 (korrekt): Samba mit echter LDAP-Anbindung ====== === 🧱 Ziel === Ein Samba-Dateiserver in einem Docker-Container, der Benutzer und Gruppen aus dem vorhandenen OpenLDAP-Server nutzt. === ♻️ Aufräumen vorheriger Versuche === # Alten einfachen Samba-Container stoppen und entfernen cd ~/docker-server/samba docker compose down rm -r ~/docker-server/samba # Vorhandene samba-ldap-Reste aufräumen cd ~/docker-server/samba-ldap docker compose down cd ~/docker-server rm -rf samba-ldap === 📁 Neues Verzeichnis anlegen === mkdir -p ~/docker-server/samba-ldap cd ~/docker-server/samba-ldap === 🛠️ Dockerfile erstellen === Datei: Dockerfile FROM debian:bookworm ENV DEBIAN_FRONTEND=noninteractive RUN apt update && apt install -y \ samba winbind libnss-ldap libpam-ldap nscd smbclient ldap-utils vim \ && rm -rf /var/lib/apt/lists/* COPY entrypoint.sh /entrypoint.sh RUN chmod +x /entrypoint.sh ENTRYPOINT ["/entrypoint.sh"] === 🔧 Einstiegsskript erstellen === Datei: entrypoint.sh #!/bin/bash echo 'hosts: files ldap dns' > /etc/nsswitch.conf echo 'passwd: files ldap' >> /etc/nsswitch.conf echo 'group: files ldap' >> /etc/nsswitch.conf echo 'shadow: files ldap' >> /etc/nsswitch.conf cat < /etc/samba/smb.conf [global] workgroup = WORKGROUP security = user passdb backend = ldapsam:ldap://ldap-server ldap admin dn = cn=admin,dc=netz,dc=local ldap suffix = dc=netz,dc=local ldap user suffix = ou=people ldap group suffix = ou=groups ldap machine suffix = ou=machines ldap ssl = no log file = /var/log/samba/log.%m max log size = 1000 load printers = no dns proxy = no [Daten] path = /srv/share browsable = yes writable = yes guest ok = no EOF /etc/init.d/nscd start /etc/init.d/smbd start /etc/init.d/nmbd start tail -f /dev/null chmod +x entrypoint.sh === 🧾 docker-compose.yml erstellen === Datei: docker-compose.yml version: '3.8' services: samba-ldap: build: . container_name: samba-ldap networks: - ldap-net volumes: - ./data:/srv/share ports: - "139:139" - "445:445" networks: ldap-net: external: true === 📁 Freigabe-Ordner anlegen === mkdir data echo "Testfreigabe über Samba+LDAP" > data/info.txt === 🚀 Container bauen und starten === docker compose build docker compose up -d docker logs samba-ldap === 🧪 Test im Container === docker exec -it samba-ldap bash getent passwd getent group smbclient //localhost/Daten -U admin === ✅ Ergebnis === Samba nutzt OpenLDAP als Authentifizierungsquelle. Benutzer und Gruppen werden über LAM verwaltet. Die Freigabe "Daten" ist aktiv und prüft Benutzer gegen LDAP. === ▶️ Nächste Schritte === * LAM für Samba-Benutzer vorbereiten * Samba-Schema importieren (falls noch nicht im LDAP)