Batch-Erstellung und -Löschung von Benutzern und Gruppen

LinuxLinuxBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Projekt lernst du, wie du Benutzerkonten für Lehrer und Schüler in einer Klassenraumserverumgebung erstellen und verwalten kannst. Du wirst ein Bash-Skript namens userctr.sh verwenden, um den Prozess des Hinzufügens und Löschens von Benutzerkonten zu automatisieren, was manuell eine mühsame Aufgabe sein kann.

👀 Vorschau

## Füge 1 Lehrerbenutzer und 6 Schülerbenutzer (stu1 bis stu6) hinzu
$ sh userctr.sh add teacher stu 6
teacher:617533
stu1:345893
stu2:183263
stu3:404525
stu4:571165
stu5:251940
stu6:716130

## Lösche 1 Lehrerbenutzer und 6 Schülerbenutzer (stu1 bis stu6)
$ sh userctr.sh del teacher stu 6

🎯 Aufgaben

In diesem Projekt wirst du lernen:

  • Wie du die notwendige Umgebung für das Projekt einrichtest
  • Wie du Funktionen zum Hinzufügen und Löschen von Benutzern und Gruppen implementierst
  • Wie du das userctr.sh-Skript testest, um sicherzustellen, dass es wie erwartet funktioniert

🏆 Errungenschaften

Nach Abschluss dieses Projekts wirst du in der Lage sein:

  • Die Wichtigkeit der Automatisierung von Benutzerverwaltungstasks zu verstehen
  • Benutzerkonten für Lehrer und Schüler mit einem Bash-Skript zu erstellen und zu verwalten
  • Sicherzustellen, dass Benutzerkonten mit den entsprechenden Einstellungen erstellt werden, wie z. B. Standard-Shell und Sudo-Rechte
  • Effizient Benutzerkonten in einer Klassenraumserverumgebung hinzuzufügen und zu löschen

Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/FileandDirectoryManagementGroup(["File and Directory Management"]) linux(("Linux")) -.-> linux/UserandGroupManagementGroup(["User and Group Management"]) linux(("Linux")) -.-> linux/VersionControlandTextEditorsGroup(["Version Control and Text Editors"]) linux/BasicFileOperationsGroup -.-> linux/touch("File Creating/Updating") linux/FileandDirectoryManagementGroup -.-> linux/cd("Directory Changing") linux/UserandGroupManagementGroup -.-> linux/useradd("User Adding") linux/UserandGroupManagementGroup -.-> linux/userdel("User Removing") linux/UserandGroupManagementGroup -.-> linux/usermod("User Modifying") linux/UserandGroupManagementGroup -.-> linux/sudo("Privilege Granting") linux/VersionControlandTextEditorsGroup -.-> linux/vim("Text Editing") subgraph Lab Skills linux/touch -.-> lab-301459{{"Batch-Erstellung und -Löschung von Benutzern und Gruppen"}} linux/cd -.-> lab-301459{{"Batch-Erstellung und -Löschung von Benutzern und Gruppen"}} linux/useradd -.-> lab-301459{{"Batch-Erstellung und -Löschung von Benutzern und Gruppen"}} linux/userdel -.-> lab-301459{{"Batch-Erstellung und -Löschung von Benutzern und Gruppen"}} linux/usermod -.-> lab-301459{{"Batch-Erstellung und -Löschung von Benutzern und Gruppen"}} linux/sudo -.-> lab-301459{{"Batch-Erstellung und -Löschung von Benutzern und Gruppen"}} linux/vim -.-> lab-301459{{"Batch-Erstellung und -Löschung von Benutzern und Gruppen"}} end

Vorbereite die Umgebung

In diesem Schritt wirst du die notwendige Umgebung für das Projekt einrichten.

  1. Öffne ein Terminal und navigiere zum Verzeichnis /home/labex/project.

  2. Erstelle in dem Verzeichnis /home/labex/project eine neue Datei namens userctr.sh mit dem folgenden Befehl:

    touch userctr.sh
  3. Öffne die Datei userctr.sh in einem Texteditor und füge am Anfang der Datei die folgende Shebang-Zeile hinzu:

    #!/bin/zsh

    Diese Zeile gibt an, dass das Skript mit der zsh-Shell ausgeführt werden soll.

Implementiere die Benutzer- und Gruppenverwaltungfunktionen

In diesem Schritt wirst du die Funktionen zum Hinzufügen und Löschen von Benutzern und Gruppen implementieren.

  1. Füge den folgenden Code zur userctr.sh-Datei hinzu:

    ## Dieses Skript wird verwendet, um Benutzerkonten für Lehrer und Schüler zu verwalten.
    
    ## Überprüfe, ob die Anzahl der Parameter korrekt ist
    if [ $## -ne 4 ]; then
      echo "Parameterfehler"
      exit 1
    fi
    
    ## Überprüfe, ob der Schülerzählparameter eine positive Ganzzahl ist und nicht größer als 10 ist
    if! [[ "$4" =~ ^[1-9][0-9]?$|^10$ ]]; then
      echo "Parameterfehler"
      exit 1
    fi
    
    ## Überprüfe, ob der Schülernamenpräfix nur Kleinbuchstaben enthält
    if! [[ "$3" =~ ^[a-z]+$ ]]; then
      echo "Parameterfehler"
      exit 1
    fi
    
    ## Funktion zur Generierung eines zufälligen 6-stelligen Passworts
    generate_password() {
      password=$(shuf -i 100000-999999 -n 1)
      echo "$password"
    }

    Dieser Code setzt die grundlegende Struktur des Skripts auf, einschließlich der Parametervalidierung und einer Funktion zur Generierung von zufälligen Passwörtern.

  2. Füge den folgenden Code zur userctr.sh-Datei hinzu, um die "add"-Operation zu verarbeiten:

    ## Füge Benutzer hinzu
    if [ "$1" == "add" ]; then
      ## Füge Lehrerbenutzer hinzu
      if! id -u "$2" >/dev/null 2>&1; then
        sudo useradd -m -s /bin/zsh "$2"
        sudo usermod -aG sudo "$2"
        password=$(generate_password)
        echo "$2:$password"
      else
        echo "$2:******"
      fi
    
      ## Füge Schülerbenutzer hinzu
      for ((i = 1; i <= $4; i++)); do
        username="$3$i"
        if! id -u "$username" >/dev/null 2>&1; then
          sudo useradd -m -s /bin/zsh "$username"
          password=$(generate_password)
          echo "$username:$password"
        else
          echo "$username:******"
        fi
      done

    Dieser Code fügt einen Lehrerbenutzer und die angegebene Anzahl von Schülerbenutzern hinzu. Wenn ein Benutzer bereits existiert, wird das Passwort des Benutzers als sechs Sternchen angezeigt.

  3. Füge den folgenden Code zur userctr.sh-Datei hinzu, um die "del"-Operation zu verarbeiten:

    ## Lösche Benutzer
    elif [ "$1" == "del" ]; then
      ## Lösche Lehrerbenutzer
      sudo userdel -rf "$2" >/dev/null 2>&1
      echo "$2" >/dev/null
    
      ## Lösche Schülerbenutzer
      for ((i = 1; i <= $4; i++)); do
        username="$3$i"
        sudo userdel -rf "$username" >/dev/null 2>&1
        echo "$username" >/dev/null
      done
    fi

    Dieser Code löscht den Lehrerbenutzer und die angegebene Anzahl von Schülerbenutzern.

  4. Speichere die userctr.sh-Datei

Teste das Skript

In diesem Schritt wirst du das userctr.sh-Skript testen, um sicherzustellen, dass es wie erwartet funktioniert.

  1. Öffne ein Terminal und navigiere zum Verzeichnis /home/labex/project.

  2. Teste die "add"-Operation, indem du folgenden Befehl ausführst:

    sh userctr.sh add teacher stu 6

    Dies sollte einen Lehrerbenutzer und sechs Schülerbenutzer erstellen und ihre zufällig generierten Passwörter anzeigen.

    teacher:617533
    stu1:345893
    stu2:183263
    stu3:404525
    stu4:571165
    stu5:251940
    stu6:716130
  3. Teste die "del"-Operation, indem du folgenden Befehl ausführst:

    sh userctr.sh del teacher stu 6

    Dies sollte den Lehrerbenutzer und die sechs Schülerbenutzer löschen.

Herzlichen Glückwunsch! Du hast das Projekt abgeschlossen. Du kannst jetzt das userctr.sh-Skript verwenden, um Benutzerkonten für Lehrer und Schüler in deinen Klassenraumservern zu verwalten.

✨ Lösung prüfen und üben

Zusammenfassung

Herzlichen Glückwunsch! Du hast dieses Projekt abgeschlossen. Du kannst in LabEx weitere Labs absolvieren, um deine Fähigkeiten zu verbessern.