#!/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 users_list() { while true; do clear echo "=== Utilisateurs Samba ===" echo "" echo " 0. Afficher les principales clés LDAP usuelles" mapfile -t users < <(samba-tool user list | sort) for i in "${!users[@]}"; do printf " %2d. %s\n" $((i+1)) "${users[i]}" done echo -n "Numéro de l'utilisateur à éditer [Entrée pour retour] : " read usernum if [[ -z "$usernum" ]]; then break elif [[ "$usernum" == "0" ]]; then user_attributes elif [[ "$usernum" =~ ^[0-9]+$ ]] && ((usernum>=1 && usernum<=${#users[@]})); then user_edit_ldap "${users[usernum-1]}" else echo "Choix invalide"; sleep 1 fi done } user_attributes() { echo "Principales clés LDAP pour un utilisateur :" echo " - cn : Nom complet (Common Name)" echo " - sn : Nom de famille (Surname)" echo " - givenName : Prénom" echo " - displayName : Nom affiché" echo " - mail : Adresse email" echo " - telephoneNumber : Numéro de téléphone" echo " - description : Description" echo " - department : Département" echo " - title : Titre/Position" echo " - userPrincipalName: Nom d'utilisateur principal" echo " - homeDirectory : Dossier personnel" echo " - scriptPath : Script de login" echo " - memberOf : Appartenance à des groupes" echo " - ...etc." read -p "Appuyez sur Entrée pour retour..." } user_edit_ldap() { local username="$1" local dnow=$(date +%Y%m%d_%H%M%S) local bakfile="$LDIFDIR/${username}.${dnow}.bak" samba-tool user show "$username" > "$bakfile" samba-tool user edit "$username" echo "Modifications réinjectées. Sauvegarde : $bakfile" read -p "Appuyez sur Entrée pour continuer..." } # Submenu for managing Samba users users_menu() { while true; do clear echo "=== Gestion des utilisateurs Samba ===" echo "" echo "Que souhaitez-vous faire ?" echo "1. Afficher la liste des utilisateurs Samba" echo "2. Ajouter un utilisateur Samba" echo "3. Supprimer un utilisateur Samba" echo "4. Activer un utilisateur Samba" echo "5. Désactiver un utilisateur Samba" echo "" echo -n "Votre choix [Entrée pour retour] : " read choice echo "" case $choice in 1) echo "Liste des utilisateurs Samba :" users_list ;; 2) read -p "Entrez le nom de l'utilisateur à ajouter : " username samba-tool user add $username ;; 3) read -p "Entrez le nom de l'utilisateur à supprimer : " username samba-tool user delete $username ;; 4) read -p "Entrez le nom de l'utilisateur à activer : " username samba-tool user enable $username ;; 5) read -p "Entrez le nom de l'utilisateur à désactiver : " username samba-tool user disable $username ;; "") break ;; *) echo "Choix non valide. Veuillez réessayer." ;; esac read -n 1 -s -r -p "Appuyez sur une touche pour continuer..." done } users_menu