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Ü
BENUTZER HINZUFÜGEN
Benutzer überprüfen
Benutzer löschen
4. BEENDEN1. 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 $UIDWenn 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!!!
- 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_groupJetzt wird es mit den obigen Informationen den Benutzer mit dem folgenden Befehl hinzufügen:
useradd -g $usr_group -m $usr_nameFür das Passwort wird der folgende Befehl verwendet:
passwd $usr_nameWenn 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=2Wenn 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.txtWenn 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 PathDer 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 $GroupUm die Benutzer zur Gruppe hinzuzufügen, wird der folgende Befehl verwendet:
useradd -g $Group -m $UsernameUm das Passwort für alle Benutzer festzulegen, wird der folgende Befehl verwendet:
echo $Password | /usr/bin/passwd --stdin $UsernamePasswort 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Ü ###- BENUTZER HINZUFÜGEN
- Benutzer überprüfen
- Benutzer löschen
- 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- Ü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 bashDas 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Ü
BENUTZER HINZUFÜGEN
Benutzer überprüfen
Benutzer löschen
4. BEENDENWenn 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!!!
Bestimmten Benutzer löschen
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 $UsernameHinweis: 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]
Erhalte neue Beiträge in deinem Posteingang.
Kein Spam. Jederzeit abmelden.