Benutzer-Werkzeuge

Webseiten-Werkzeuge


it-themen:allgemein:debian_docker-server_einrichtung_teil_3_korrekt

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 <<EOF > /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)

it-themen/allgemein/debian_docker-server_einrichtung_teil_3_korrekt.txt · Zuletzt geändert: von lars