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
AJOUTER DES UTILISATEURS
Vérifier les utilisateurs
Supprimer des utilisateurs
4. QUITTER1. 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 $UIDSi 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 !!!
- 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_groupMaintenant, en utilisant les informations ci-dessus, il ajoutera l’utilisateur en utilisant la commande suivante :
useradd -g $usr_group -m $usr_namePour le mot de passe, il utilisera la commande suivante :
passwd $usr_nameMaintenant, 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=2Si 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.txtSi 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 PathLe 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 $GroupPour ajouter les utilisateurs au groupe, il utilisera la commande suivante :
useradd -g $Group -m $UsernamePour définir le mot de passe pour tous les utilisateurs, il utilise la commande suivante :
echo $Password | /usr/bin/passwd --stdin $UsernameMot 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 ###- AJOUTER DES UTILISATEURS
- Vérifier les utilisateurs
- Supprimer des utilisateurs
- 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ème2.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 bashLe 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
AJOUTER DES UTILISATEURS
Vérifier les utilisateurs
Supprimer des utilisateurs
4. QUITTERSi 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 $UsernameRemarque : 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]
Recevez de nouveaux articles dans votre boîte de réception.
Aucun spam. Désabonnez-vous à tout moment.