Serveur SambaAD manager
This commit is contained in:
parent
061d49f6ad
commit
101aa44bfe
|
|
@ -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
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
#!/bin/bash
|
||||
read -p "Entrer l'utilisateur concerné : " login
|
||||
for var in "$@"
|
||||
do
|
||||
samba-tool group addmembers "$var" $login
|
||||
done
|
||||
|
||||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
#!/bin/bash
|
||||
samba-tool user disable $1
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
#!/bin/bash
|
||||
samba-tool user list | sort | grep "."
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
#!/bin/bash
|
||||
|
||||
samba-tool user show $1 | grep "memberOf" | cut -d ',' -f1 | cut -d ':' -f2 | cut -d '=' -f2
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
#!/bin/bash
|
||||
password=H3campus@2023
|
||||
samba-tool user setpassword $1 --must-change-at-next-login --newpassword=$password
|
||||
Loading…
Reference in New Issue