#!/bin/bash # Jean Luc BIELLMANN - contact@alsatux.com # Généré via ChatGPT if [ -f ./samba.conf ]; then source ./samba.conf else echo "Fichier samba.conf introuvable !" exit 1 fi computer_list() { while true; do #clear echo "=== Machines Samba ===" echo " 0. Afficher les principales clés LDAP usuelles" mapfile -t machines < <(ldbsearch -H "$SAMDB" '(objectClass=computer)' sAMAccountName | grep sAMAccountName: | awk '{print $2}' | sed 's/\r//' | sort) for i in "${!machines[@]}"; do printf " %2d. %s\n" $((i+1)) "${machines[i]}" done echo -n "Numéro de la machine à éditer [Entrée pour retour] : " read macnum if [[ -z "$macnum" ]]; then break elif [[ "$macnum" == "0" ]]; then computer_attributes elif [[ "$macnum" =~ ^[0-9]+$ ]] && ((macnum>=1 && macnum<=${#machines[@]})); then computer_edit "${machines[macnum-1]}" else echo "Choix invalide"; sleep 1 fi done } computer_attributes() { echo "Principales clés LDAP pour une machine :" echo " - cn : Nom NetBIOS de la machine" echo " - dNSHostName : Nom DNS" echo " - operatingSystem : Système d'exploitation" echo " - sAMAccountName : Nom du compte ordinateur" echo " - servicePrincipalName : SPN Kerberos" echo " - ...etc." read -p "Appuyez sur Entrée pour retour..." } computer_edit() { local machinename="$1" local dnow=$(date +%Y%m%d_%H%M%S) local bakfile="$LDIFDIR/${machinename}.${dnow}.bak" samba-tool computer show "$machinename" > "$bakfile" samba-tool computer edit "$machinename" echo "Modifications réinjectées. Sauvegarde : $bakfile" read -p "Appuyez sur Entrée pour continuer..." } computers_menu() { while true; do clear echo "=== Gestion des machines Samba ===" echo "" echo "Que souhaitez-vous faire ?" echo "1. Afficher la liste des machines" echo "2. Ajouter une machine" echo "3. Supprimer une machine" echo "" echo -n "Votre choix [Entrée pour retour] : " read choice echo "" case $choice in 1) echo "Liste des machines :" computer_list ;; 2) read -p "Entrez le nom de la machine à ajouter : " machinename samba-tool computer add $machinename ;; 3) read -p "Entrez le nom de la machine à supprimer : " machinename samba-tool computer delete $machinename ;; "") break ;; *) echo "Choix non valide. Veuillez réessayer." ;; esac read -n 1 -s -r -p "Appuyez sur une touche pour continuer..." done } computers_menu