Linux-Administrationslab: Benutzer, Berechtigungen, cron und systemd im Browser

Dieses Lab gibt jeder lernenden Person einen eigenen Ubuntu-Server, um den sie sich kümmert. Es gibt vier kleine Aufgaben, wie sie eine Systemadministratorin oder ein Systemadministrator in der ersten Woche erledigt: einen Benutzer und eine Gruppe anlegen, die Berechtigungen eines gemeinsamen Ordners setzen, einen Job mit cron planen und einen systemd-Dienst schreiben und aktivieren. Auf dem Computer der lernenden Person wird nichts installiert, und ein Skript bewertet das Ergebnis, Sie müssen also nicht jede Maschine einzeln durchsehen.

Was Lernende hier lernen

Benutzer und Gruppen: eine gewöhnliche Gruppe und einen gewöhnlichen Benutzer mit Home-Verzeichnis und Login-Shell anlegen und den Benutzer in die Gruppe aufnehmen, ohne ihm Administratorrechte zu geben. Dateiberechtigungen: Eigentümer, Gruppe und alle anderen sowie das setgid-Bit, durch das Dateien, die in einem gemeinsamen Ordner entstehen, der Gruppe des Ordners gehören. Zeitplanung: ein Job im System-cron-Ordner, der ein Benutzerfeld hat, das eine persönliche Crontab nicht hat, und eine Datei, die cron stillschweigend ignoriert, wenn sie falsch geschrieben ist. Dienste: eine systemd-Unit-Datei, was sie braucht, um bei einem Fehler neu gestartet und beim Systemstart gestartet zu werden, und der Link, den das Aktivieren eines Dienstes erzeugt.

Die vier Aufgaben

Aufgabe 1 ist eine Gruppe namens devs und ein Benutzer namens maria darin. Aufgabe 2 ist der Ordner /srv/projects, den Mitglieder der Gruppe nutzen können und sonst niemand. Aufgabe 3 ist ein täglicher Job um 02:30 Uhr, als root ausgeführt, für ein Backup-Skript, das das Lab mitbringt. Aufgabe 4 ist ein Dienst namens heartbeat für ein Skript, das das Lab mitbringt. Die README, die das Lab im Home-Verzeichnis ablegt, nennt, was in jeder zu tun ist, und enthält keine Befehle, keine Berechtigungen und keine Unit-Datei.

Im Browser ausführen

VM-Labs werden in einem Modul als Lab-Aufgabe gestellt, und das Beispiel finden Sie auf der Seite des Labs. Die Maschine ist klein: eine CPU, 1 GB Arbeitsspeicher und 10 GB Speicherplatz.

  1. Lab hinzufügen. Fügen Sie in einem Modul, das Sie unterrichten, eine Aufgabe hinzu und wählen Sie die Karte „Ubuntu-VM-Lab“. Die Seite zeigt statt einer Compose-Datei eine kurze Beschreibung der Maschine.
  2. Mit dem Beispiel beginnen. Die Seite bietet fertige Labs als Ausgangspunkt an. Wählen Sie „Linux-Administration“. Ein Beispiel ersetzt den Text, und „Rückgängig“ bringt Ihren eigenen zurück.
  3. Veröffentlichen und eigene Kopie starten. Veröffentlichen Sie das Lab und wählen Sie dann „Starten“. Das Einrichtungsskript des Labs installiert cron aus dem Ubuntu-Archiv und schreibt beim ersten Start der VM, nach wenigen Sekunden, die beiden kleinen Skripte und die README.
  4. Terminal öffnen. Öffnen Sie das Terminal der VM und lesen Sie README.md im Home-Verzeichnis: Sie nennt die vier Aufgaben und enthält keine Lösungen.

Eine Grundlagenlektion zu diesem Lab

Linux Administration Basics ist eine kleine Lektion, die in diesem Lab, einer Ubuntu-VM, durchgearbeitet wird: Jeder Schritt wird erklärt und hat eine Schaltfläche „Ausführen“, die seinen Befehl im Terminal der Maschine eintippt und zeigt, was ausgegeben wurde. Die lernende Person fragt, wer sie ist, findet heraus, dass die Gruppe team noch nicht existiert, liest an den Berechtigungen ab, wer den Projektordner nutzen darf, und sieht, welche geplanten Jobs es gibt.

Die Lektion schaut sich nur um und überlässt die eigentliche Aufgabe des Labs, die vier Aufgaben zu erledigen, der lernenden Person; sie gibt also keine Lösungen preis. Sie ist bewusst klein: Sie zeigt einer Lehrkraft, was eine in einem Lab durchgearbeitete Lektion ist, und das Lab erledigt den Rest. Kopieren Sie sie in ein eigenes Modul, um sie zu ändern.

So wird bewertet

Das Lab hat eine Prüfung. Sie läuft nach einem frischen Start auf einer Kopie der gespeicherten Maschine und sieht daher nur, was die lernende Person gespeichert hat. Sie geht die vier Aufgaben der Reihe nach durch und hält bei der ersten falschen an. Sie liest den tatsächlichen Zustand: den Benutzer und die Gruppe, Eigentümer und Modus des Ordners und eine Datei, die der neue Benutzer darin angelegt hat, und eine von jemandem außerhalb der Gruppe, die cron-Datei in /etc/cron.d sowie die Unit-Datei mit dem Link, den das Aktivieren des Dienstes erzeugt. Eine Benutzer-Crontab, ein für alle geöffneter Ordner, ein Dienst, der gestartet, aber nie aktiviert wurde, und eine Kopie der Unit-Datei anstelle des Links bestehen nicht, und die erste Zeile der Ausgabe der Prüfung nennt die Aufgabe und den Grund.

  1. Zuweisen. Weisen Sie das Lab wie jede Aufgabe zu, auf Wunsch mit einem Fälligkeitsdatum. Jede lernende Person erhält eine eigene VM, die zwischen den Sitzungen erhalten bleibt.
  2. Prüfung ausführen. Wählen Sie in der Zeile einer lernenden Person in der Klassenliste „Prüfung ausführen“. Dabei startet eine Kopie ihrer gespeicherten Maschine, die nicht zurückgespeichert wird; das Prüfskript des Labs läuft als root, und die Seite zeigt, ob die Prüfung bestanden wurde, was sie ausgegeben hat und wann. Die lernende Person erfährt das Ergebnis nicht.
  3. Bewerten. Lesen Sie die erste Zeile der Ausgabe der Prüfung: Sie nennt die erste Aufgabe, die nicht stimmt, und den Grund. Geben Sie die Arbeit mit einer Begründung zur Überarbeitung zurück, wenn mehr nötig ist.

Die Definition auf GitHub

Die Datei ist die vollständige Lab-Definition, derselbe Text, den die Plattform ausführt: Größe, Einrichtungsskript, README und Prüfung. Kopieren Sie sie und fügen Sie eine eigene Aufgabe hinzu, etwa eine Festplatte oder eine Firewall-Regel, um ein umfangreicheres Lab zu erstellen.

Häufige Fragen

Führt die Prüfung den cron-Job aus oder startet sie den Dienst?
Nein. Sie liest, was gespeichert wurde: Eigentümer, Zeilenende und die eine Job-Zeile der cron-Datei sowie die Unit-Datei und den Link, den das Aktivieren erzeugt. Ob der Job um 02:30 Uhr ausgelöst wird, ist Sache von cron, sobald die Datei stimmt.
Können Lernende die echten Administrationsbefehle nutzen?
Ja, das ist der Sinn. Die lernende Person hat sudo auf einer echten Ubuntu-Maschine, daher funktionieren useradd, chmod und systemctl wie geschrieben. Die Maschine erreicht nur das Ubuntu-Archiv, PyPI, npm und GitHub und sonst nichts im Internet.
Wird das Linux-Administrationslab automatisch bewertet?
Ja. Ein Skript prüft nach einem frischen Start eine Kopie der gespeicherten Maschine, geht die vier Aufgaben der Reihe nach durch und hält bei der ersten falschen an. Die erste Zeile seiner Ausgabe nennt die fehlgeschlagene Aufgabe und den Grund, Sie müssen also nicht jede Maschine einzeln durchsehen.