Linux Users · 12 min read · Dec 15, 2025

Comment ajouter des utilisateurs à Linux OS à partir d'un fichier texte

Comment ajouter des utilisateurs à Linux OS à partir d’un fichier texte

Ce tutoriel concerne un script bash pour ajouter, supprimer et vérifier les utilisateurs soit à partir d’un fichier texte ; il peut également ajouter, supprimer et modifier les utilisateurs manuellement. Ce script peut être utilisé pour ajouter, supprimer et vérifier les utilisateurs sur le système d’exploitation Linux en récupérant les informations de l’utilisateur à partir de n’importe quel fichier texte et ce script peut également ajouter, supprimer ou vérifier les utilisateurs manuellement, j’ai mis ces deux fonctions dans un seul fichier script. Le fichier texte peut être spécifié par l’administrateur.

:-) !!!Le script est totalement convivial!!! :-)

Vous pouvez trouver le script à la fin de ce tutoriel.

Démarrer le script

Lorsque vous démarrez le script, un menu apparaîtra comme ceci :

MENU

  1. AJOUTER DES UTILISATEURS

  2. Vérifier les utilisateurs

  3. Supprimer des utilisateurs

4. QUITTER

1. Ajouter des utilisateurs

Maintenant, sélectionnez l’option

1. AJOUTER DES UTILISATEURS

dans le menu en appuyant sur

“1”

sur le clavier.

Maintenant, le script confirme que l’utilisateur doit être root, et nous savons que le UID de root est zéro (0). Donc, d’abord je compare le UID de l’utilisateur actuel avec le zéro (0), si le UID ne correspond pas au UID de root, alors il affichera le message suivant :

**Vous devez être l'utilisateur root pour exécuter ce script !

et si le

UID

correspond au UID de root, alors il affichera le message suivant et exécutera le script :

*Identité vérifiée_ Vous êtes le Root*

Nous pouvons vérifier le UID de l’utilisateur actuel en tapant la commande suivante dans le terminal :

echo $UID

Si l’utilisateur est root, alors la fonction 1.AJOUTER DES UTILISATEURS sera exécutée.

Maintenant, le script demandera à l’utilisateur s’il souhaite ajouter les utilisateurs manuellement ou laisser le script récupérer les informations de l’utilisateur à partir du fichier texte. Pour cela, il affichera le menu suivant :

#########################################

“Veuillez sélectionner le mode !!!

  1. Ajouter les utilisateurs manuellement
2.Lire les utilisateurs automatiquement à partir du fichier texte

###########################################

Maintenant, si l’utilisateur sélectionne 1. Ajouter les utilisateurs manuellement, alors le script demandera à l’utilisateur le nom d’utilisateur, le groupe et le mot de passe ; il utilisera les commandes suivantes pour le nom d’utilisateur et le groupe :

read usr_nameread usr_group

Maintenant, en utilisant les informations ci-dessus, il ajoutera l’utilisateur en utilisant la commande suivante :

useradd -g $usr_group -m $usr_name

Pour le mot de passe, il utilisera la commande suivante :

passwd $usr_name

Maintenant, si l’utilisateur sélectionne l’option 2.Lire les utilisateurs automatiquement à partir du fichier texte, alors le script localisera le fichier texte et vérifiera qu’il existe, puis il lira les informations telles que nom d’utilisateur, groupe, mot de passe à partir du fichier texte.

Maintenant, le script affichera le répertoire de travail actuel où le fichier texte doit être situé à l’utilisateur, en utilisant la commande suivante :

echo $(pwd)/users.txt

Maintenant, le script demande si le chemin ci-dessus du fichier texte est correct ou si vous souhaitez entrer le chemin du fichier manuellement, il affichera le message suivant à l’utilisateur :

Voulez-vous utiliser le chemin par défaut ci-dessus ? Oui=1 & Non=2

Si l’utilisateur appuie sur 1 pour Oui, alors le script chargera le fichier texte à partir du chemin affiché, en utilisant la commande suivante :

Path=$($pwd)users.txt

Si l’utilisateur appuie sur 2 pour Non, alors le script demandera à l’utilisateur d’entrer le chemin correct pour le fichier texte, et lira le chemin du fichier en utilisant la commande suivante :

read Path

Le chemin du fichier texte est stocké dans la variable “Path”. La commande suivante sera utilisée pour vérifier l’existence du fichier :

if [ -e $Path ];

Il extraira le nom d’utilisateur du fichier texte en utilisant la commande suivante :

Username=`grep "Username00$num" $Path | cut -f2 -d:`

Il extraira le groupe du fichier texte en utilisant la commande suivante :

Group=`grep "Group" $Path |cut -f2 -d:`

Il extraira le mot de passe du fichier texte en utilisant la commande suivante :

Password=`grep "Password" $Path | cut -f2 -d:`

Maintenant, le script utilise les variables qui contiennent les informations sur les utilisateurs et les ajoute au système d’exploitation Linux, en utilisant les commandes suivantes :

Pour ajouter un groupe, il utilisera la commande suivante :

groupadd $Group

Pour ajouter les utilisateurs au groupe, il utilisera la commande suivante :

useradd -g $Group -m $Username

Pour définir le mot de passe pour tous les utilisateurs, il utilise la commande suivante :

echo $Password | /usr/bin/passwd --stdin $Username

Mot de passe est la variable qui contient le même mot de passe pour tous les utilisateurs, il est extrait du fichier texte.

2. Vérifier les utilisateurs

À partir du menu :

    ### MENU ###
  1. AJOUTER DES UTILISATEURS
  2. Vérifier les utilisateurs
  3. Supprimer des utilisateurs
  4. QUITTER

Si l’utilisateur sélectionne l’option 2. Vérifier les utilisateurs, un autre menu apparaîtra comme :

#################################

Veuillez sélectionner le mode !!!

1.Vérifier tous les utilisateurs du système

2.Vérifier tous les utilisateurs du fichier TEXTE

#################################

À partir du menu ci-dessus, si l’utilisateur sélectionne l’option 1.Vérifier tous les utilisateurs du système, alors tous les utilisateurs du système seront affichés à l’utilisateur, j’ai utilisé la commande suivante à cet effet :

cat /etc/passwd |grep bash

Le résultat de la commande dans mon cas renverra les utilisateurs bash suivants :

root:x:0:0:root:/root:/bin/bash
lucky:x:501:501:Lucky:/home/lucky:/bin/bash

Maintenant, si l’utilisateur sélectionne l’option 2.Vérifier tous les utilisateurs du fichier TEXTE, alors tous les utilisateurs mentionnés dans le fichier texte seront vérifiés. Dans mon cas, j’ai utilisé la commande suivante pour vérifier les utilisateurs du fichier texte, soit qu’ils ont été ajoutés au système d’exploitation Linux ou non, et combien d’utilisateurs j’ai.

Pour vérifier les utilisateurs, j’ai utilisé la commande suivante dans mon script :

Path=$($pwd)users.txt
varify=grep "varify" $Path |cut -f2 -d:
cat /etc/passwd | grep $varify

Vérifier est la variable qui contient la valeur unique des noms d’utilisateur.

Pour afficher le nombre total d’utilisateurs, j’ai utilisé la commande suivante :

echo -e “\nVous avez actuellement”
cat /etc/passwd | grep $varify |wc -l;
echo “utilisateurs ajoutés à partir de votre fichier texte”

Le résultat de la commande ci-dessus dans mon cas est :

fa05btn001:x:502:502::/home/fa05btn001:/bin/bash
fa05btn002:x:503:502::/home/fa05btn002:/bin/bash
fa05btn003:x:504:502::/home/fa05btn003:/bin/bash
fa05btn004:x:505:502::/home/fa05btn004:/bin/bash
fa05btn005:x:506:502::/home/fa05btn005:/bin/bash
fa05btn006:x:507:502::/home/fa05btn006:/bin/bash
fa05btn007:x:508:502::/home/fa05btn007:/bin/bash
fa05btn008:x:509:502::/home/fa05btn008:/bin/bash

Vous avez actuellement 8 utilisateurs ajoutés à partir de votre fichier texte

3. Supprimer des utilisateurs

À partir du menu :

MENU

  1. AJOUTER DES UTILISATEURS

  2. Vérifier les utilisateurs

  3. Supprimer des utilisateurs

4. QUITTER

Si l’utilisateur sélectionne l’option 3. Supprimer des utilisateurs, alors la vérification de l’utilisateur en tant que root sera effectuée avant de continuer. Si l’utilisateur est vérifié comme root avec succès, alors un autre menu apparaîtra comme :

##############################################

Veuillez sélectionner le mode !!!

1.Supprimer un utilisateur spécifique

2.Supprimer tous les utilisateurs spécifiés dans le fichier TEXTE
##############################################

Maintenant, à partir du menu ci-dessus, si l’utilisateur sélectionne l’option 1.Supprimer un utilisateur spécifique, alors le script affichera les utilisateurs actuels du système et demandera à l’utilisateur d’entrer le nom de l’utilisateur à supprimer.

Pour afficher tous les utilisateurs du système, j’ai utilisé la commande suivante :

cat  /etc/passwd |grep bash 

La commande ci-dessus affichera le résultat suivant :

Vous avez actuellement les utilisateurs suivants ajoutés à votre système
root:x:0:0:root:/root:/bin/bash
lucky:x:501:501:Lucky:/home/lucky:/bin/bash
fa05btn001:x:502:502::/home/fa05btn001:/bin/bash
fa05btn002:x:503:502::/home/fa05btn002:/bin/bash
fa05btn003:x:504:502::/home/fa05btn003:/bin/bash
fa05btn004:x:505:502::/home/fa05btn004:/bin/bash
fa05btn005:x:506:502::/home/fa05btn005:/bin/bash
fa05btn006:x:507:502::/home/fa05btn006:/bin/bash
fa05btn007:x:508:502::/home/fa05btn007:/bin/bash
fa05btn008:x:509:502::/home/fa05btn008:/bin/bash

Tapez le nom de l'utilisateur que vous souhaitez supprimer :

Maintenant, l’utilisateur sera invité à entrer le nom de l’utilisateur à supprimer, et lorsque l’utilisateur a entré le nom de l’utilisateur qu’il/elle souhaite supprimer, le système d’exploitation Linux recherchera l’utilisateur dans le fichier ci-dessus et supprimera l’utilisateur en utilisant la commande suivante :

read user_name
userdel -r $user_name

Maintenant, si l’utilisateur sélectionne l’option

2.Supprimer tous les utilisateurs spécifiés dans le fichier TEXTE

alors le script supprimera tous les utilisateurs listés dans ce fichier texte.

La commande suivante extraira les noms d’utilisateur du fichier texte :

Username=`grep "Username00$num" $Path | cut -f2 -d:`

Le segment de script suivant ira à la fin du fichier et terminera la boucle :

if [ $Username == “EOF” ]; then
clear
main
fi

La commande suivante supprimera les utilisateurs listés dans le fichier texte :

userdel -r $Username

Remarque : J’ai testé mon script ADDUSER.sh sur PCLinuxOS, et j’espère qu’il fonctionnera également bien sur d’autres distributions Linux. Tout le monde peut modifier le code également, et veuillez le partager avec d’autres.

Passez un bon moment. :-)

LE SCRIPT COMPLET POUR AJOUTER, SUPPRIMER et VÉRIFIER LES UTILISATEURS DANS LINUX OS.

Créé par USMAN AKRAM (ajaonchat)

#!/bin/bash
###############################################################
#Ce script est créé par                                    #
#                USMAN AKRAM  (ajaonchat)                     #
#                                       FA05-BTN-005          #
#                            BTN-6                            #
###############################################################
add_users()
{
    ROOT_UID=0      #L'utilisateur root a un UID de 0
    if      [ "$UID" -ne "$ROOT_UID" ]; then
            echo "Vous devez être l'utilisateur root pour exécuter ce script !**"
            exit
    fi

echo

echo Identité vérifiée_ Vous êtes le Root
echo 

echo -e "\n#########################################\n"
echo -e "Veuillez sélectionner le mode !!!\n"
echo -e "1. Ajouter les utilisateurs manuellement\n
2.Lire les utilisateurs automatiquement à partir du fichier texte\n"
echo -e "###########################################"
read add_opt
case $add_opt in
    1)
echo -e "Veuillez entrer le nom d'utilisateur :"
read usr_name
echo -e "Veuillez entrer le groupe d'utilisateur"
read usr_group
groupadd $usr_group
        useradd -g $usr_group -m $usr_name
        echo -e "Veuillez entrer le mot de passe pour l'utilisateur $usr_name"
        passwd $usr_name ;; 
    2)
       echo
       echo "Le répertoire de travail actuel est : `pwd`/users.txt"
       echo
       echo -e "Voulez-vous utiliser le chemin par défaut ci-dessus ? Oui=1 & Non=2"
       read yn
if [ $yn == 1 ]; then
                      Path=$($pwd)users.txt
else
       echo -n "Veuillez entrer le chemin correct vers le fichier (par exemple /root/folder/filename.txt) : "
       read Path
fi
if [ -e $Path ]; then           #Si le fichier spécifié par l'utilisateur existe
Username=lucky
num=1
    while  [ $Username != "EOF" ]
        do
        Username=`grep "Username00$num" $Path | cut -f2 -d:`   #Extraire le nom d'utilisateur du fichier texte
num=$(($num+1))
        Password=`grep "Password" $Path | cut -f2 -d:`       #Extraire le mot de passe du fichier texte
        Group=`grep "Group" $Path |cut -f2 -d:`              #Extraire le groupe du fichier texte 
        
groupadd $Group         
            #Ajoute l'utilisateur au système et lui attribue un mot de passe
           if [ $Username == "EOF" ]; then
                   clear
                   main
           fi
                #Ajoute l'utilisateur au système
                useradd -g $Group -m $Username 
                #Ajoute le mot de passe des utilisateurs
                echo $Password | /usr/bin/passwd --stdin $Username #le mot de passe de l'utilisateur sera attribué
    
done
else  #Si le fichier spécifié par l'utilisateur n'existe pas
    echo -e "\n#############################################"
    echo -e "\n######IMPOSSIBLE DE TROUVER ou LOCALISER LE FICHIER !!!!#####"
    echo -e "\n#############################################"
fi;;
*) echo -e "Vous avez sélectionné le mauvais choix !!!"
esac
        
}
varify()
{
    echo -e "#################################"
    echo -e "Veuillez sélectionner le mode !!!\n"
    echo -e "1.Vérifier tous les utilisateurs du système\n
2.Vérifier tous les utilisateurs du fichier TEXTE\n"
echo -e "#################################"
read varify_user
case $varify_user in
        1) cat /etc/passwd |grep bash;;
        2)
    echo
        echo "Le répertoire de travail actuel est : `pwd`/users.txt"
        echo
        echo -e "Voulez-vous utiliser le chemin par défaut ci-dessus ? Oui=1 & Non=2"
        read yn
if [ $yn == 1 ]; then
                     Path=$($pwd)users.txt
else
        echo -n "Veuillez entrer le chemin correct vers le fichier (par exemple /root/folder/filename.txt) : "
        read Path
fi
if [ -e $Path ]; then
    Path=$($pwd)users.txt
    varify=`grep "varify" $Path |cut -f2 -d:`
      cat  /etc/passwd | grep $varify
  echo -e "\nVous avez actuellement "
          cat /etc/passwd | grep $varify |wc -l
      echo  "utilisateurs ajoutés à partir de votre fichier texte" 
else  #Si le fichier spécifié par l'utilisateur n'existe pas
      echo -e "\n#############################################"
      echo -e "\n######IMPOSSIBLE DE TROUVER ou LOCALISER LE FICHIER !!!!#####"
      echo -e "\n#############################################"
fi ;;
*) echo -e "Mauvais choix"
esac
         
}

del_users()
{
#Ce script supprimera les utilisateurs du répertoire personnel !!!!
ROOT_UID=0      #L'utilisateur root a un UID de 0
    if      [ "$UID" -ne "$ROOT_UID" ]; then
            echo "**Vous devez être l'utilisateur root pour exécuter ce script !**"
            exit
    fi

echo

echo Identité vérifiée_ Vous êtes le Root
echo
    

echo

echo "Le répertoire de travail actuel est : `pwd`/students.txt"

echo
#Ceci est le menu pour sélectionner le mode de suppression des utilisateurs, soit supprimer un utilisateur sélectionné ou supprimer tous les utilisateurs que vous avez dans le fichier TEXTE...???
echo -e "####################################"
echo -e "\nVeuillez sélectionner le mode !!!\n
1.Supprimer un utilisateur spécifique\n
2.Supprimer tous les utilisateurs spécifiés dans le fichier TEXTE\n"
echo -e "####################################"
read del_opt
case $del_opt in
    1)
        echo -e "\n\nVous avez actuellement les utilisateurs suivants ajoutés à votre système\n"
         cat  /etc/passwd |grep bash
        echo -e "\n\n Tapez le nom de l'utilisateur que vous souhaitez supprimer :"
        read user_name
        userdel -r $user_name ;; 
    2) 
       echo
       echo "Le répertoire de travail actuel est : `pwd`/users.txt"
       echo
       echo -e "Voulez-vous utiliser le chemin par défaut ci-dessus ? Oui=1 & Non=2"
       read yn
if [ $yn == 1 ]; then
       Path=$($pwd)users.txt
else
       echo -n "Veuillez entrer le chemin correct vers le fichier (par exemple /root/folder/filename.txt) : "
       read Path
fi
if [ -e $Path ]; then       #Si le fichier spécifié par l'utilisateur existe
        num=1
Username=lucky      
        while  [ $Username != "EOF" ]
        do
        Username=`grep "Username00$num" $Path | cut -f2 -d:`   #Extraire le nom d'utilisateur du fichier texte
        
        if [ $Username == "EOF" ]; then
            clear
            main
        fi
                                   
                userdel -r $Username
num=$(($num+1))
    done
else  #Si le fichier spécifié par l'utilisateur n'existe pas
    echo -e "\n#############################################"
    echo -e "\n######IMPOSSIBLE DE TROUVER ou LOCALISER LE FICHIER !!!!#####"
    echo -e "\n#############################################"
fi ;; 
*) echo -e "Mauvais choix" 
esac
}

main()
{
    opt=1
while [ $opt -le 4 ]
do
    clear
echo -e "           ### MENU ###\n                                                          1. AJOUTER DES UTILISATEURS\n                                                           2. Vérifier les utilisateurs\n                                                          3. Supprimer des utilisateurs\n                                                         4. QUITTER\n"
read opt
case $opt in
    1) add_users ;; 
    2) varify ;; 
    3) del_users ;; 
    4) exit 0 ;; 
    *) echo -e "Vous avez entré le mauvais choix !!!"
esac

echo -e "\nVoulez-vous exécuter à nouveau le script Oui=1 & Non=4."
read opt
done
}
main
exit 0

Ceci est le fichier texte que j’ai utilisé avec mon script

#######################################################
CRÉÉ PAR
                     USMAN AKRAM (LUCKY)
                FA05-BTN-005
                    [email protected]
#######################################################
Compte d'étudiant COMSATS Abbottabad
    ==============================
Nom du fichier :users.txt
Année :2008
Campus :CIIT-ABTD
Groupe :btn
##Voici les utilisateurs qui seront ajoutés au répertoire personnel !!!
Username001:fa05btn001
Username002:fa05btn002
Username003:fa05btn003
Username004:fa05btn004
Username005:fa05btn005
Username006:fa05btn006
Username007:fa05btn007
Username008:fa05btn008
Username009:EOF
#ce sera la fin de l'utilisateur
varify:fa05btn
Mot de passe:123456
Fin du fichier texte !!!!

Créé par USMAN AKRAM(Lucky), étudiant de l’Université COMSATS Abbottabad [BS(TN)-6] Email : [email protected]

Share: X/Twitter LinkedIn

Recevez de nouveaux articles dans votre boîte de réception.

Aucun spam. Désabonnez-vous à tout moment.