diff --git a/scripts/create-service-account b/scripts/create-service-account new file mode 100644 index 0000000..573e350 --- /dev/null +++ b/scripts/create-service-account @@ -0,0 +1,50 @@ +#!/usr/bin/env bash + +set -euo pipefail + +USER="$1" + +if [ -z "$USER" ]; then + echo "Usage: $0 " + exit 1 +fi + +# Prüfen, ob ldbmodify verfügbar ist +if ! command -v ldbmodify &> /dev/null; then + echo "Fehler: 'ldbmodify' ist nicht installiert. Bitte installiere 'ldb-tools' mit:" + echo " sudo apt update && sudo apt install ldb-tools" + exit 10 +fi + +# Sicheres Passwort generieren (32 Zeichen, alphanumerisch + Sonderzeichen) +PASSWORD=$(openssl rand -base64 24) + +# Benutzer anlegen mit generiertem Passwort +samba-tool user create "$USER" "$PASSWORD" +echo "✅ Benutzer $USER erfolgreich erstellt." + +# DN des Benutzers ermitteln +DN=$(ldbsearch -H /var/lib/samba/private/sam.ldb "(sAMAccountName=$USER)" dn | awk '/^dn: / {print $2}') + +if [ -z "$DN" ]; then + echo "❌ Fehler: DN für $USER nicht gefunden." >&2 + exit 3 +fi + +# userWorkstations=NONE setzen +ldbmodify -H /var/lib/samba/private/sam.ldb <