touch /home/scripts/multipleUsersDelete.sh
chmod +x /home/scripts/multipleUsersDelete.sh
nano /home/scripts/multipleUsersDelete.sh
#!/bin/bash

KONTENER_NAME="srv-ad"
SCIEZKA_PROFILI="/home/LO"

echo "Podaj id klasy (a15, b16...):"
read -r search_id

if [ -z "$search_id" ]; then
    echo "Błąd: ID klasy nie może być puste!"
    exit 1
fi

# Pobranie listy loginów z kontenera
lxc-attach -n "$KONTENER_NAME" -- samba-tool user list | grep "$search_id" | tr -d '\r' > kasowane.txt

if [ ! -s kasowane.txt ]; then
    echo "Nie znaleziono żadnych kont pasujących do frazy: $search_id"
    rm -f kasowane.txt
    exit 0
fi

echo "--- Konta do przetworzenia ---"
cat kasowane.txt
echo "------------------------------"

# 1. KASOWANIE KATALOGÓW PROFILOWYCH (na podstawie UID)
echo "Czy skasować katalogi profilowe użytkowników? (t/n)"
read -r odp_kat
if [ "$odp_kat" == "t" ]; then
    while read -r u_login; do
        [ -z "$u_login" ] && continue
        u_login=$(echo "$u_login" | xargs)

        # ODCZYTANIE UID Z KONTENERA
        echo -n "Pobieranie UID dla $u_login... "
        u_uid=$(lxc-attach -n "$KONTENER_NAME" -- id -u "$u_login" 2>/dev/null | tr -d '\r')

        if [ -z "$u_uid" ]; then
            echo "BŁĄD: Nie można znaleźć UID dla $u_login"
            continue
        fi
        echo "UID: $u_uid"

        # USUWANIE KATALOGU
        # Zakładamy, że katalogi na Debianie nazywają się tak jak loginy, 
        # ale jeśli Debian ich "nie widzi", to i tak rm -rf zadziała po nazwie.
        # Jeśli jednak katalogi są nazwane numerami UID, zmień ścieżkę poniżej.
        
        KATALOG="$SCIEZKA_PROFILI/$u_login" 
        
        if [ -d "$KATALOG" ]; then
            echo "Usuwanie katalogu: $KATALOG"
            rm -rf "$KATALOG"
        else
            # Opcjonalnie: szukanie katalogu po UID, jeśli nazwa folderu jest inna
            echo "Katalog o nazwie $u_login nie istnieje. Szukam katalogu należącego do UID $u_uid..."
            find "$SCIEZKA_PROFILI" -maxdepth 1 -user "$u_uid" -type d -exec echo "Znaleziono i usuwam: " {} \; -exec rm -rf {} \;
        fi
    done < kasowane.txt
fi

echo "----------------------------------------"

# 2. KASOWANIE KONT Z SAMBA AD (w kontenerze)
echo "Czy skasować konta z bazy Samba AD? (t/n)"
read -r odp_samba
if [ "$odp_samba" == "t" ]; then
    while read -r u_login; do
        [ -z "$u_login" ] && continue
        u_login=$(echo "$u_login" | xargs)
        
        echo "Usuwanie konta Samba: $u_login"
        lxc-attach -n "$KONTENER_NAME" -- samba-tool user delete "$u_login"
    done < kasowane.txt
    
    echo "Przeładowanie konfiguracji..."
    lxc-attach -n "$KONTENER_NAME" -- systemctl reload samba-ad-dc
fi

rm -f kasowane.txt
echo "Zakończono."

 

Spis treści: