Files
lpic-sim/simulator/data/lpic1_102/questions_108_set2.json
T
2026-10-30 15:40:37 +01:00

322 lines
20 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"$schema": "../schema/questions.schema.json",
"format": "lpic-sim-questions",
"meta": {
"file": "questions_108_set2.json",
"brief": "Zweiter Fragensatz zu Topic 108 Grundlegende Systemdienste (LPIC-1 102-500, Objectives 5.0)",
"author": "Björn Runden <br@runden.de>",
"owner": "Björn Runden <br@runden.de>",
"assist": "KI-unterstützt (Claude Opus 5.5), geprüft von Björn Runden <br@runden.de>",
"version": "0.1.0 (30.10.2026)"
},
"exam": "lpic1-102",
"questions": [
{
"id": "108.1-005",
"objective": "108.1",
"type": "fill",
"difficulty": 2,
"question": "Welche Option von `hwclock` überträgt die Zeit der Hardware-Uhr in die Systemzeit? (nur die Option)",
"answers": ["--hctosys", "-s"],
"explanation": "hardware clock to system: wird typischerweise beim Start ausgeführt. Gegenrichtung: `--systohc` (`-w`).",
"references": ["man 8 hwclock"]
},
{
"id": "108.1-006",
"objective": "108.1",
"type": "single",
"difficulty": 1,
"question": "Welcher Befehl gibt das heutige Datum im Format `2026-10-30` aus?",
"options": [
{ "id": "a", "text": "`date +%F`", "correct": true, "explanation": "`%F` entspricht `%Y-%m-%d`." },
{ "id": "b", "text": "`date +%D`", "correct": false, "explanation": "`%D` ergibt `10/30/26`." },
{ "id": "c", "text": "`date +%T`", "correct": false, "explanation": "`%T` ist die Uhrzeit `%H:%M:%S`." },
{ "id": "d", "text": "`date +%d.%m.%Y`", "correct": false, "explanation": "Ergibt `30.10.2026`." },
{ "id": "e", "text": "`date -u`", "correct": false, "explanation": "Zeigt Datum und Uhrzeit in UTC im Standardformat." }
],
"explanation": "Typisch für Dateinamen: `backup_$(date +%F).tar.gz`. Uhrzeit stellen: `date -s` bzw. `timedatectl set-time`.",
"references": ["man 1 date"]
},
{
"id": "108.1-007",
"objective": "108.1",
"type": "single",
"difficulty": 2,
"question": "Mit welcher Zeile trägt man in der chrony-Konfiguration einen NTP-**Pool** als Zeitquelle ein?",
"options": [
{ "id": "a", "text": "`pool 2.debian.pool.ntp.org iburst`", "correct": true, "explanation": "`pool` löst den Namen in mehrere Server auf; `iburst` beschleunigt die erste Synchronisation." },
{ "id": "b", "text": "`NTP=2.debian.pool.ntp.org`", "correct": false, "explanation": "Das ist die Syntax von `/etc/systemd/timesyncd.conf`." },
{ "id": "c", "text": "`ntpserver = 2.debian.pool.ntp.org`", "correct": false, "explanation": "Keine gültige chrony-Direktive." },
{ "id": "d", "text": "`nameserver 2.debian.pool.ntp.org`", "correct": false, "explanation": "Syntax von `/etc/resolv.conf`." },
{ "id": "e", "text": "`server: 2.debian.pool.ntp.org`", "correct": false, "explanation": "chrony nutzt keinen Doppelpunkt; einzelne Server: `server <name> iburst`." }
],
"explanation": "Dieselbe Syntax (`server`, `pool`) verwendet auch der klassische ntpd in `/etc/ntp.conf`.",
"references": ["man 5 chrony.conf"]
},
{
"id": "108.1-008",
"objective": "108.1",
"type": "single",
"difficulty": 2,
"question": "In welcher Datei konfiguriert man die NTP-Server für **systemd-timesyncd**?",
"options": [
{ "id": "a", "text": "`/etc/systemd/timesyncd.conf`", "correct": true, "explanation": "Abschnitt `[Time]`, z. B. `NTP=` und `FallbackNTP=`." },
{ "id": "b", "text": "`/etc/chrony/chrony.conf`", "correct": false, "explanation": "Konfiguration von chrony." },
{ "id": "c", "text": "`/etc/ntp.conf`", "correct": false, "explanation": "Konfiguration des klassischen ntpd." },
{ "id": "d", "text": "`/etc/adjtime`", "correct": false, "explanation": "Hält Drift und Modus (UTC/Ortszeit) der Hardware-Uhr." },
{ "id": "e", "text": "`/etc/systemd/journald.conf`", "correct": false, "explanation": "Konfiguration des Journals." }
],
"explanation": "systemd-timesyncd ist ein reiner SNTP-Client; als Server für andere Rechner taugt er nicht.",
"references": ["man 5 timesyncd.conf"]
},
{
"id": "108.1-009",
"objective": "108.1",
"type": "multi",
"difficulty": 2,
"question": "Mit welchen Befehlen prüft man, ob die Systemuhr synchronisiert ist bzw. wie groß die Abweichung ist?",
"options": [
{ "id": "a", "text": "`timedatectl`", "correct": true, "explanation": "Zeigt u. a. `System clock synchronized: yes/no` und `NTP service`." },
{ "id": "b", "text": "`chronyc tracking`", "correct": true, "explanation": "Zeigt Referenzquelle, Stratum und aktuelle Abweichung (System time offset)." },
{ "id": "c", "text": "`hwclock --systohc`", "correct": false, "explanation": "Schreibt die Systemzeit in die Hardware-Uhr, prüft nichts." },
{ "id": "d", "text": "`date -s \"12:00\"`", "correct": false, "explanation": "Stellt die Uhr manuell." },
{ "id": "e", "text": "`ntpdate pool.ntp.org`", "correct": false, "explanation": "Stellt die Uhr einmalig (veraltet); `ntpdate -q` würde nur abfragen." }
],
"explanation": "Beim klassischen ntpd zeigt `ntpq -p` die Peers mit Offset und Jitter.",
"references": ["man 1 timedatectl", "man 1 chronyc"]
},
{
"id": "108.2-007",
"objective": "108.2",
"type": "single",
"difficulty": 1,
"question": "Wie zeigt `journalctl` nur Meldungen mit Priorität **err und höher** an?",
"options": [
{ "id": "a", "text": "`journalctl -p err`", "correct": true, "explanation": "`-p` filtert nach Priorität; ein einzelner Wert schließt alle schwerwiegenderen ein." },
{ "id": "b", "text": "`journalctl -u err`", "correct": false, "explanation": "`-u` filtert nach Unit." },
{ "id": "c", "text": "`journalctl -t err`", "correct": false, "explanation": "`-t` filtert nach Syslog-Kennung (Identifier)." },
{ "id": "d", "text": "`journalctl -k err`", "correct": false, "explanation": "`-k` zeigt Kernel-Meldungen." },
{ "id": "e", "text": "`journalctl --grep err`", "correct": false, "explanation": "Durchsucht den Meldungstext nach „err“, unabhängig von der Priorität." }
],
"explanation": "Prioritäten als Namen oder Zahlen 0 (emerg) bis 7 (debug); Bereich z. B. `-p warning..err`.",
"references": ["man 1 journalctl"]
},
{
"id": "108.2-008",
"objective": "108.2",
"type": "fill",
"difficulty": 1,
"question": "Welche `journalctl`-Option zeigt nur Meldungen des **aktuellen Systemstarts**? (nur die Option)",
"answers": ["-b", "--boot", "-b 0"],
"explanation": "`-b -1` zeigt den vorherigen Start (persistentes Journal nötig); `--list-boots` listet alle.",
"references": ["man 1 journalctl"]
},
{
"id": "108.2-009",
"objective": "108.2",
"type": "single",
"difficulty": 2,
"question": "Welcher Aufruf zeigt Journal-Meldungen vom 30.10.2026 zwischen 08:00 und 09:00 Uhr?",
"options": [
{ "id": "a", "text": "`journalctl --since \"2026-10-30 08:00\" --until \"2026-10-30 09:00\"`", "correct": true, "explanation": "`--since`/`--until` (`-S`/`-U`) begrenzen den Zeitraum." },
{ "id": "b", "text": "`journalctl --from 08:00 --to 09:00`", "correct": false, "explanation": "Diese Optionen gibt es nicht." },
{ "id": "c", "text": "`journalctl -b 2026-10-30 08:00-09:00`", "correct": false, "explanation": "`-b` erwartet eine Boot-ID oder einen Index." },
{ "id": "d", "text": "`journalctl -p 08:00..09:00`", "correct": false, "explanation": "`-p` filtert nach Priorität." },
{ "id": "e", "text": "`journalctl --date 30.10.2026`", "correct": false, "explanation": "Diese Option gibt es nicht." }
],
"explanation": "Auch relative Angaben sind möglich: `--since \"1 hour ago\"`, `--since yesterday`.",
"references": ["man 1 journalctl"]
},
{
"id": "108.2-010",
"objective": "108.2",
"type": "single",
"difficulty": 2,
"question": "Was bewirkt die rsyslog-Regel `*.* @@log.example.org:514`?",
"options": [
{ "id": "a", "text": "Alle Meldungen werden per **TCP** an `log.example.org` weitergeleitet.", "correct": true, "explanation": "`@@` steht für TCP." },
{ "id": "b", "text": "Alle Meldungen werden per UDP an `log.example.org` weitergeleitet.", "correct": false, "explanation": "UDP wäre ein einzelnes `@`." },
{ "id": "c", "text": "rsyslog empfängt Meldungen von `log.example.org`.", "correct": false, "explanation": "Empfang wird über Eingabemodule (`imtcp`/`imudp`) konfiguriert." },
{ "id": "d", "text": "Nur Fehler werden weitergeleitet.", "correct": false, "explanation": "`*.*` bedeutet alle Facilities und Prioritäten." },
{ "id": "e", "text": "Die Meldungen werden in eine Datei namens `log.example.org` geschrieben.", "correct": false, "explanation": "Dateiziele beginnen mit `/`." }
],
"explanation": "Port 514 ist der Standard für syslog. Zentrale Protokollierung erschwert Angreifern das Verwischen von Spuren.",
"references": ["man 5 rsyslog.conf"]
},
{
"id": "108.2-011",
"objective": "108.2",
"type": "single",
"difficulty": 1,
"question": "Welche syslog-Facilities sind für **eigene Anwendungen** frei verwendbar?",
"options": [
{ "id": "a", "text": "`local0` bis `local7`", "correct": true, "explanation": "Reserviert für lokale bzw. eigene Zwecke." },
{ "id": "b", "text": "`kern`", "correct": false, "explanation": "Für Kernel-Meldungen reserviert." },
{ "id": "c", "text": "`authpriv`", "correct": false, "explanation": "Für vertrauliche Authentifizierungsmeldungen." },
{ "id": "d", "text": "`mail`", "correct": false, "explanation": "Für das Mailsystem." },
{ "id": "e", "text": "`cron`", "correct": false, "explanation": "Für den cron-Daemon." }
],
"explanation": "Beispiel: `logger -p local3.info \"Backup ok\"` und in rsyslog `local3.* /var/log/backup.log`.",
"references": ["man 3 syslog"]
},
{
"id": "108.2-012",
"objective": "108.2",
"type": "multi",
"difficulty": 2,
"question": "Welche Aussagen zur Verwaltung des systemd-Journals treffen zu?",
"options": [
{ "id": "a", "text": "`journalctl --vacuum-time=2weeks` löscht archivierte Journal-Dateien, die älter als zwei Wochen sind.", "correct": true, "explanation": "Ebenso `--vacuum-size=` und `--vacuum-files=`." },
{ "id": "b", "text": "`journalctl --disk-usage` zeigt, wie viel Platz das Journal belegt.", "correct": true, "explanation": "Summe aus aktiven und archivierten Dateien." },
{ "id": "c", "text": "`journalctl --rotate` löscht alle Meldungen.", "correct": false, "explanation": "Rotiert nur: Die aktiven Dateien werden archiviert, neue begonnen." },
{ "id": "d", "text": "`journalctl -r` zeigt das Journal eines entfernten Rechners.", "correct": false, "explanation": "`-r` (reverse) zeigt die neuesten Meldungen zuerst." },
{ "id": "e", "text": "`systemd-cat` liest das Journal und gibt es aus.", "correct": false, "explanation": "`systemd-cat` schreibt die Ausgabe eines Befehls **ins** Journal." }
],
"explanation": "Dauerhafte Grenzen: `SystemMaxUse=` und `MaxRetentionSec=` in `journald.conf`.",
"references": ["man 1 journalctl", "man 1 systemd-cat"]
},
{
"id": "108.2-013",
"objective": "108.2",
"type": "fill",
"difficulty": 1,
"question": "Mit welchem `journalctl`-Aufruf (Befehl und Option) zeigt man nur die **Kernel-Meldungen** aus dem Journal?",
"answers": ["journalctl -k", "journalctl --dmesg"],
"explanation": "Entspricht inhaltlich `dmesg`, aber mit Zeitstempeln und Filtern des Journals; impliziert den aktuellen Boot.",
"references": ["man 1 journalctl"]
},
{
"id": "108.3-005",
"objective": "108.3",
"type": "single",
"difficulty": 1,
"question": "Über welchen Port liefern MTAs E-Mails per SMTP **untereinander** aus?",
"options": [
{ "id": "a", "text": "25", "correct": true, "explanation": "Port 25/tcp: SMTP zwischen Mailservern." },
{ "id": "b", "text": "587", "correct": false, "explanation": "Submission: Einlieferung durch Mailprogramme (MUA) mit Authentifizierung." },
{ "id": "c", "text": "110", "correct": false, "explanation": "POP3 zum Abholen von Mails." },
{ "id": "d", "text": "143", "correct": false, "explanation": "IMAP zum Abholen bzw. Verwalten von Mails." },
{ "id": "e", "text": "993", "correct": false, "explanation": "IMAP über TLS." }
],
"explanation": "Zusätzlich 465 (SMTPS, Submission über TLS). Viele Provider sperren ausgehenden Port 25 für Endkunden.",
"references": ["man 5 services"]
},
{
"id": "108.3-006",
"objective": "108.3",
"type": "single",
"difficulty": 1,
"question": "Wie verschickt man auf der Befehlszeile den Inhalt von `bericht.txt` mit dem Betreff „Bericht“ an `anna@example.org`?",
"options": [
{ "id": "a", "text": "`mail -s \"Bericht\" anna@example.org < bericht.txt`", "correct": true, "explanation": "`mail` liest den Text von stdin; `-s` setzt den Betreff." },
{ "id": "b", "text": "`mailq -s \"Bericht\" anna@example.org < bericht.txt`", "correct": false, "explanation": "`mailq` zeigt nur die Warteschlange." },
{ "id": "c", "text": "`newaliases -s \"Bericht\" anna@example.org`", "correct": false, "explanation": "`newaliases` baut die Alias-Datenbank neu." },
{ "id": "d", "text": "`smtp anna@example.org bericht.txt`", "correct": false, "explanation": "Einen solchen Befehl gibt es standardmäßig nicht." },
{ "id": "e", "text": "`cat bericht.txt > anna@example.org`", "correct": false, "explanation": "Schreibt in eine **Datei** namens `anna@example.org`." }
],
"explanation": "`mail` übergibt die Nachricht an den lokalen MTA (über dessen `sendmail`-Schnittstelle).",
"references": ["man 1 mail"]
},
{
"id": "108.3-007",
"objective": "108.3",
"type": "fill",
"difficulty": 1,
"question": "In welcher Datei (vollständiger Pfad) stehen die systemweiten E-Mail-Aliase, z. B. `postmaster: root`?",
"answers": ["/etc/aliases"],
"explanation": "Nach Änderungen `newaliases` ausführen. Bei manchen Systemen liegt sie unter `/etc/mail/aliases`.",
"references": ["man 5 aliases"]
},
{
"id": "108.3-008",
"objective": "108.3",
"type": "single",
"difficulty": 2,
"question": "Warum bringen Postfix und Exim einen Befehl `sendmail` mit, obwohl sie nicht Sendmail sind?",
"options": [
{ "id": "a", "text": "Aus Kompatibilität: Viele Programme übergeben Mails an `/usr/sbin/sendmail`.", "correct": true, "explanation": "Die Schnittstelle ist ein De-facto-Standard; cron, mail und Skripte nutzen sie." },
{ "id": "b", "text": "Weil Postfix intern den Sendmail-Daemon startet.", "correct": false, "explanation": "Postfix ist eine eigenständige Implementierung." },
{ "id": "c", "text": "Damit sie Mails per IMAP abholen können.", "correct": false, "explanation": "Abholen ist Aufgabe von IMAP-/POP3-Servern und Clients." },
{ "id": "d", "text": "Weil `sendmail` die Konfigurationsdatei `/etc/aliases` ersetzt.", "correct": false, "explanation": "`/etc/aliases` bleibt in Gebrauch." },
{ "id": "e", "text": "Es ist nur ein Symlink auf `mailq` ohne eigene Funktion.", "correct": false, "explanation": "Umgekehrt: `mailq` und `newaliases` sind oft Links auf `sendmail`." }
],
"explanation": "`sendmail -bp` = `mailq`, `sendmail -bi` = `newaliases`, `sendmail -q` arbeitet die Warteschlange ab.",
"references": ["man 1 sendmail"]
},
{
"id": "108.3-009",
"objective": "108.3",
"type": "multi",
"difficulty": 1,
"question": "Welche Aussagen zu MTA, MDA und MUA treffen zu?",
"options": [
{ "id": "a", "text": "Thunderbird ist ein Mail User Agent (MUA).", "correct": true, "explanation": "Programm zum Lesen und Schreiben von Mails." },
{ "id": "b", "text": "Ein MTA überträgt Mails per SMTP zwischen Servern.", "correct": true, "explanation": "z. B. Postfix, Exim, Sendmail." },
{ "id": "c", "text": "Dovecot ist ein MTA.", "correct": false, "explanation": "Dovecot ist ein IMAP-/POP3-Server (mit eigenem LDA)." },
{ "id": "d", "text": "Ein MUA stellt Mails standardmäßig direkt an fremde Mailserver zu.", "correct": false, "explanation": "Ein MUA übergibt an einen MTA (Submission), der zustellt." },
{ "id": "e", "text": "`mailq` verschickt Mails sofort.", "correct": false, "explanation": "`mailq` zeigt nur die Warteschlange." }
],
"explanation": "Kette: MUA → MTA (Absender) → MTA (Empfänger) → MDA (lokale Zustellung) → Postfach → MUA.",
"references": ["LPI 102-500 Objective 108.3"]
},
{
"id": "108.4-004",
"objective": "108.4",
"type": "single",
"difficulty": 2,
"question": "Wie legt ein Benutzer den Drucker `buero` als seinen **Standarddrucker** fest?",
"options": [
{ "id": "a", "text": "`lpoptions -d buero`", "correct": true, "explanation": "Schreibt den Standarddrucker in `~/.cups/lpoptions` (als root systemweit)." },
{ "id": "b", "text": "`lp -d buero`", "correct": false, "explanation": "Druckt stdin einmalig auf `buero`, ändert den Standard nicht." },
{ "id": "c", "text": "`lpq -d buero`", "correct": false, "explanation": "`lpq` zeigt die Warteschlange." },
{ "id": "d", "text": "`cupsenable -d buero`", "correct": false, "explanation": "`cupsenable` aktiviert einen Drucker." },
{ "id": "e", "text": "`lprm -d buero`", "correct": false, "explanation": "`lprm` entfernt Aufträge." }
],
"explanation": "Systemweit als Administrator auch `lpadmin -d buero`. Die Variable `PRINTER` überschreibt den Standard für eine Sitzung.",
"references": ["man 1 lpoptions"]
},
{
"id": "108.4-005",
"objective": "108.4",
"type": "fill",
"difficulty": 2,
"question": "Welcher System-V-Druckbefehl (nur der Name) entfernt Druckaufträge – das Gegenstück zu `lprm`?",
"answers": ["cancel"],
"explanation": "`cancel <auftrag>` bzw. `cancel -a <drucker>` für alle Aufträge eines Druckers.",
"references": ["man 1 cancel"]
},
{
"id": "108.4-006",
"objective": "108.4",
"type": "single",
"difficulty": 1,
"question": "Welcher Befehl zeigt alle Drucker mit ihrem Status und den Standarddrucker an?",
"options": [
{ "id": "a", "text": "`lpstat -p -d`", "correct": true, "explanation": "`-p` Druckerstatus, `-d` Standarddrucker; `lpstat -t` zeigt alles." },
{ "id": "b", "text": "`lpq -a`", "correct": false, "explanation": "Zeigt die Aufträge aller Warteschlangen." },
{ "id": "c", "text": "`lpinfo -v`", "correct": false, "explanation": "Listet verfügbare Geräte bzw. Backends für neue Drucker." },
{ "id": "d", "text": "`cupsctl`", "correct": false, "explanation": "Zeigt bzw. ändert Einstellungen des CUPS-Servers." },
{ "id": "e", "text": "`lpadmin -l`", "correct": false, "explanation": "`lpadmin` richtet Drucker ein; `-l` listet nichts." }
],
"explanation": "Die Weboberfläche unter `http://localhost:631` zeigt dieselben Informationen.",
"references": ["man 1 lpstat"]
},
{
"id": "108.4-007",
"objective": "108.4",
"type": "multi",
"difficulty": 2,
"question": "Druckaufträge für `buero` landen in der Warteschlange, werden aber nicht gedruckt. Welche Befehle helfen bei Diagnose bzw. Behebung?",
"options": [
{ "id": "a", "text": "`lpstat -t`", "correct": true, "explanation": "Zeigt Status aller Drucker (z. B. „disabled“) und Aufträge." },
{ "id": "b", "text": "`cupsenable buero`", "correct": true, "explanation": "Aktiviert einen angehaltenen Drucker wieder; danach wird gedruckt." },
{ "id": "c", "text": "`cupsreject buero`", "correct": false, "explanation": "Lässt den Drucker keine **neuen** Aufträge mehr annehmen." },
{ "id": "d", "text": "`lpadmin -x buero`", "correct": false, "explanation": "Löscht den Drucker." },
{ "id": "e", "text": "`lprm -`", "correct": false, "explanation": "Löscht alle eigenen Aufträge – behebt die Ursache nicht." }
],
"explanation": "CUPS deaktiviert einen Drucker oft selbst nach Fehlern. Details stehen in `/var/log/cups/error_log`.",
"references": ["man 8 cupsenable", "man 1 lpstat"]
}
]
}