Update AD.sh
This commit is contained in:
parent
101aa44bfe
commit
b7ec1acdd8
249
AD.sh
249
AD.sh
|
|
@ -1,62 +1,237 @@
|
|||
#!/bin/bash
|
||||
|
||||
while true; do
|
||||
echo "Gestion des comptes utilisateurs dans Samba AD"
|
||||
echo "1. Créer un nouveau compte"
|
||||
echo "2. Désactiver un compte"
|
||||
echo "3. Supprimer un compte"
|
||||
echo "4. Réinitialiser le mot de passe"
|
||||
echo "5. Vérifier un compte"
|
||||
echo "0. Quitter"
|
||||
# Mot de passe par d faut
|
||||
default_password='*******'
|
||||
|
||||
read -p "Choisissez une option (1-5 ou 0): " choice
|
||||
# Couleurs
|
||||
RED='\033[0;31m'
|
||||
GREEN='\033[0;32m'
|
||||
YELLOW='\033[1;33m'
|
||||
BLUE='\033[0;34m'
|
||||
NC='\033[0m' # Pas de couleur
|
||||
|
||||
# G n rateur de mot de passe al atoire
|
||||
generate_password() {
|
||||
echo "$(tr -dc A-Za-z0-9 </dev/urandom | head -c 12)"
|
||||
}
|
||||
|
||||
# Pause jusqu' l'appui sur une touche
|
||||
pause() {
|
||||
read -n 1 -s -r -p "Appuyez sur une touche pour continuer..."
|
||||
}
|
||||
|
||||
# Liste des groupes, en excluant les groupes syst me
|
||||
get_group_list() {
|
||||
excluded_groups="Domain Admins|Enterprise Admins|Domain Users|Domain Guests|Administrators|Users|Guests|krbtgt|DnsAdmins|Windows Authorization Access Group|Server Operators|>
|
||||
|
||||
samba-tool group list | grep -Ev "^($excluded_groups)$" | sort
|
||||
|
||||
#samba-tool group list | grep -Ev "^(Domain Admins|Enterprise Admins|Domain Users|Domain Guests|Administrators|Users|Guests|krbtgt|DnsAdmins)$" | sort
|
||||
}
|
||||
|
||||
while true; do
|
||||
clear
|
||||
echo -e "${BLUE}Gestion des comptes AD de H3${NC}"
|
||||
echo -e "${GREEN}1. Cr er un nouveau compte${NC}"
|
||||
echo -e "${GREEN}2. D sactiver un compte${NC}"
|
||||
echo -e "${GREEN}3. Supprimer un compte${NC}"
|
||||
echo -e "${GREEN}4. R initialiser le mot de passe${NC}"
|
||||
echo -e "${GREEN}5. V rifier un compte${NC}"
|
||||
echo -e "${GREEN}6. Ajouter un utilisateur un groupe${NC}"
|
||||
echo -e "${RED}0. Quitter${NC}"
|
||||
|
||||
read -p "Choisissez une option (1-6 ou 0): " choice
|
||||
|
||||
case $choice in
|
||||
1)
|
||||
read -p "Nom d'utilisateur: " username
|
||||
read -p "Prénom de l'utilisateur: " first_name
|
||||
read -p "Nom de famille de l'utilisateur: " last_name
|
||||
samba-tool user create $username --given-name="$first_name" --surname="$last_name"
|
||||
echo "Compte $username ($first_name $last_name) créé avec succès."
|
||||
read -p "Entrez le Pr nom : " PRENOM
|
||||
read -p "Entrez le Nom : " NAME
|
||||
|
||||
PRENOM="${PRENOM^}" # Met la premi re lettre en majuscule
|
||||
NAME="${NAME,,}" # Met tout le nom en minuscules
|
||||
NAME="${NAME^}" # Met la premi re lettre en majuscule
|
||||
|
||||
username="${PRENOM:0:1}.${NAME}"
|
||||
|
||||
echo "Nom d'utilisateur g n r : $username"
|
||||
|
||||
samba-tool user show "$username" > /dev/null 2>&1
|
||||
if [ $? -eq 0 ]; then
|
||||
echo -e "${RED}Erreur : L'utilisateur $username existe d j .${NC}"
|
||||
pause
|
||||
continue
|
||||
fi
|
||||
|
||||
|
||||
# Cr ation du compte avec le mot de passe par d faut
|
||||
samba-tool user create "$username" --given-name="$PRENOM" --surname="$NAME" --login-shell="/bin/bash" --random-password
|
||||
samba-tool user setpassword "$username" --newpassword="$default_password"
|
||||
|
||||
|
||||
if [ $? -eq 0 ]; then
|
||||
echo -e "${GREEN}Compte $username ($PRENOM $NAME) cr avec succ s.${NC}"
|
||||
echo -e "${RED}Mot de passe par d faut : $default_password${NC}"
|
||||
pause
|
||||
else
|
||||
echo -e "${RED}Erreur lors de la cr ation de l'utilisateur.${NC}"
|
||||
pause
|
||||
continue
|
||||
fi
|
||||
|
||||
# Ajout automatique au groupe "Administratifs"
|
||||
samba-tool group addmembers "Administratifs" "$username"
|
||||
if [ $? -eq 0 ]; then
|
||||
echo -e "${GREEN}Utilisateur ajout au groupe Administratifs.${NC}"
|
||||
else
|
||||
echo -e "${RED}Erreur lors de l'ajout de l'utilisateur au groupe Administratifs.${NC}"
|
||||
fi
|
||||
|
||||
# Demande pour l'ajout dans d'autres groupes
|
||||
echo "Dans quels autres groupes souhaitez-vous ajouter l'utilisateur ?"
|
||||
groupes_disponibles=$(get_group_list)
|
||||
|
||||
echo "$groupes_disponibles" | nl
|
||||
|
||||
read -p "Votre s lection (num ros s par s par des espaces) : " group_selections
|
||||
|
||||
for group_index in $group_selections; do
|
||||
group=$(echo "$groupes_disponibles" | sed -n "${group_index}p")
|
||||
|
||||
samba-tool group addmembers "$group" "$username"
|
||||
if [ $? -eq 0 ]; then
|
||||
echo -e "${GREEN}Utilisateur ajout au groupe $group.${NC}"
|
||||
else
|
||||
echo -e "${RED}Erreur lors de l'ajout de l'utilisateur au groupe $group.${NC}"
|
||||
fi
|
||||
done
|
||||
pause
|
||||
;;
|
||||
2)
|
||||
read -p "Nom d'utilisateur à désactiver: " username
|
||||
read -p "Voulez-vous vraiment désactiver le compte $username ? (y/n): " confirmation
|
||||
if [ "$confirmation" == "y" ]; then
|
||||
samba-tool user disable $username
|
||||
echo "Compte $username désactivé."
|
||||
else
|
||||
echo "Opération annulée."
|
||||
read -p "Nom d'utilisateur d sactiver: " username
|
||||
|
||||
samba-tool user show "$username" > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
echo -e "${RED}Erreur : L'utilisateur $username n'existe pas.${NC}"
|
||||
pause
|
||||
continue
|
||||
fi
|
||||
|
||||
read -p "Voulez-vous vraiment d sactiver le compte $username ? (y/n): " confirmation
|
||||
if [ "$confirmation" == "y" ]; then
|
||||
samba-tool user disable "$username"
|
||||
echo -e "${YELLOW}Compte $username d sactiv .${NC}"
|
||||
else
|
||||
echo -e "${RED}Op ration annul e.${NC}"
|
||||
fi
|
||||
pause
|
||||
;;
|
||||
3)
|
||||
read -p "Nom d'utilisateur à supprimer: " username
|
||||
read -p "Nom d'utilisateur supprimer: " username
|
||||
|
||||
samba-tool user show "$username" > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
echo -e "${RED}Erreur : L'utilisateur $username n'existe pas.${NC}"
|
||||
pause
|
||||
continue
|
||||
fi
|
||||
|
||||
read -p "Voulez-vous vraiment supprimer le compte $username ? (y/n): " confirmation
|
||||
if [ "$confirmation" == "y" ]; then
|
||||
samba-tool user delete $username
|
||||
echo "Compte $username supprimé avec succès."
|
||||
samba-tool user delete "$username"
|
||||
echo -e "${GREEN}Compte $username supprim avec succ s.${NC}"
|
||||
else
|
||||
echo "Opération annulée."
|
||||
echo -e "${RED}Op ration annul e.${NC}"
|
||||
fi
|
||||
pause
|
||||
;;
|
||||
4)
|
||||
read -p "Nom d'utilisateur pour réinitialiser le mot de passe: " username
|
||||
read -p "Définir un mot de passe par défaut ? (y/n): " default_password
|
||||
samba-tool user setpassword $username --newpassword="${default_password}" --must-change-at-next-login
|
||||
echo "Mot de passe réinitialisé pour le compte $username. L'utilisateur devra le changer au prochain démarrage."
|
||||
read -p "Nom d'utilisateur pour r initialiser le mot de passe: " username
|
||||
|
||||
samba-tool user show "$username" > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
echo -e "${RED}Erreur : L'utilisateur $username n'existe pas.${NC}"
|
||||
pause
|
||||
continue
|
||||
fi
|
||||
|
||||
new_password=$(generate_password)
|
||||
echo "Nouveau mot de passe g n r : $new_password"
|
||||
|
||||
echo "$new_password" | samba-tool user setpassword "$username"
|
||||
|
||||
if [ $? -eq 0 ]; then
|
||||
echo -e "${GREEN}Mot de passe r initialis pour le compte $username.${NC}"
|
||||
else
|
||||
echo -e "${RED}Erreur lors de la r initialisation du mot de passe.${NC}"
|
||||
fi
|
||||
pause
|
||||
;;
|
||||
5)
|
||||
read -p "Nom d'utilisateur v rifier: " username
|
||||
|
||||
samba-tool user show "$username" > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
echo -e "${RED}Erreur : L'utilisateur $username n'existe pas.${NC}"
|
||||
pause
|
||||
continue
|
||||
fi
|
||||
|
||||
user_info=$(samba-tool user show "$username")
|
||||
|
||||
echo "$user_info"
|
||||
|
||||
if echo "$user_info" | grep -q "account_locked: true"; then
|
||||
echo -e "${RED}Le compte est verrouill .${NC}"
|
||||
elif echo "$user_info" | grep -q "password_expired: true"; then
|
||||
echo -e "${YELLOW}Le mot de passe est expir .${NC}"
|
||||
elif echo "$user_info" | grep -q "userAccountControl:.*ACCOUNTDISABLE"; then
|
||||
echo -e "${YELLOW}Le compte est d sactiv .${NC}"
|
||||
else
|
||||
echo -e "${GREEN}Le compte est actif.${NC}"
|
||||
fi
|
||||
|
||||
pause
|
||||
;;
|
||||
6)
|
||||
read -p "Nom d'utilisateur ajouter au groupe : " username
|
||||
|
||||
samba-tool user show "$username" > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
echo -e "${RED}Erreur : L'utilisateur $username n'existe pas.${NC}"
|
||||
pause
|
||||
continue
|
||||
fi
|
||||
|
||||
echo "Dans quels groupes souhaitez-vous ajouter l'utilisateur ?"
|
||||
groupes_disponibles=$(get_group_list)
|
||||
|
||||
echo "$groupes_disponibles" | nl
|
||||
|
||||
read -p "Votre s lection (num ros s par s par des espaces) : " group_selections
|
||||
|
||||
for group_index in $group_selections; do
|
||||
group=$(echo "$groupes_disponibles" | sed -n "${group_index}p")
|
||||
|
||||
samba-tool group addmembers "$group" "$username"
|
||||
if [ $? -eq 0 ]; then
|
||||
echo -e "${GREEN}Utilisateur ajout au groupe $group.${NC}"
|
||||
else
|
||||
echo -e "${RED}Erreur lors de l'ajout de l'utilisateur au groupe $group.${NC}"
|
||||
fi
|
||||
done
|
||||
pause
|
||||
;;
|
||||
5)
|
||||
read -p "Nom d'utilisateur: " username
|
||||
bash ./CheckAccountOf.sh $username
|
||||
pause
|
||||
;;
|
||||
0)
|
||||
echo "Au revoir! Merci d'etre passé"
|
||||
echo -e "${BLUE}Au revoir !${NC}"
|
||||
exit 0
|
||||
;;
|
||||
*)
|
||||
echo "Choix invalide. Veuillez choisir une option de 1 à 5."
|
||||
echo -e "${RED}Option invalide, veuillez choisir une option valide.${NC}"
|
||||
pause
|
||||
;;
|
||||
esac
|
||||
|
||||
done
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue