Serveur SambaAD manager

This commit is contained in:
jfontaine35 2024-01-12 13:23:46 +01:00 committed by GitHub
parent 061d49f6ad
commit 101aa44bfe
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 182 additions and 0 deletions

62
AD.sh Normal file
View File

@ -0,0 +1,62 @@
#!/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"
read -p "Choisissez une option (1-5 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."
;;
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."
fi
;;
3)
read -p "Nom d'utilisateur à supprimer: " username
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."
else
echo "Opération annulée."
fi
;;
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."
;;
5)
read -p "Nom d'utilisateur: " username
bash ./CheckAccountOf.sh $username
pause
;;
0)
echo "Au revoir! Merci d'etre passé"
exit 0
;;
*)
echo "Choix invalide. Veuillez choisir une option de 1 à 5."
;;
esac
done

7
AddAtThisGroups.sh Normal file
View File

@ -0,0 +1,7 @@
#!/bin/bash
read -p "Entrer l'utilisateur concerné : " login
for var in "$@"
do
samba-tool group addmembers "$var" $login
done

82
CheckAccountOf.sh Normal file
View File

@ -0,0 +1,82 @@
#!/bin/bash
# Fonction pour vérifier la présence d'un binaire et l'installer si nécessaire
install_if_missing() {
local binary_name=$1
if ! command -v $binary_name > /dev/null; then
echo "Le binaire '$binary_name' n'est pas présent. Tentative d'installation..."
sudo apt update
sudo apt install -y $binary_name
# Vérifier à nouveau si l'installation a réussi
if ! command -v $binary_name > /dev/null; then
echo "Erreur : Impossible d'installer le binaire '$binary_name'."
exit 1
fi
fi
}
# Vérifier et installer les binaires nécessaires
install_if_missing "samba-tool"
install_if_missing "ldapsearch"
# Vérifier le nombre d'arguments
if [ "$#" -ne 1 ]; then
echo "Usage: $0 <nom_utilisateur>"
exit 1
fi
# Nom d'utilisateur à vérifier
utilisateur="$1"
# Récupérer le DN (Distinguished Name) de l'utilisateur
dn=$(samba-tool user show "$utilisateur" | grep "distinguishedName" | awk '{print $NF}')
# Vérifier si l'utilisateur existe
if [ -z "$dn" ]; then
echo "L'utilisateur '$utilisateur' n'existe pas."
else
# Récupérer la valeur de userAccountControl
user_account_control=$(samba-tool user show "$utilisateur" | grep "userAccountControl" | awk '{print $NF}')
# Récupérer la valeur de badPwdCount
bad_pwd_count=$(samba-tool user show "$utilisateur" | grep "badPwdCount" | awk '{print $NF}')
# Récupérer la valeur de Account lockout threshold (attempts) dans la politique des mots de passe du domaine
domain_lockout_threshold=$(samba-tool domain passwordsettings show | grep "Account lockout threshold (attempts)" | awk '{print $NF}')
# Vérifier si le compte est activé ou désactivé
if [ $((user_account_control & 2)) -eq 2 ]; then
echo "Le compte de l'utilisateur '$utilisateur' est désactivé."
# Proposer d'activer le compte
read -p "Voulez-vous activer le compte (oui/non)? " activate_choice
if [ "$activate_choice" == "oui" ]; then
# Activer le compte
samba-tool user enable "$utilisateur"
echo "Le compte de l'utilisateur '$utilisateur' a été activé."
else
echo "Le compte de l'utilisateur '$utilisateur' reste désactivé."
fi
else
echo "Le compte de l'utilisateur '$utilisateur' est activé."
# Vérifier si le compte est verrouillé
if [ "$bad_pwd_count" -eq "$domain_lockout_threshold" ]; then
echo "Le compte de l'utilisateur '$utilisateur' est verrouillé."
# Proposer de déverrouiller le compte
read -p "Voulez-vous déverrouiller le compte (oui/non)? " unlock_choice
if [ "$unlock_choice" == "oui" ]; then
# Déverrouiller le compte
samba-tool user unlock "$utilisateur"
echo "Le compte de l'utilisateur '$utilisateur' a été déverrouillé."
else
echo "Le compte de l'utilisateur '$utilisateur' reste verrouillé."
fi
else
echo "Le compte de l'utilisateur '$utilisateur' n'est pas verrouillé."
fi
fi
fi

18
CreateNewUser.sh Normal file
View File

@ -0,0 +1,18 @@
#!/bin/bash
#Prequis : apt install -y pwgen
PASS_LENGTH=12
# Demande à l'utilisateur de saisir le info
read -p "Entrez le Nom : " NAME
read -p "Entrez le Prenom :" PRENOM
LOGIN=`echo $PRENOM|cut -c1`".$NAME"
PASSWORD=$(pwgen -c -n -y -s -B $PASS_LENGTH 1)
echo "Création du nouvel utilisateur $LOGIN en cours..."
samba-tool user create $LOGIN $PASSWORD --given-name=$PRENOM --surname=$NAME
echo "Mot de passe de $PRENOM : " $PASSWORD
#Ajout ds le groupe Administratifs par defaut
samba-tool group addmembers Administratifs $LOGIN

2
DisableUserTo.sh Normal file
View File

@ -0,0 +1,2 @@
#!/bin/bash
samba-tool user disable $1

2
ListAllUsers.sh Normal file
View File

@ -0,0 +1,2 @@
#!/bin/bash
samba-tool user list | sort | grep "."

3
ListGroupTo.sh Normal file
View File

@ -0,0 +1,3 @@
#!/bin/bash
samba-tool user show $1 | grep "memberOf" | cut -d ',' -f1 | cut -d ':' -f2 | cut -d '=' -f2

3
ResetPwdTo.sh Normal file
View File

@ -0,0 +1,3 @@
#!/bin/bash
password=H3campus@2023
samba-tool user setpassword $1 --must-change-at-next-login --newpassword=$password

3
RstPwd.sh Normal file
View File

@ -0,0 +1,3 @@
#!/bin/bash
password=H3campus@2023
samba-tool user setpassword $1 --newpassword=$password