Linux Benutzer · 11 min read · Dec 15, 2025

Wie man Benutzer zu Linux OS aus einer Textdatei hinzufügt

Wie man Benutzer zu Linux OS aus einer Textdatei hinzufügt

Dieses Tutorial handelt von einem Bash-Skript, um Benutzer hinzuzufügen, zu löschen und zu überprüfen, entweder aus einer Textdatei; es kann auch Benutzer manuell hinzufügen, löschen und ändern. Dieses Skript kann verwendet werden, um hinzuzufügen, zu löschen und zu überprüfen der Benutzer im Linux OS, indem die Benutzerinformationen aus einer beliebigen Textdatei abgerufen werden, und dieses Skript kann auch Benutzer manuell hinzufügen, löschen oder überprüfen. Ich habe beide Funktionen in einer Skriptdatei zusammengefasst. Die Textdatei kann vom Administrator angegeben werden.

:-) !!!Das Skript ist völlig benutzerfreundlich!!! :-)

Sie finden das Skript am Ende dieses Tutorials.

Starten des Skripts

Wenn Sie das Skript starten, wird ein Menü wie folgt angezeigt:

MENÜ

  1. BENUTZER HINZUFÜGEN

  2. Benutzer überprüfen

  3. Benutzer löschen

4. BEENDEN

1. Benutzer hinzufügen

Wählen Sie jetzt die Option

1. BENUTZER HINZUFÜGEN

aus dem Menü, indem Sie

“1”

von der Tastatur drücken.

Jetzt bestätigt das Skript, dass der Benutzer root sein muss, und wir wissen, dass die UID von root null (0) ist. Zuerst vergleiche ich die UID des aktuellen Benutzers mit null (0). Wenn die UID nicht mit der UID von root übereinstimmt, wird die folgende Nachricht angezeigt:

**Sie müssen der Root-Benutzer sein, um dieses Skript auszuführen!

Und wenn die

UID

mit der UID von root übereinstimmt, wird die folgende Nachricht angezeigt und das Skript wird ausgeführt:

*Identität verifiziert_ Sie sind der Root*

Wir können die UID des aktuellen Benutzers überprüfen, indem wir den folgenden Befehl im Terminal eingeben:

echo $UID

Wenn der Benutzer root ist, wird die Funktion 1.BENUTZER HINZUFÜGEN ausgeführt.

Jetzt fragt das Skript den Benutzer, ob er/sie die Benutzer manuell hinzufügen möchte oder ob das Skript die Benutzerinformationen aus der Textdatei abrufen soll. Dazu wird das folgende Menü angezeigt:

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

“Bitte wählen Sie den Modus!!!

  1. Benutzer manuell hinzufügen
2. Benutzer automatisch aus der Textdatei lesen

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

Wenn der Benutzer 1. Benutzer manuell hinzufügen auswählt, wird das Skript nach dem Benutzernamen, der Gruppe und dem Passwort fragen; es wird die folgenden Befehle für den Benutzernamen und die Gruppe verwenden:

read usr_name read usr_group

Jetzt wird es mit den obigen Informationen den Benutzer mit dem folgenden Befehl hinzufügen:

useradd -g $usr_group -m $usr_name

Für das Passwort wird der folgende Befehl verwendet:

passwd $usr_name

Wenn der Benutzer die Option 2. Benutzer automatisch aus der Textdatei lesen auswählt, sucht das Skript die Textdatei und überprüft, ob sie existiert, dann wird es die Informationen wie Benutzername, Gruppe, Passwort aus der Textdatei lesen.

Jetzt wird das Skript das aktuelle Arbeitsverzeichnis anzeigen, in dem sich die Textdatei befinden sollte, indem es den folgenden Befehl verwendet:

echo $(pwd)/users.txt

Jetzt fragt das Skript, ob der obige Pfad der Textdatei korrekt ist oder ob Sie den Dateipfad manuell eingeben möchten. Es wird die folgende Nachricht an den Benutzer anzeigen:

Möchten Sie den obigen Standard-PFAD verwenden? Ja=1 & Nein=2

Wenn der Benutzer 1 für Ja drückt, wird das Skript die Textdatei vom angezeigten Pfad laden, indem es den folgenden Befehl verwendet:

Path=$($pwd)users.txt

Wenn der Benutzer 2 für Nein drückt, wird das Skript den Benutzer auffordern, den korrekten Pfad für die Textdatei einzugeben, und den Dateipfad mit dem folgenden Befehl lesen:

read Path

Der Pfad der Textdatei wird in der Variablen “Path” gespeichert. Der folgende Befehl wird verwendet, um die Existenz der Datei zu überprüfen:

if [ -e $Path ];

Es wird den Benutzernamen aus der Textdatei mit dem folgenden Befehl extrahieren:

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

Es wird die Gruppe aus der Textdatei mit dem folgenden Befehl extrahieren:

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

Es wird das Passwort aus der Textdatei mit dem folgenden Befehl extrahieren:

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

Jetzt verwendet das Skript die Variablen, die Informationen über die Benutzer enthalten, und fügt sie dem Linux OS hinzu, indem es die folgenden Befehle verwendet:

Um eine Gruppe hinzuzufügen, wird der folgende Befehl verwendet:

groupadd $Group

Um die Benutzer zur Gruppe hinzuzufügen, wird der folgende Befehl verwendet:

useradd -g $Group -m $Username

Um das Passwort für alle Benutzer festzulegen, wird der folgende Befehl verwendet:

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

Passwort ist die Variable, die dasselbe Passwort für alle Benutzer enthält, es wird aus der Textdatei extrahiert.

2. Benutzer überprüfen

Aus dem Menü:

    ### MENÜ ###
  1. BENUTZER HINZUFÜGEN
  2. Benutzer überprüfen
  3. Benutzer löschen
  4. BEENDEN

Wenn der Benutzer die Option 2. Benutzer überprüfen auswählt, wird ein weiteres Menü angezeigt:

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

Bitte wählen Sie den Modus!!!

1. Überprüfen Sie alle Benutzer des Systems
  1. Überprüfen Sie alle Benutzer der TEXT-Datei

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

Wenn der Benutzer die Option 1. Überprüfen Sie alle Benutzer des Systems auswählt, werden alle Benutzer des Systems dem Benutzer angezeigt. Ich habe den folgenden Befehl zu diesem Zweck verwendet:

cat /etc/passwd |grep bash

Das Ergebnis des Befehls wird in meinem Fall die folgenden Bash-Benutzer zurückgeben:

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

Wenn der Benutzer die Option 2. Überprüfen Sie alle Benutzer der TEXT-Datei auswählt, werden alle Benutzer, die in der Textdatei erwähnt werden, überprüft. In meinem Fall habe ich den folgenden Befehl verwendet, um die Benutzer der Textdatei zu überprüfen, die entweder dem Linux OS hinzugefügt wurden oder nicht, und wie viele Benutzer ich habe.

Um die Benutzer zu überprüfen, habe ich den folgenden Befehl in meinem Skript verwendet:

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

Überprüfen ist die Variable, die den eindeutigen Wert der Benutzernamen enthält.

Um die Gesamtzahl der Benutzer anzuzeigen, habe ich den folgenden Befehl verwendet:

echo -e “\nSie haben derzeit”
cat /etc/passwd | grep $varify |wc -l;
echo “Benutzer, die aus Ihrer Textdatei hinzugefügt wurden”

Das Ergebnis des obigen Befehls in meinem Fall ist:

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

Sie haben derzeit 8 Benutzer, die aus Ihrer Textdatei hinzugefügt wurden.

3. Benutzer löschen

Aus dem Menü:

MENÜ

  1. BENUTZER HINZUFÜGEN

  2. Benutzer überprüfen

  3. Benutzer löschen

4. BEENDEN

Wenn der Benutzer die Option 3. Benutzer löschen auswählt, wird die Überprüfung des Benutzers als root durchgeführt, bevor es weitergeht. Wenn der Benutzer erfolgreich als root verifiziert wird, wird ein weiteres Menü angezeigt:

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

Bitte wählen Sie den Modus!!!

  1. Bestimmten Benutzer löschen

  2. Alle Benutzer löschen, die in der TEXT-Datei angegeben sind
    ##############################################

Wenn der Benutzer die Option 1. Bestimmten Benutzer löschen auswählt, zeigt das Skript die aktuellen Benutzer des Systems an und fordert den Benutzer auf, den Namen des Benutzers einzugeben, der gelöscht werden soll.

Um alle Benutzer des Systems anzuzeigen, habe ich den folgenden Befehl verwendet:

cat  /etc/passwd |grep bash 

Der obige Befehl zeigt das folgende Ergebnis an:

Sie haben derzeit folgende BENUTZER zu Ihrem System hinzugefügt
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

Geben Sie den Namen des Benutzers ein, den Sie löschen möchten:

Jetzt wird der Benutzer aufgefordert, den Namen des Benutzers einzugeben, und wenn der Benutzer den Namen des Benutzers eingegeben hat, den er/sie löschen möchte, wird das Linux OS den Benutzer in der obigen Datei suchen und den Benutzer mit dem folgenden Befehl löschen:

read user_name
userdel -r $user_name

Wenn der Benutzer die Option

2. Alle Benutzer löschen, die in der TEXT-Datei angegeben sind

wählt, wird das Skript alle Benutzer löschen, die in dieser Textdatei aufgeführt sind.

Der folgende Befehl extrahiert die Benutzernamen aus der Textdatei:

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

Der folgende Skriptabschnitt geht ans Ende der Datei und beendet die Schleife:

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

Der folgende Befehl löscht die in der Textdatei aufgeführten Benutzer:

userdel -r $Username

Hinweis: Ich habe mein Skript ADDUSER.sh auf PCLinuxOS getestet, und ich hoffe, dass es auch gut auf anderen Linux-Distributionen funktioniert. Jeder kann den Code auch ändern und bitte teilen Sie ihn mit anderen.

Haben Sie eine schöne Zeit. :-)

DAS FOLGENDE IST DAS VOLLSTÄNDIGE SKRIPT ZUM HINZUFÜGEN, LÖSCHEN UND ÜBERPRÜFEN DER BENUTZER IM LINUX OS.

Erstellt von USMAN AKRAM (ajaonchat)

#!/bin/bash
###############################################################
#Dieses Skript wurde erstellt von                                    #
#                USMAN AKRAM  (ajaonchat)                     #
#                                       FA05-BTN-005          #
#                            BTN-6                            #
###############################################################
add_users()
{
    ROOT_UID=0      #Der Root-Benutzer hat eine UID von 0
    if      [ "$UID" -ne "$ROOT_UID" ]; then
            echo "Sie müssen der Root-Benutzer sein, um dieses Skript auszuführen!**"
            exit
    fi
    echo
    echo Identität verifiziert_ Sie sind der Root
    echo 

    echo -e "\n#########################################\n"
    echo -e "Bitte wählen Sie den Modus!!!\n"
    echo -e "1. Benutzer manuell hinzufügen\n
2. Benutzer automatisch aus der Textdatei lesen\n"
    echo -e "###########################################"
    read add_opt
    case $add_opt in
        1)
        echo -e "Bitte geben Sie den Benutzernamen ein:"
        read usr_name
        echo -e "Bitte geben Sie die Benutzergruppe ein"
        read usr_group
        groupadd $usr_group
            useradd -g $usr_group -m $usr_name
            echo -e "Bitte geben Sie das Passwort für den Benutzer $usr_name ein"
        passwd $usr_name ;;  
    2)
        echo
        echo "Aktuelles Arbeitsverzeichnis ist: `pwd`/users.txt"
        echo
        echo -e "Möchten Sie den obigen Standard-PFAD verwenden? Ja=1 & Nein=2"
        read yn
if [ $yn == 1 ]; then
                      Path=$($pwd)users.txt
else
        echo -n "Bitte geben Sie den korrekten Pfad zur Datei ein (z.B. /root/folder/filename.txt): "
        read Path
fi
if [ -e $Path ]; then           #Wenn die vom Benutzer angegebene Datei existiert
Username=lucky
num=1
    while  [ $Username != "EOF" ]
        do
        Username=`grep "Username00$num" $Path | cut -f2 -d:`   #Benutzernamen aus der Textdatei extrahieren
num=$(($num+1))
        Password=`grep "Password" $Path | cut -f2 -d:`       #Passwort aus der Textdatei extrahieren
        Group=`grep "Group" $Path |cut -f2 -d:`              #Gruppe aus der Textdatei extrahieren
        
        groupadd $Group
            
            #Fügt Benutzer zum System hinzu und gibt ihnen ein Passwort
           if [ $Username == "EOF" ]; then
                   clear
                   main
           fi
                #Fügt Benutzer zum System hinzu
                useradd -g $Group -m $Username 
                #Passwort für Benutzer hinzufügen
                echo $Password | /usr/bin/passwd --stdin $Username #Benutzerpasswort wird zugewiesen
    done
else  #Wenn die vom Benutzer angegebene Datei nicht existiert
    echo -e "\n#############################################"
    echo -e "\n######DATEI KANN NICHT GEFUNDEN oder LOKALISIERT WERDEN!!!!#####"
    echo -e "\n#############################################"
fi;;
*) echo -e "Sie haben die falsche Wahl getroffen!!!"
esac
        
}
varify()
{
    echo -e "#################################"
    echo -e "Bitte wählen Sie den Modus!!!\n"
    echo -e "1. Überprüfen Sie alle Benutzer des Systems\n
2. Überprüfen Sie alle Benutzer der TEXT-Datei\n"
    echo -e "#################################"
    read varify_user
case $varify_user in
        1) cat /etc/passwd |grep bash;;
        2)
    echo
        echo "Aktuelles Arbeitsverzeichnis ist: `pwd`/users.txt"
        echo
        echo -e "Möchten Sie den obigen Standard-PFAD verwenden? Ja=1 & Nein=2"
        read yn
if [ $yn == 1 ]; then
                     Path=$($pwd)users.txt
else
            echo -n "Bitte geben Sie den korrekten Pfad zur Datei ein (z.B. /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 "\nSie haben derzeit "
          cat /etc/passwd | grep $varify |wc -l
      echo  "Benutzer, die aus Ihrer Textdatei hinzugefügt wurden" 
else  #Wenn die vom Benutzer angegebene Datei nicht existiert
      echo -e "\n#############################################"
      echo -e "\n######DATEI KANN NICHT GEFUNDEN oder LOKALISIERT WERDEN!!!!#####"
      echo -e "\n#############################################"
fi ;; 
*) echo -e "Falsche Wahl"
esac
         
}

del_users()
{
#Dieses Skript wird die Benutzer aus dem HOME-DIRECTORY löschen!!!!
ROOT_UID=0      #Der Root-Benutzer hat eine UID von 0
    if      [ "$UID" -ne "$ROOT_UID" ]; then
            echo "**Sie müssen der Root-Benutzer sein, um dieses Skript auszuführen!**"
            exit
    fi
    echo
    echo Identität verifiziert_ Sie sind der Root
    echo
    
echo
    echo "Aktuelles Arbeitsverzeichnis ist: `pwd`/students.txt"
    echo

#Dies ist das Menü zur Auswahl des Modus zum Löschen der Benutzer, entweder einen ausgewählten Benutzer löschen oder alle Benutzer, die Sie in der TEXT-Datei haben...???
echo -e "####################################"
echo -e "\nBitte wählen Sie den Modus!!!\n
1. Bestimmten Benutzer löschen\n
2. Alle Benutzer löschen, die in der TEXT-Datei angegeben sind\n"
echo -e "####################################"
read del_opt
case $del_opt in
    1)
        echo -e "\n\nSie haben derzeit folgende BENUTZER zu Ihrem System hinzugefügt\n"
         cat  /etc/passwd |grep bash
        echo -e "\n\n Geben Sie den Namen des Benutzers ein, den Sie löschen möchten :"
        read user_name
        userdel -r $user_name ;; 
    2) 
       echo
       echo "Aktuelles Arbeitsverzeichnis ist: `pwd`/users.txt"
       echo
       echo -e "Möchten Sie den obigen Standard-PFAD verwenden? Ja=1 & Nein=2"
       read yn
if [ $yn == 1 ]; then
       Path=$($pwd)users.txt
else
        echo -n "Bitte geben Sie den korrekten Pfad zur Datei ein (z.B. /root/folder/filename.txt): "
        read Path
fi
if [ -e $Path ]; then       #Wenn die vom Benutzer angegebene Datei existiert
        num=1
Username=lucky      
        while  [ $Username != "EOF" ]
        do
        Username=`grep "Username00$num" $Path | cut -f2 -d:`   #Benutzernamen aus der Textdatei extrahieren
    
        if [ $Username == "EOF" ]; then
            clear
            main
        fi
                                   
                userdel -r $Username
num=$(($num+1))
done
else  #Wenn die vom Benutzer angegebene Datei nicht existiert
    echo -e "\n#############################################"
    echo -e "\n######DATEI KANN NICHT GEFUNDEN oder LOKALISIERT WERDEN!!!!#####"
    echo -e "\n#############################################"
fi ;; 
*) echo -e "Falsche Wahl" 
esac
}

main()
{
    opt=1
while [ $opt -le 4 ]
do
    clear
echo -e "           ### MENÜ ###\n 
            1. BENUTZER HINZUFÜGEN\n
            2. Benutzer überprüfen\n
            3. Benutzer löschen\n
            4. BEENDEN\n"
read opt
case $opt in
    1) add_users ;;  
    2) varify ;;  
    3) del_users ;;  
    4) exit 0 ;;  
    *) echo -e "Sie haben die falsche Wahl getroffen!!!"
esac
echo -e "\nMöchten Sie das Skript erneut ausführen? Ja=1 & Nein=4."
read opt
done
}
main
exit 0

Dies ist die Textdatei, die ich mit meinem Skript verwendet habe

#######################################################
ERSTELLT VON
                     USMAN AKRAM (LUCKY)
            FA05-BTN-005
                [email protected]
#######################################################
COMSATS Abbottabad Studenten-Konto
    ==============================
Dateiname:users.txt
Jahr:2008
Campus:CIIT-ABTD
Gruppe:btn
##Folgendes sind die Benutzer, die im HOME-Verzeichnis hinzugefügt werden!!!
Benutzername001:fa05btn001
Benutzername002:fa05btn002
Benutzername003:fa05btn003
Benutzername004:fa05btn004
Benutzername005:fa05btn005
Benutzername006:fa05btn006
Benutzername007:fa05btn007
Benutzername008:fa05btn008
Benutzername009:EOF
#es wird das Ende des Benutzers sein
überprüfen:fa05btn
Passwort:123456
Ende der Textdatei!!!!

Erstellt von USMAN AKRAM(Lucky), Student der COMSATS University Abbottabad [BS(TN)-6] Email-Adresse: [email protected]

Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.