- Lernen
- Informatik & Informationswissenschaften
- IT, Netzwerke & Cloud
- Linux – Befehlszeile, Shellskripte und Systemverwaltung
- Dateisysteme und Netzwerke unter Linux
Speicher, Dateisysteme und Netzwerke unter Linux
AnfängerEinheit 7 von 7 in Kurs: Linux – Befehlszeile, Shellskripte und Systemverwaltung
Was du lernst
- Wissen, wo Linux Programme, Einstellungen, Protokolle und Benutzerdateien speichert, und mit speziellen Verzeichnissen und Dateien arbeiten, die sich anders verhalten als gewöhnliche.
- Die Inhalte der Verzeichnisse direkt unter dem Wurzelverzeichnis kennenDen Filesystem Hierarchy Standard nutzen, um vorherzusagen, wo Programme, Konfiguration, veränderliche Daten und Benutzerdateien liegen.
- Temporäre Verzeichnisse und das Sticky-Bit verwendenZwischen /tmp und /var/tmp wählen, erklären, wie das Sticky-Bit gemeinsam genutzte Verzeichnisse schützt, und temporäre Dateien sicher anlegen.
- Symbolische Links und Hardlinks erstellen und verwaltenSymbolische Links mit ln -s erstellen, tote Links erkennen und reparieren und erklären, worin sich Hardlinks unterscheiden.
- Gerätedateien und virtuelle Dateisysteme erkennenDateitypen in ls -l ablesen, die Pseudogeräte in /dev verwenden und Systeminformationen aus /proc und /sys lesen.
- Die Inhalte der Verzeichnisse direkt unter dem Wurzelverzeichnis kennen
- Die Speichergeräte und Partitionen in einem Linux-System identifizieren, Dateisysteme in den Verzeichnisbaum einhängen und sie beim Systemstart automatisch einhängen lassen.
- Datenträger, Partitionen und Dateisystemtypen identifizierenSpeichergeräte und Partitionen benennen, die Ausgaben von lsblk, blkid und fdisk lesen und Partitionstabellen und Dateisystemtypen unterscheiden.
- Dateisysteme einhängen und aushängenEin Dateisystem mit mount in ein Verzeichnis einhängen, eingehängte Dateisysteme anzeigen und es mit umount sicher aushängen.
- Dateisysteme beim Systemstart über /etc/fstab einhängenEinträge in /etc/fstab lesen und schreiben, die Dateisysteme anhand ihrer UUID identifizieren, und sie vor einem Neustart sicher testen.
- Datenträger, Partitionen und Dateisystemtypen identifizieren
- Prüfen, wie voll jedes Dateisystem ist, herausfinden, welche Verzeichnisse und Dateien den Speicherplatz belegen, und Speicherplatz freigeben, ohne das System zu beschädigen.
- Freien Speicherplatz und Inodes mit df prüfenDie Ausgabe von df lesen, erklären, warum sich ihre Zahlen nicht einfach addieren lassen, und erkennen, wann Inodes statt Bytes ausgehen.
- Speicherplatzverbraucher finden und sicher aufräumenMit du, sort und find große Verzeichnisse und Dateien finden, erklären, warum du und df unterschiedliche Werte anzeigen, und Speicherplatz sicher freigeben.
- Freien Speicherplatz und Inodes mit df prüfen
- Adressen, Schnittstellen und Routen erklären, die Netzwerkkonfiguration eines Rechners mit ip und ss auslesen und ändern und den Schritt finden, an dem eine Verbindung fehlschlägt.
- Netzwerkschnittstellen, IP-Adressen und Routen erklärenNetzwerkschnittstellen, IPv4- und IPv6-Adressen mit Präfixen, spezielle Adressbereiche, Standardgateways und Ports beschreiben und erklären, wie Hosts ihre Einstellungen erhalten.
- Die Netzwerkkonfiguration mit ip und ss auslesenSchnittstellen, Adressen und Routen mit ip addr, ip link und ip route sowie lauschende Dienste mit ss auslesen.
- Netzwerkeinstellungen ändern und Verbindungsprobleme diagnostizierenMit ip vorübergehende und mit dem Netzwerkwerkzeug der Distribution dauerhafte Änderungen vornehmen und eine Verbindung mit ping Schritt für Schritt testen.
- Netzwerkschnittstellen, IP-Adressen und Routen erklären
- Erklären, wie Linux Namen in IP-Adressen auflöst, /etc/hosts für lokale Namen nutzen und die DNS-Clienteinstellungen prüfen und testen.
- Erklären, wie Linux Namen in Adressen auflöstDNS-Namen und -Einträge, die in /etc/nsswitch.conf festgelegte Suchreihenfolge sowie die Rolle von /etc/hosts und des eigenen Hostnamens des Rechners beschreiben.
- Die DNS-Clientkonfiguration prüfen und testenDie Ausgaben von /etc/resolv.conf und resolvectl lesen, Namen mit host, dig und getent abfragen und einen Fehler bei der Namensauflösung eingrenzen.
- Erklären, wie Linux Namen in Adressen auflöst
- Dich an entfernten Rechnern anmelden und Dateien über SSH kopieren, Passwörter durch Schlüsselpaare ersetzen und den SSH-Server mit sicheren Einstellungen betreiben.
- Dich über SSH anmelden, Befehle ausführen und Dateien kopierenMit ssh verbinden, Hostschlüssel prüfen, entfernte Befehle ausführen, Dateien mit scp, sftp und rsync übertragen und Verbindungsfehler lesen.
- Die Anmeldung mit Schlüsseln einrichtenEin SSH-Schlüsselpaar mit ssh-keygen erstellen, es mit einer Passphrase und einem Agenten schützen, den öffentlichen Schlüssel auf Servern installieren und häufige Schlüsselprobleme beheben.
- Den SSH-Server betreiben und absichernDen Dienst sshd verwalten, seine Einstellungen sicher ändern, Passwortanmeldungen abschalten und seine Protokolle lesen.
- Dich über SSH anmelden, Befehle ausführen und Dateien kopieren
Dateisysteme und Netzwerke unter Linux einfach erklärt
1Dich im Linux-Dateisystem zurechtfinden
Linux-Pfade zeigen dir, wofür eine Datei gedacht ist, doch manche Namen führen zu mehr als gewöhnlichen Dateien auf dem Datenträger. Programme, Einstellungen und veränderliche Daten haben jeweils ihren Platz im Verzeichnisbaum. Für gemeinsam genutzte temporäre Verzeichnisse gilt eine besondere Löschregel; Links geben Dateien zusätzliche Namen; Geräte- und virtuelle Dateien machen das laufende System zugänglich. Wenn du diese Unterschiede kennst, kannst du besser entscheiden, wo du deine Arbeit speicherst, und verstehen, was ein Befehl liest oder ändert.
1.1 Programme, Einstellungen und veränderliche Daten finden
Jeder Linux-Pfad beginnt in einem Verzeichnisbaum mit der Wurzel /. Ein zweiter Datenträger wird beim Einhängen über ein Verzeichnis in diesen Baum eingebunden. Der Filesystem Hierarchy Standard (FHS) beschreibt den üblichen Zweck jedes Verzeichnisses; Version 3.0 stammt aus dem Jahr 2015.
Programme und Einstellungen
Der FHS trennt statische Dateien von Dateien, die sich ändern, und gemeinsam nutzbare Dateien von rechnerspezifischen. Daher liegen installierte Programme unter /usr, veränderliche Daten unter /var und die Einstellungen dieses Rechners unter /etc.
| Ort | Was dort hingehört |
|---|---|
/usr/bin, /usr/sbin | Benutzer- und Verwaltungsbefehle |
/usr/lib | Bibliotheken, die Programme verwenden |
/usr/share | Daten wie Handbücher und Symbole, die nicht an einen Prozessortyp gebunden sind |
/usr/local | Vom Administrator von Hand installierte Software |
/etc | Systemweite Konfiguration, überwiegend Text |
Die älteren Orte /bin, /sbin und /lib enthalten im FHS-Aufbau grundlegende Befehle und Bibliotheken. Viele aktuelle Distributionen verwenden die /usr-Zusammenführung: Diese Pfade sind symbolische Links nach /usr. So können /bin/ls und /usr/bin/ls dasselbe Programm erreichen. Ausführbare Binärprogramme sind in /etc ausgeschlossen, administrative Skripte dürfen dort aber liegen.
Persönliche Dateien und Laufzeitdaten
Reguläre Benutzer bewahren ihre eigenen Dateien üblicherweise in /home/NAME auf; ~ bezeichnet dein Home-Verzeichnis. Benutzereinstellungen wie ~/.bashrc sind dort versteckte Einträge. /root ist das Home-Verzeichnis des Benutzers root. Das Wurzelverzeichnis / ist der Anfang des gesamten Baums und nicht das Home-Verzeichnis dieses Benutzers.
Unter /var grenzt das zweite Verzeichnis den Zweck ein:
/var/logenthält Protokolle./var/cacheenthält Daten, die heruntergeladen oder neu erzeugt werden können./var/libenthält Programmzustände, darunter Datenbanken und Paketeinträge./var/spoolenthält Aufgaben in Warteschlangen, etwa Druckaufträge./var/tmpenthält temporäre Dateien, die einen Neustart überdauern.
/tmp ist für kürzerlebige temporäre Dateien vorgesehen. /run enthält Daten für die aktuelle Laufzeit seit dem Systemstart, etwa Sockets und Prozess-ID-Dateien, und wird beim Neustart geleert. /boot enthält den Kernel, die initiale RAM-Disk und Bootloader-Dateien. /dev, /proc und /sys machen Geräte und aktuelle Kernelinformationen zugänglich.
Einhängungen und Dienstdaten
/mnt ist der übliche Ort für eine vorübergehende Einhängung von Hand. Desktopsysteme hängen Wechseldatenträger häufig unter /media/USER/LABEL ein, unter Fedora unter /run/media/USER/LABEL. /opt enthält Zusatzsoftware in separaten Paketverzeichnissen. /srv enthält Daten, die anderen Rechnern bereitgestellt werden; manche Distributionen verwenden für Websites Orte wie /var/www.
Betrachte einen aus einem Paket installierten nginx-Server unter Debian oder Ubuntu. Seine ausführbare Datei ist /usr/sbin/nginx, seine Haupteinstellungen stehen in /etc/nginx/nginx.conf, und Anfragen werden in /var/log/nginx/access.log protokolliert. Die Dokumentation liegt unter /usr/share/doc/nginx. Der Zweck des Verzeichnisses zeigt dir, wo du eine Änderung der Einstellungen oder ein wachsendes Protokoll untersuchen kannst.
Installiere einen eigenen Befehl unter /usr/local/bin, damit er von paketverwalteten Dateien getrennt bleibt. Ein Update kann Dateien unter /usr ersetzen. Verwende für einen systemd-Dienst den Ort für überschreibende Einstellungen unter /etc/systemd/system, statt seine mitgelieferte Unit unter /usr/lib/systemd/system zu bearbeiten.
Wichtige Erkenntnisse
- Das Dateisystem ist ein Baum mit der Wurzel
/; eingehängte Laufwerke werden über Verzeichnisse eingebunden. - Verwende
/usrfür installierte Software,/etcfür Systemeinstellungen und/varfür veränderliche Daten. - Persönliche Dateien gehören in Home-Verzeichnisse;
/rootund/haben unterschiedliche Zwecke. /run,/dev,/procund/sysbeschreiben das laufende System.- Bewahre von Hand installierte Software unter
/usr/localund lokale überschreibende Diensteinstellungen unter/etcauf.
1.2 Temporäre Dateien erstellen und gemeinsam genutzte Verzeichnisse schützen
Temporäre Dateien brauchen sowohl eine geeignete Lebensdauer als auch passende Rechte. Eine Datei kann einen Neustart überdauern und dennoch später zur Bereinigung vorgesehen sein. Schutz vor dem Löschen ist etwas anderes als Schutz vor dem Lesen.
Eine Lebensdauer wählen
Verwende /tmp für kurzlebige Arbeit, die ein Programm bei seiner nächsten Ausführung nicht mehr benötigt. Der FHS empfiehlt, das Verzeichnis beim Systemstart zu leeren. Fedora und Debian 13 hängen es häufig als tmpfs ein, das Arbeitsspeicher und Auslagerungsspeicher nutzt; sein Inhalt verschwindet beim Herunterfahren. Die standardmäßige Größenbegrenzung beträgt die Hälfte des physischen Arbeitsspeichers. Eine große temporäre Aufgabe kann es daher füllen, selbst wenn auf dem Hauptdatenträger noch Platz ist.
Verwende /var/tmp, wenn temporäre Arbeit einen Neustart überdauern muss. Der FHS verlangt, dass der Inhalt beim Systemstart erhalten bleibt. Es bleibt dennoch ein temporärer Speicherort: Die ursprünglichen Bereinigungsregeln von systemd entfernen üblicherweise ungenutzte Einträge nach 10 Tagen in /tmp und nach 30 Tagen in /var/tmp. Einstellungen der Distribution und lokale Einstellungen können diese Zeiträume ändern. Speichere dauerhafte Arbeit in deinem Home-Verzeichnis oder einem anderen dauerhaften Datenverzeichnis.
Die Verzeichnisrechte ablesen
Untersuche den Verzeichniseintrag selbst:
ls -ld /tmp
Eine beispielhafte Rechtezeichenfolge ist drwxrwxrwt. Das anfängliche d bedeutet Verzeichnis. Die drei Rechtegruppen erlauben allen, es zu lesen, darin zu schreiben und es zu betreten. Das abschließende t kennzeichnet das Sticky-Bit und ersetzt das übliche Zeichen für das Ausführungsrecht anderer.
Schreibrechte an einem Verzeichnis erlauben einem Benutzer normalerweise, Einträge darin zu entfernen oder umzubenennen, auch die Dateien anderer Personen. In einem Verzeichnis mit Sticky-Bit dürfen nur der Eigentümer der Datei, der Eigentümer des Verzeichnisses oder root sie löschen und umbenennen, vorbehaltlich der üblichen Zugriffsregeln. Das Bit ist gerade deshalb nützlich, weil viele Benutzer /tmp gemeinsam nutzen.
Mina erstellt zum Beispiel /tmp/draft.txt mit dem Modus 644 in einem root gehörenden Verzeichnis mit Sticky-Bit. Tomas kann die Datei lesen, weil ihre eigenen Rechte es erlauben. Er kann sie nicht allein deshalb entfernen, weil er in /tmp schreiben darf. Mina und root können sie entfernen. Änderst du den Dateimodus auf 600, schützt das den Inhalt zusätzlich vor anderen regulären Benutzern.
Das Sticky-Bit setzen und erkennen
Auf einem gemeinsam genutzten Verzeichnis, das du verwaltest:
sudo chmod 1777 /srv/shared
Die führende 1 setzt das Sticky-Bit; die übrigen 777 erlauben allen Benutzern vollen Zugriff auf das Verzeichnis. sudo chmod +t /srv/shared fügt das Bit hinzu, ohne die anderen Rechte zu ersetzen. chmod -t entfernt es, wenn du den Modus ändern darfst.
Ein kleines t bedeutet, dass sowohl das Sticky-Bit als auch das Ausführungsrecht für andere gesetzt sind. Ein großes T bedeutet, dass das Sticky-Bit gesetzt ist, anderen aber das Ausführungsrecht fehlt. Beispielsweise erscheint der Modus 1770 als drwxrwx--T. Linux ignoriert das Sticky-Bit bei regulären Dateien; sein historischer Name stammt daher, dass Programmcode im frühen Unix im Arbeitsspeicher oder Auslagerungsspeicher festgehalten wurde.
Den Namen von mktemp wählen lassen
mktemp erstellt eine Datei mit einem eindeutigen zufälligen Namen und den Rechten 600 und gibt ihren Pfad aus. mktemp -d erstellt ein privates temporäres Verzeichnis. Speichere in einem Shellskript den ausgegebenen Namen in einer Variablen, verwende diesen Namen für die Arbeit und entferne die Datei anschließend.
Ein fester Name wie /tmp/results.txt kann bereits jemand anderem gehören oder angelegt werden, bevor dein Programm startet. Ein eindeutiger Name vermeidet diese Kollision. Das Sticky-Bit macht vorhersehbare Namen nicht sicher und eine Datei mit Modus 644 nicht privat.
Wichtige Erkenntnisse
/tmpist kurzlebig;/var/tmpüberdauert Neustarts, wird aber ebenfalls bereinigt.- Das Sticky-Bit schränkt das Löschen und Umbenennen in gemeinsam genutzten Verzeichnissen ein.
- Dateirechte steuern das Lesen; das Sticky-Bit verbirgt keine Inhalte.
- Modus 1777 verbindet offenen Verzeichniszugriff mit dem Schutz durch das Sticky-Bit;
Tbedeutet, dass anderen das Ausführungsrecht fehlt. mktemperstellt eine eindeutige private Datei;mktemp -derstellt ein Verzeichnis.
1.3 Links folgen, sie reparieren und entfernen
Ein Link bietet einen weiteren Weg zu einer Datei durch den Verzeichnisbaum. Ein symbolischer Link speichert einen Pfad. Ein Hardlink stellt einen weiteren Namen für dieselbe zugrunde liegende Datei bereit. Ihr unterschiedliches Verhalten ist wichtig, wenn der ursprüngliche Name verschoben wird oder verschwindet.
Einen symbolischen Link erstellen
Die Syntax lautet ln -s TARGET LINKNAME: zuerst das Ziel, dann der neue Name. Zum Beispiel:
ln -s /srv/manuals ~/manuals
ls -ld ~/manuals
readlink ~/manuals
ls -l beginnt die Rechtezeichenfolge eines symbolischen Links mit l und gibt einen Pfeil zu seinem Ziel aus. Die angezeigte Größe ist die Länge des gespeicherten Pfads in Byte, nicht die Größe des Zielverzeichnisses. Bei gewöhnlichen symbolischen Links unter Linux gewähren die angezeigten Rechte rwxrwxrwx keinen Zugriff auf das Ziel; es gelten weiterhin dessen eigene Rechte.
ls -ld /etc listet den Verzeichniseintrag und seine Rechte auf. ls -l /etc listet seinen Inhalt auf. Ein abschließender Schrägstrich bei einem symbolischen Link auf ein Verzeichnis bewirkt, dass dem Link gefolgt wird: ls -l manuals/ listet den Inhalt des verlinkten Verzeichnisses auf.
Einen relativen Zielpfad auflösen
Ein relativer Zielpfad beginnt beim Verzeichnis, das den Link enthält. Angenommen, /home/lee/notes.txt existiert und /home/lee/backup ist ein Verzeichnis. Führe von /home/lee aus Folgendes aus:
ln -s ../notes.txt backup/notes-link
Um dem Link zu folgen, beginne in backup, gehe mit .. eine Ebene nach oben und suche dann notes.txt. Schreibst du stattdessen ln -s notes.txt backup/notes-link, wird ein Pfad zu backup/notes.txt gespeichert. Dein Arbeitsverzeichnis beim Erstellen des Links wird nicht Teil dieses gespeicherten relativen Pfads. Ein absoluter Zielpfad vermeidet diese Mehrdeutigkeit.
Ein toter Link bleibt bestehen, nachdem sein Zielpfad verschoben oder gelöscht wurde. Beim Öffnen erscheint „No such file or directory.“ readlink LINK zeigt das gespeicherte Ziel; readlink -f LINK löst nach Möglichkeit den vollständigen Pfad auf. find . -xtype l findet tote Links unterhalb des aktuellen Verzeichnisses. Erstelle einen toten Link mit dem richtigen Ziel neu, zum Beispiel mit ln -sfn NEWTARGET LINKNAME.
Mit einem Hardlink vergleichen
printf 'hello\n' > original.txt
ln original.txt second.txt
ln -s original.txt shortcut.txt
rm original.txt
cat second.txt gibt weiterhin „hello“ aus. Ein Hardlink ist ein weiterer Verzeichniseintrag für denselben Inode, den Dateieintrag des Dateisystems. Es gibt keinen besonderen ursprünglichen Namen, der erhalten bleiben muss. cat shortcut.txt schlägt fehl, weil der gespeicherte Zielpfad nicht mehr existiert.
| Eigenschaft | Symbolischer Link | Hardlink |
|---|---|---|
| Speichert | Einen Zielpfad | Einen weiteren Namen für dieselbe Datei |
| Kann Dateisystemgrenzen überschreiten | Ja | Nein |
| Kann auf ein Verzeichnis verweisen | Ja | Nein |
| Nach dem Entfernen des Zielnamens | Kann zu einem toten Link werden | Der andere Name erreicht weiterhin die Daten |
ls -i zeigt für zwei Hardlinks auf einem Dateisystem dieselbe Inode-Nummer. Die zweite Spalte von ls -l zeigt ihre Linkanzahl. Wird der letzte Name entfernt, wird die Datei freigegeben, sobald kein Prozess sie mehr geöffnet hält.
Entferne einen symbolischen Link mit rm LINKNAME oder unlink LINKNAME. Lasse bei einem Link auf ein Verzeichnis den abschließenden Schrägstrich weg: rm manuals entfernt nur den Link. Ein rekursiver Befehl auf manuals/ kann den Inhalt des Ziels erreichen und löschen. Systempfade wie /bin, versionierte Befehlsnamen und aktivierte systemd-Dienste verwenden häufig symbolische Links.
Wichtige Erkenntnisse
ln -s TARGET LINKNAMEspeichert einen Pfad; relative Zielpfade beginnen beim Verzeichnis des Links.- Untersuche gespeicherte Ziele mit
readlink; erstelle Links neu, deren Pfade nicht mehr funktionieren. - Hardlinks teilen sich einen Inode und bleiben nutzbar, wenn ein anderer Name entfernt wird.
- Hardlinks bleiben innerhalb eines Dateisystems und verweisen nicht auf Verzeichnisse.
- Entferne einen symbolischen Link auf ein Verzeichnis ohne abschließenden Schrägstrich, um den Inhalt des Ziels zu schützen.
- Die angezeigten Rechte eines symbolischen Links ersetzen nicht die Rechte des Ziels.
1.4 Geräte und den laufenden Kernel als Dateien auslesen
Ein Pfad unter Linux kann einen Datenträger, ein Terminal oder aktuelle Kernelinformationen bezeichnen. Das erste Zeichen in ls -l zeigt dir die Art des Eintrags, bevor du ihn wie ein gewöhnliches Dokument behandelst.
Dateitypen erkennen
Die Kennzeichen sind - für eine reguläre Datei, d für ein Verzeichnis, l für einen symbolischen Link, b für ein Blockgerät, c für ein zeichenorientiertes Gerät, p für eine benannte Pipe und s für einen Socket. Ein Blockgerät wie /dev/sda1 stellt Speicher in Blöcken bereit, auf die in beliebiger Reihenfolge zugegriffen werden kann. Ein zeichenorientiertes Gerät wie /dev/tty1 stellt einen Bytestrom bereit.
Eine Geräteauflistung kann so aussehen:
brw-rw---- 1 root disk 8, 1 Oct 22 08:00 /dev/sda1
Das b bezeichnet ein Blockgerät. Die Zahlen 8, 1 ersetzen das übliche Größenfeld: Die Major- und Minor-Nummern identifizieren für den Kernel Treiber und Gerät. /dev wird normalerweise von devtmpfs im Arbeitsspeicher bereitgestellt und mithilfe von udev befüllt, sobald Hardware erscheint. Beim Einstecken eines USB-Laufwerks können /dev/sdb und /dev/sdb1 entstehen.
Schreibst du direkt auf ein Datenträgergerät, können dessen Daten ohne Rückfrage überschrieben werden. Prüfe vor einem solchen Schreibvorgang die Identität des Geräts mit lsblk.
Pseudogeräte verwenden
/dev/null verwirft geschriebene Bytes und gibt beim Lesen sofort das Dateiende zurück. Dieser Befehl unterdrückt Fehlermeldungen, während normale Ergebnisse sichtbar bleiben:
find / -name '*.conf' 2>/dev/null
2> leitet die Standardfehlerausgabe um. Alles, was dorthin gesendet wird, wird verworfen.
/dev/zero liefert Nullbytes. Beispielsweise erstellt dd if=/dev/zero of=test.img bs=1M count=100 eine reguläre, mit Nullen gefüllte Datei von 100 MiB: 104.857.600 Byte. Das Ausgabeziel ist hier test.img, kein Datenträgergerät. /dev/urandom liefert Zufallsbytes; head -c 16 /dev/urandom | base64 macht 16 davon ausgebbar.
Sobald der Zufallsgenerator von Linux initialisiert ist, liefern sowohl /dev/random als auch /dev/urandom kryptografisch sichere Zufallsbytes. Bei Kernels ab Version 5.6 wartet /dev/random in der frühen Startphase auf diese Initialisierung; /dev/urandom kann Bytes zurückgeben, bevor sie abgeschlossen ist.
Aktuelle Informationen lesen
procfs, eingehängt unter /proc, erzeugt Informationen auf Anfrage. Viele Einträge zeigen die Größe null, geben beim Lesen aber Text zurück. /proc/cpuinfo beschreibt Prozessoren, /proc/meminfo den Arbeitsspeicher und /proc/mounts listet Einhängungen auf. Nummerierte Verzeichnisse beschreiben laufende Prozesse; /proc/sys macht Kerneleinstellungen zugänglich. Werkzeuge wie ps, top und free lesen diese Informationen.
cat /proc/uptime könnte 86400.52 340000.10 ausgeben. Der erste Wert sind die Sekunden seit dem Systemstart: etwa 24 Stunden. Der zweite summiert die Leerlaufzeit über die Prozessoren und kann daher die verstrichene Zeit übersteigen.
sysfs, eingehängt unter /sys, beschreibt Geräte, Treiber und Busse. ls /sys/class/net/ listet Schnittstellen auf, ls /sys/block/ Blockgeräte und cat /sys/class/net/enp0s3/address liest die MAC-Adresse einer Schnittstelle. Schreibst du in beschreibbare Einstellungen unter /proc oder /sys, änderst du den laufenden Kernel; dafür sind normalerweise root-Rechte nötig. Konfiguriere bei einer Sicherung des gesamten Systems Ausschlüsse für /proc, /sys, /dev und /run; das laufende System erstellt sie neu.
Wichtige Erkenntnisse
- Lies das Typkennzeichen, bevor du einen Pfad wie eine gewöhnliche Datei behandelst.
- Blockgeräte stellen Speicher bereit; zeichenorientierte Geräte stellen Datenströme bereit.
/dev/nullverwirft Daten,/dev/zeroliefert Nullen und/dev/urandomliefert Zufallsbytes./procund/sysmachen aktuelle Kernelinformationen ohne gewöhnliche Dateien auf dem Datenträger zugänglich.
2Datenträger, Partitionen und eingehängte Dateisysteme untersuchen
Ein Laufwerk, eine Partition und ein Dateisystem sind unterschiedliche Speicherebenen. Lies den Gerätebaum, um Vorhandenes zu identifizieren, und hänge dann das richtige Dateisystem in ein Verzeichnis ein, damit seine Dateien zugänglich werden. Eine manuelle Einhängung gilt für den aktuellen Systemzustand; ein Eintrag in der Startkonfiguration stellt sie automatisch wieder her. Wenn du diese Ebenen der Reihe nach betrachtest, vermeidest du, das falsche Gerät zu formatieren oder eine Einhängung einzurichten, die den normalen Systemstart verhindert.
2.1 Datenträger, Partitionen und Dateisystemtypen ablesen
Ein Datenträger ist ein physisches oder virtuelles Speichergerät. Eine Partition ist ein Bereich davon. Die Partitionstabelle hält diese Bereiche fest, während ein Dateisystem innerhalb einer Partition deren Dateien und Verzeichnisse organisiert. Eine Partition kann auch Auslagerungsspeicher enthalten, der den Arbeitsspeicher unterstützt, statt gewöhnliche Dateien zu speichern.
Den Gerätenamen entschlüsseln
SATA-, SAS- und USB-Laufwerke verwenden häufig /dev/sda, /dev/sdb und so weiter; ihre Partitionen erhalten eine zusätzliche Nummer, etwa /dev/sdb1. NVMe-Namen enthalten bereits Ziffern, daher erhält eine Partition zusätzlich ein p: /dev/nvme0n1p2 ist Partition 2 von /dev/nvme0n1. SD- und eMMC-Geräte verwenden Namen wie /dev/mmcblk0p1; viele virtuelle Maschinen verwenden /dev/vda1.
Die Erkennungsreihenfolge kann diese Namen ändern. Identifiziere ein Laufwerk anhand mehrerer Merkmale, nicht anhand des gestrigen Buchstabens:
lsblk -o NAME,SIZE,MODEL,RM,TYPE,MOUNTPOINTS
lsblk -f
sudo blkid
sudo fdisk -l
lsblk zeigt den Datenträger und seine Partitionen als Baum. RM=1 bezeichnet ein als entfernbar markiertes Gerät; TYPE unterscheidet disk und part. Der Einhängepunkt / bezeichnet das Wurzeldateisystem. lsblk -f ergänzt Dateisystemtypen, Bezeichnungen und UUIDs. blkid liefert Kennungen und Typen, während fdisk -l Partitionsgrenzen und den Tabellentyp zeigt. Diese Untersuchungsbefehle partitionieren nichts neu.
Tabellentyp und Dateisystemtyp unterscheiden
| Ebene | Häufige Varianten | Bedeutung |
|---|---|---|
| Partitionstabelle | GPT, MBR/DOS | Beschreibt Bereiche des Laufwerks |
| Dateisystem | ext4, XFS, Btrfs, FAT32, exFAT, NTFS | Organisiert Dateien innerhalb eines Bereichs |
MBR erlaubt vier primäre Partitionen; eine davon kann eine erweiterte Partition mit logischen Partitionen ab Nummer 5 sein. Bei 512-Byte-Sektoren beträgt die Adressierungsgrenze 2 TiB. GPT verarbeitet größere Laufwerke und stellt üblicherweise 128 Partitionseinträge bereit. UEFI-Systeme starten über eine EFI-Systempartition, die mit FAT formatiert und häufig unter /boot/efi eingehängt ist.
Debian und Ubuntu verwenden häufig ext4; RHEL verwendet standardmäßig XFS; Fedora Workstation und openSUSE verwenden häufig Btrfs. FAT32 erscheint unter Linux als vfat und kann keine einzelne Datei von 4 GiB oder mehr enthalten. exFAT eignet sich für größere Dateien auf Wechselmedien; NTFS ist auf Windows-Datenträgern verbreitet. Allein das Vorhandensein einer Partition bedeutet nicht, dass sie bereits ein Dateisystem hat.
Die Größeneinheiten ablesen
lsblk, df -h und du -h verwenden binäre Einheiten: G steht für ein GiB oder 1.073.741.824 Byte. Laufwerkshersteller verwenden dezimale GB mit jeweils 1.000.000.000 Byte. Daher erscheint ein Laufwerk mit 500.107.862.016 Byte als 465.8G; 32.000.000.000 Byte entsprechen etwa 29.8G. lsblk -b zeigt die genaue Anzahl der Bytes. Dieser Unterschied in den Bezeichnungen ist keine verlorene Kapazität.
Um ein neues leeres Laufwerk vorzubereiten, musst du es zunächst partitionieren und anschließend ein Dateisystem erstellen, zum Beispiel mit sudo mkfs.ext4 /dev/sdb1. Prüfe vor dem Ändern von Partitionen oder Formatieren das Ziel anhand von Größe, Modell und Wechseldatenträgerstatus, vergewissere dich, dass seine Daten zerstört werden dürfen, und hänge es aus. fdisk -l listet nur auf; das interaktive fdisk schreibt Änderungen, wenn du w verwendest.
Wichtige Erkenntnisse
- Datenträger, Partitionstabelle und Dateisystem beschreiben unterschiedliche Speicherebenen.
- Bei NVMe- und SD-Partitionsnamen steht ein
pvor der Partitionsnummer. - Untersuche Datenträger mit
lsblk,blkidundfdisk -l, bevor du Änderungen vornimmst. - GPT und MBR bezeichnen Partitionstabellen; ext4 und XFS bezeichnen Dateisysteme.
- Binäres
Gund dezimales GB messen dieselben Bytes mit unterschiedlichen Einheitsgrößen. - FAT32 kann keine einzelne Datei von 4 GiB oder mehr enthalten.
2.2 Ein Dateisystem einhängen und sauber aushängen
Das Einhängen verbindet ein Dateisystem mit einem Verzeichnis, seinem Einhängepunkt. Ein unter /data eingehängtes Dateisystem wird über Pfade wie /data/report.pdf zugänglich. Der Verzeichnisbaum bleibt zusammenhängend, selbst wenn mehrere Datenträger seinen Inhalt bereitstellen.
Einhängen und untersuchen
Angenommen, lsblk -f identifiziert /dev/sdb1 als das Dateisystem, das du lesen möchtest. Erstelle ein leeres Verzeichnis als Einhängepunkt und hänge es dann ein:
sudo mkdir -p /mnt/usb
sudo mount /dev/sdb1 /mnt/usb
findmnt /mnt/usb
mount erkennt den Typ normalerweise selbst. Gib -t ext4 an, wenn du ihn ausdrücklich nennen musst. findmnt zeigt TARGET, SOURCE, FSTYPE und OPTIONS. mount ohne Argumente listet Einhängungen auf, einschließlich virtueller Dateisysteme; df -h meldet deren Speicherplatz und lsblk zeigt Einhängepunkte neben den Blockgeräten.
Das Einhängen über einem Verzeichnis verbirgt dessen vorhandenen Inhalt. Lag /mnt/usb/local.txt vorher dort, ist die Datei nicht sichtbar, solange das USB-Dateisystem eingehängt ist, und erscheint nach dem Aushängen wieder. Sie wurde weder auf das Laufwerk kopiert noch gelöscht.
Optionen für die Aufgabe wählen
Verwende -o für eine durch Kommas getrennte Optionsliste. sudo mount -o ro /dev/sdb1 /mnt/usb verhindert gewöhnliche Schreibzugriffe auf Dateien über diese Einhängung. Das ist für eine Untersuchung nützlich, obwohl das Einhängen selbst noch auf das Gerät schreiben kann. rw erlaubt Schreibzugriffe.
noexec verhindert die direkte Ausführung von Dateien auf dem eingehängten Dateisystem. Es hindert einen Interpreter nicht daran, ein Skript zu lesen: bash /mnt/usb/script.sh kann weiterhin ein lesbares Skript ausführen. Betrachte dies als Einschränkung der direkten Ausführung, nicht als vollständige Sperre gegen die Ausführung des Inhalts.
FAT und exFAT speichern keine Unix-Eigentümer. Wenn root ein solches Laufwerk einhängt, gib den gewünschten Eigentümer über Einhängeoptionen an. Prüfe beide IDs mit id -u und id -g. Wenn beide 1000 ausgeben:
sudo mount -o uid=1000,gid=1000 /dev/sdb1 /mnt/usb
cp report.pdf /mnt/usb/
Dies legt die von Linux angezeigte Eigentümer- und Gruppenzuordnung für die Einhängung fest. Das Ändern von Rechten mit chmod ist nicht derselbe Mechanismus für die Eigentümerzuordnung wie bei ext4.
Die Arbeit abschließen
Verlasse das Dateisystem und schließe Programme, die es nutzen. Führe dann aus:
sudo umount /mnt/usb
Der Befehl wird umount geschrieben. Hänge Wechselspeicher aus, bevor du ihn abziehst, damit gepufferte Schreibvorgänge das Laufwerk erreichen. Auf einem Desktop erledigt die Aktion „Auswerfen“ im Dateimanager diese Aufgabe.
Meldet der Befehl „target is busy“, nutzt ein Prozess das Dateisystem noch. Eine Shell, deren aktuelles Verzeichnis /mnt/usb ist, genügt dafür. Führe cd in dieser Shell aus, schließe offene Dateien und versuche es erneut. fuser -vm /mnt/usb oder lsof /mnt/usb hilft, Nutzer des Dateisystems zu identifizieren.
Desktopsysteme richten automatische Einhängungen von Wechselmedien normalerweise über udisks2 ein, unter /media/USER/LABEL oder unter Fedora unter /run/media/USER/LABEL. Server verwenden im Allgemeinen konfigurierte Einhängungen beim Systemstart oder manuelle Befehle. Durch Einhängungen können auch ein Dateisystemabbild, Arbeitsspeicher oder eine Netzwerkfreigabe zugänglich gemacht werden. Nach dem Erstellen von /mnt/iso stellt beispielsweise sudo mount -o loop,ro ubuntu.iso /mnt/iso ein ISO-Abbild als Verzeichnis bereit.
Wichtige Erkenntnisse
- Ein Einhängepunkt stellt das eingehängte Dateisystem dar und verbirgt vorübergehend den bisherigen Verzeichnisinhalt.
- Untersuche tatsächliche Einhängungen mit
findmnt; wähle Optionen mit-o. noexecblockiert die direkte Ausführung; Interpreter können Skripte weiterhin lesen.- Die Eigentümer- und Gruppenzuordnung bei FAT und exFAT wird über Einhängeoptionen wie
uidundgidfestgelegt. - Beende Zugriffe auf ein Dateisystem und führe
umountaus, bevor du sein Laufwerk entfernst.
2.3 Eine Einhängung nach dem Neustart wiederherstellen
Eine manuelle Einhängung erstellt keine Regel für den Systemstart. /etc/fstab liefert diese Regeln, einen Eintrag pro Dateisystem oder Auslagerungsbereich. Auf einem System mit systemd wandelt ein Generator Dateisystemeinträge in Mount-Units und Swap-Einträge in Swap-Units um.
Alle sechs Felder lesen
Ein ext4-Dateisystem für Daten kann diesen Eintrag verwenden:
UUID=3f2c9a1e-7b4d-4e8a-9c61-2d5f0b8e4a17 /data ext4 defaults,nofail 0 2
Leerzeichen oder Tabulatoren trennen die sechs Felder. Kommas verbinden Optionen innerhalb eines Feldes; setze keine Leerzeichen in diese Liste.
- Quelle: eine UUID, Bezeichnung oder ein Gerätepfad.
- Einhängepunkt: hier
/data. - Typ: hier
ext4. - Optionen: hier
defaults,nofail. - Dump-Kennzeichen: normalerweise
0, wodurch das alte Dump-Sicherungskennzeichen deaktiviert wird. - Prüfreihenfolge der Dateisysteme:
1für das Wurzeldateisystem,2für andere Dateisysteme, die geprüft werden müssen,0zum Überspringen; XFS und Btrfs verwenden normalerweise0.
Eine Zeile, die mit # beginnt, ist ein Kommentar. Ein Swap-Eintrag verwendet none als Feld für den Einhängepunkt, den Typ swap und endet üblicherweise mit 0 0.
Eine dauerhafte Kennung wählen
Ermittle die UUID des Dateisystems mit lsblk -f oder sudo blkid. Anders als ein Name wie /dev/sdb1 bleibt die UUID beim Dateisystem, wenn sich die Erkennungsreihenfolge der Laufwerke ändert. Beim Neuformatieren entsteht ein neues Dateisystem mit einer neuen UUID, aktualisiere daher anschließend seinen fstab-Eintrag.
defaults umfasst Lese- und Schreibzugriff sowie automatisches Einhängen. nofail erlaubt die Fortsetzung des Systemstarts, wenn ein optionales Laufwerk fehlt. noauto überspringt das automatische Einhängen; der Eintrag kann später trotzdem sudo mount /data ermöglichen. ro bedeutet schreibgeschützt und noexec blockiert die direkte Ausführung. user erlaubt einem normalen Benutzer, den Eintrag einzuhängen.
Einen Eintrag hinzufügen und testen
Für eine bereits vorbereitete ext4-Datenpartition:
sudo cp /etc/fstab /etc/fstab.bak
lsblk -f
sudo mkdir -p /data
Bearbeite /etc/fstab und füge die Zeile mit der tatsächlich ausgegebenen UUID hinzu. Teste dann vor dem Neustart:
sudo findmnt --verify
sudo systemctl daemon-reload
sudo mount -a
findmnt /data
findmnt --verify prüft die Tabelle, auch auf Probleme mit ihren Feldern und Quellen. Durch das Neuladen liest systemd die geänderte Konfiguration erneut ein. mount -a hängt geeignete Einträge ein, die noch nicht eingehängt sind. findmnt /data bestätigt anschließend Quelle, Typ und aktuelle Optionen. Ein erfolgreiches mount -a bedeutet nicht, dass ein noauto-Eintrag getestet wurde; hänge diesen Eintrag ausdrücklich ein.
Das Wurzelverzeichnis eines neu eingehängten ext4-Dateisystems kann root gehören. Sobald das richtige Dateisystem eingehängt ist, macht sudo chown lee:lee /data Lee zum Eigentümer dieses Verzeichnisses. Führst du dies vor dem Einhängen aus, änderst du stattdessen das darunterliegende Verzeichnis des Einhängepunkts.
Eine falsche UUID, ein falscher Typ oder ein nicht verfügbares benötigtes Gerät kann den Systemstart unterbrechen und das System im Notfallmodus zurücklassen. Korrigiere solche Fehler, während das System läuft. systemctl list-units --type=mount zeigt die daraus entstandenen aktiven Mount-Units.
Wichtige Erkenntnisse
- fstab-Einträge haben sechs Felder; Optionen bleiben in einem durch Kommas getrennten Feld zusammen.
- Die UUID eines Dateisystems bleibt bei Änderungen des Gerätenamens stabil, ändert sich aber nach dem Neuformatieren.
nofailerlaubt das Fehlen eines optionalen Laufwerks;noautoüberspringt das automatische Einhängen.- Sichere, prüfe, lade systemd neu, hänge ein und untersuche das Ergebnis vor dem Neustart.
- Ändere den Eigentümer nach dem Einhängen, damit die Änderung das eingehängte Dateisystem betrifft.
3Die Speicherplatzbelegung ermitteln und Speicherplatz freigeben
Eine Meldung über ein volles Gerät kann bedeuten, dass Speicherblöcke erschöpft sind oder dass das Dateisystem keine freien Dateieinträge mehr hat. Prüfe zuerst das Dateisystem, das den betroffenen Pfad enthält, und finde dann die verantwortlichen Dateien. Ein Teil des Speicherplatzes bleibt auch belegt, nachdem ein Dateiname verschwunden ist. Wenn du die Messwerte gemeinsam betrachtest, kannst du eine Bereinigungsmethode wählen, die die benötigte Ressource freigibt, ohne installierte Software oder Anwendungsdaten zu beschädigen.
3.1 Freien Speicherplatz und freie Inodes prüfen
df meldet den Speicherplatz eingehängter Dateisysteme. Es beantwortet die Frage: „Wie voll ist das Dateisystem, das diesen Pfad enthält?“ Es addiert nicht die Dateien eines Verzeichnisses. Dank dieses Unterschieds kannst du das betroffene Speichermedium identifizieren, bevor du nach seinen größten Inhalten suchst.
Einen Speicherplatzbericht lesen
Untersuche mit df -h /var/log das Dateisystem, das das Protokollverzeichnis enthält. Ein Bericht könnte Folgendes zeigen:
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 98G 61G 32G 66% /
/dev/vdb1 916G 210G 660G 25% /data
Hier verwenden Protokolle unter /var/log das Wurzeldateisystem, sofern dort kein separates Dateisystem eingehängt ist. Der freie Speicherplatz des Dateisystems /data hilft einem Schreibvorgang nach /var/log nicht allein deshalb, weil beide zu einem Rechner gehören.
Die Spalten beschreiben die Größe des Dateisystems, den belegten Speicherplatz, den für normale Benutzer verfügbaren Speicherplatz, den belegten Anteil in Prozent und den Einhängepunkt. GNU df berechnet Use% als Used geteilt durch Used plus Avail und rundet auf. Im Beispiel für das Wurzeldateisystem ergibt 61 geteilt durch 93 etwa 65,6 %, angezeigt als 66%. Die menschenlesbaren Zahlen selbst sind gerundet.
Size kann größer als Used + Avail sein. Ein ext4-Dateisystem reserviert normalerweise 5 % seiner Blöcke für root, damit wichtige Dienste weiterarbeiten können, wenn Benutzer den Rest füllen. Fünf Prozent von 98G sind etwa 4,9G. Diese ungenutzten reservierten Blöcke sind im für normale Benutzer verfügbaren Avail nicht enthalten; sie sind keine Dateidaten in Used. Die Reserve kann mit tune2fs -m angepasst werden, etwa auf 1 % für ein großes Dateisystem für Daten. Auch Metadaten benötigen Speicherplatz.
Eine geeignete Ansicht wählen
df -h verwendet die binären Einheiten K, M und G. df -H verwendet dezimale Potenzen von 1000. df ohne Optionen meldet normalerweise Blöcke von 1024 Byte, und df -T ergänzt den Dateisystemtyp. Um weniger Einträge für Dateisysteme im Arbeitsspeicher anzuzeigen:
df -h -x tmpfs -x devtmpfs
Ein tmpfs-Eintrag bezeichnet Speicher im Arbeitsspeicher, während efivarfs Firmware-Variablen zugänglich macht. free misst RAM und Auslagerungsspeicher und kann daher df für die Kapazität von Datenträgern nicht ersetzen. lsblk zeigt dir, wie groß ein Datenträger oder eine Partition ist, nicht wie viel freien Speicherplatz das Dateisystem darauf hat.
Auch die Dateieinträge prüfen
Ein Inode ist ein Eintrag im Dateisystem für eine Datei oder ein Verzeichnis. Namen mit Hardlinks teilen sich einen Eintrag. Ein ext4-Dateisystem hat einen festen Vorrat an Inodes, der mit dem Dateisystem erstellt wird. Sehr viele winzige Dateien können ihn aufbrauchen, während noch Gigabytes an Datenspeicher frei bleiben.
df -i /var/log
Lies IUsed, IFree und IUse%. Ist IFree null, kann das Erstellen einer neuen Datei mit „No space left on device“ fehlschlagen, selbst wenn df -h freien Speicherplatz zeigt. Das Entfernen einiger weniger großer Dateien gibt Blöcke, aber nur sehr wenige Inodes frei; das Bereinigen vieler unerwünschter Sitzungs- oder Cache-Dateien behebt einen Inode-Mangel.
Wenn der Speicher des Wurzeldateisystems voll ist, können Datenbanken stehen bleiben, Protokollierung und Updates fehlschlagen und Anmeldungen scheitern. Prüfe frühzeitig sowohl df -h PATH als auch df -i PATH. Die Berichte zeigen, welche Ressource erschöpft ist und welches eingehängte Dateisystem Aufmerksamkeit benötigt.
Wichtige Erkenntnisse
df PATHmeldet das Dateisystem, das den Pfad enthält, nicht die Gesamtsumme des Verzeichnisses.Use%ist Used geteilt durch Used plus Avail, aufgerundet.- Ungenutzte reservierte ext4-Blöcke verringern den für normale Benutzer verfügbaren Speicherplatz, ohne zu belegten Dateidaten zu werden.
- Prüfe
df -i, wenn das Erstellen von Dateien trotz freier Gigabytes fehlschlägt.
3.2 Wachsende Dateien finden und Speicherplatz sicher freigeben
Sobald df das volle Dateisystem identifiziert hat, finde mit du die Verzeichnisse, die dort Speicherplatz belegen. Untersuche sie vor dem Löschen: Anwendungszustand und ersetzbare Cache-Dateien können aus sehr unterschiedlichen Gründen groß sein.
Den Verzeichnisbaum abwärts durchsuchen
sudo du -h -d 1 /var | sort -h
sudo du -sh /var/log
-d 1 liefert Summen für eine Verzeichnisebene darunter, und -s gibt eine Gesamtsumme aus. sort -h versteht Größen wie 900M und 2.1G. Verwende sudo, um Verzeichnisse einzubeziehen, die dein reguläres Konto nicht lesen kann. Ist /var/log groß, wiederhole dort den ersten Befehl, um das wachsende Unterverzeichnis zu finden.
du -sh * überspringt Namen, die mit einem Punkt beginnen, weil das Shell-Muster * nicht auf sie zutrifft. du -h -d 1 ~ | sort -h berücksichtigt bei der Untersuchung eines Home-Verzeichnisses versteckte Verzeichnisse wie .cache und .local.
Um einzelne große Dateien auf dem Wurzeldateisystem zu finden:
sudo find / -xdev -type f -size +500M 2>/dev/null
-xdev bleibt auf dem Ausgangsdateisystem; -type f wählt reguläre Dateien; M bedeutet hier MiB. ls -lhS sortiert die Dateien eines Verzeichnisses von der größten zur kleinsten.
Unterschiedliche Summen verstehen
ls -l meldet die logische Länge einer Datei. du zählt normalerweise den zugewiesenen Speicherplatz. Eine Datei mit „hi“ und einem Zeilenvorschub ist 3 Byte lang, kann aber einen 4-KiB-Block belegen, angezeigt als 4.0K. Ein Sparse-Abbild eines virtuellen Datenträgers kann eine große logische Länge haben und dabei viel weniger tatsächlichen Speicherplatz belegen. du --apparent-size meldet stattdessen logische Längen.
Eine höhere Belegung bei df als bei der Untersuchung eines Verzeichnisses kann auch durch nicht lesbare Verzeichnisse, unter Einhängepunkten verborgene Dateien oder gelöschte, noch geöffnete Dateien entstehen. Das Löschen eines Namens gibt die Daten nicht frei, solange ein Prozess die Datei geöffnet hält.
Beispielsweise kann das Entfernen eines 20G großen laufenden Anwendungsprotokolls df unverändert lassen. Untersuche solche Dateien mit sudo lsof +L1. Ein Neustart des zugehörigen Dienstes gibt seine geöffnete Datei frei, sodass der Speicherplatz freigegeben werden kann. Um ein bekanntes entbehrliches aktives Protokoll zu leeren, ohne eine geöffnete Datei ohne Verzeichniseintrag zu hinterlassen, hält sudo truncate -s 0 /var/log/app/app.log Namen und Datei an Ort und Stelle. Dies löscht den aufgezeichneten Inhalt.
Daten mit dem zuständigen Werkzeug bereinigen
Paketwerkzeuge wissen, welche heruntergeladenen Dateien ersetzt werden können. Verwende sudo apt clean unter Debian oder Ubuntu beziehungsweise sudo dnf clean all unter Fedora oder RHEL. Prüfe die von apt autoremove oder dnf autoremove vorgeschlagenen Änderungen, bevor du ungenutzte Pakete entfernst. Räume deine eigenen unerwünschten Downloads und den Papierkorb auf. Lösche keine Dateien aus /usr, /boot oder /var/lib von Hand, um Platz zu schaffen.
Bei einem wachsenden Journal entfernt sudo journalctl --vacuum-size=1G alte archivierte Journaldateien, bis ihre Gesamtsumme innerhalb der Grenze liegt. Durch aktive Dateien kann die gesamte Journalbelegung über dieser Größe bleiben. Setze für eine dauerhafte Begrenzung SystemMaxUse=1G in /etc/systemd/journald.conf und starte systemd-journald neu.
Führe nach der Bereinigung erneut df -h PATH oder df -i PATH aus, um zu bestätigen, dass die Ressource, die den Fehler verursacht hat, wieder verfügbar ist. Wächst das Journal oder ein anderes Protokoll wiederholt, untersuche sowohl die Meldungen, die das Wachstum verursachen, als auch die Aufbewahrungseinstellungen.
Wichtige Erkenntnisse
- Grenze mit
dudas Wachstum von Verzeichnissen ein und finde mitfindgroße reguläre Dateien. - Ein Verzeichnisargument schließt versteckte Einträge ein; das Shell-Muster
*überspringt sie. - Logische Länge, zugewiesene Blöcke und Dateisystemsummen messen unterschiedliche Dinge.
- Gelöschte, noch geöffnet gehaltene Dateien können weiterhin Speicherplatz belegen; finde sie mit
lsof +L1. - Verwende Paket- und Journalwerkzeuge für deren Daten; die Journal-Bereinigung betrifft archivierte Dateien.
- Prüfe die erschöpfte Ressource nach der Bereinigung erneut und gehe wiederholtem Wachstum nach.
4Netzwerkeinstellungen mit ip konfigurieren und prüfen
Eine funktionierende Verbindung benötigt eine aktive Schnittstelle, eine Adresse und eine Route zum Ziel. Ein Dienst muss außerdem dort lauschen, wo Clients ihn erreichen können. Linux macht diese einzelnen Teile über ip und ss sichtbar, sodass du sie vor Änderungen prüfen kannst. Lies den aktuellen Zustand aus, unterscheide einen temporären Befehl von gespeicherter Konfiguration und teste von der lokalen Verbindung aus nach außen, um ein Verbindungsproblem einzugrenzen, ohne seine Ursache zu erraten.
4.1 Adressen, Netzwerke und Dienstports verstehen
Eine Netzwerkschnittstelle ist ein Verbindungspunkt, über den der Kernel Datenverkehr sendet. Es kann sich um Ethernet, WLAN, Loopback oder eine virtuelle Verbindung wie ein VPN handeln. Namen wie enp0s3, eno1 und wlp2s0 bezeichnen physische Adapter; lo ist Loopback. Manche virtuellen Systeme und Cloud-Systeme verwenden eth0.
IPv4 und sein Präfix lesen
Ethernet- und WLAN-Schnittstellen haben eine 48 Bit lange MAC-Adresse, die als sechs hexadezimale Paare geschrieben und für die Zustellung im lokalen Netzwerk verwendet wird. Eine IP-Adresse identifiziert einen Host für die Kommunikation über Netzwerkgrenzen hinweg. Eine Schnittstelle kann mehrere IP-Adressen haben.
IPv4 hat 32 Bit und wird als vier Zahlen von 0 bis 255 geschrieben. In 192.168.1.50/24 identifizieren die ersten 24 Bit das Netzwerk und acht Bit bleiben für Adressen darin. Das Netzwerk ist 192.168.1.0/24 mit der Netzmaske 255.255.255.0.
Diese acht Bit liefern 256 Adressen. Die erste bezeichnet das Netzwerk und die letzte, 192.168.1.255, ist dessen Broadcast-Adresse. Es bleiben 254 Hostadressen. Ein /26 hat sechs Hostbits: insgesamt 64 Adressen und 62 gewöhnliche Hostadressen. /24 zählt Netzwerkbits, keine Rechner.
Die privaten Bereiche sind 10.0.0.0/8, 172.16.0.0/12 und 192.168.0.0/16. Sie werden nicht öffentlich geroutet; ein Heimrouter verwendet häufig NAT, um privaten Datenverkehr auf seine öffentliche Adresse umzusetzen. 127.0.0.1 ist Loopback und bezeichnet den Rechner, auf dem der Befehl läuft. Eine link-lokale Adresse 169.254.x.x weist oft auf eine fehlgeschlagene DHCP-Konfiguration hin. Die Dokumentation verwendet 192.0.2.0/24, 198.51.100.0/24 und 203.0.113.0/24.
IPv6 erkennen
IPv6 hat 128 Bit in acht hexadezimalen Gruppen. Entferne führende Nullen innerhalb einer Gruppe und ersetze eine Folge von Nullgruppen durch ::: Aus 2001:0db8:0000:0000:0000:0000:0000:0042 wird 2001:db8::42. Verwende :: nur einmal in einer Adresse. ::1 ist Loopback; fe80:-Adressen sind auf IPv6-fähigen Ethernet- und WLAN-Verbindungen link-lokal. Lokale IPv6-Netzwerke verwenden häufig /64, und ein Host hat oft mehrere Adressen.
Netzwerke und Dienste erreichen
Ein Host sendet Datenverkehr direkt an Ziele in einem direkt verbundenen Netzwerk. Sein Standardgateway ist für Ziele zuständig, für die es keine spezifischere Route gibt. Das Gateway ist ein Router, der über die lokale Verbindung erreichbar ist. Ohne passende Route oder Standardroute sind andere Netzwerke unerreichbar.
Ein Port bezeichnet einen Dienst an einer Adresse: SSH verwendet TCP 22, DNS verwendet UDP und TCP 53, HTTP verwendet TCP 80 und HTTPS üblicherweise TCP 443. TCP stellt zuverlässige Verbindungen bereit; UDP überträgt unabhängige Nachrichten. Ein Socket-Endpunkt kombiniert eine Adresse und einen Port, etwa 192.168.1.50:22.
Die Konfiguration beziehen oder festlegen
DHCP für IPv4 überlässt einem Host vorübergehend eine Adresse, ein Präfix, ein Gateway und DNS-Einstellungen. Bei statischer Konfiguration werden feste Werte festgelegt, wie häufig bei Servern. IPv6-SLAAC bildet eine Adresse aus Informationen, die der Router bekannt gibt. DHCPv6 kann IPv6-Adressen und DNS-Server bereitstellen; Informationen über den IPv6-Standardrouter stammen aus Routerankündigungen. Eine DHCPv6-Adresse allein liefert diese Route nicht.
Wichtige Erkenntnisse
- Eine Schnittstelle kann mehrere Adressen haben; MAC- und IP-Adressen erfüllen unterschiedliche Aufgaben.
- Ein Präfix zählt Netzwerkbits: Ein gewöhnliches IPv4-
/24hat 254 nutzbare Hostadressen. - Loopback bezeichnet immer den Rechner, auf dem der Befehl läuft.
- Die Standardroute ist für Ziele ohne spezifischere Route zuständig.
- Ports bezeichnen Dienste; IP-Adressen bezeichnen Hosts und Schnittstellen.
- IPv6 erfährt Standardrouter über Routerankündigungen.
4.2 Ausgaben zu Schnittstellen, Routen und lauschenden Sockets lesen
Der Befehl ip zeigt den aktuellen Zustand des Netzwerks. Seine Objekte beschreiben unterschiedliche Teile: addr für Adressen, link für den Schnittstellenzustand, route für das Routing und neigh für lokale Nachbarn. ss zeigt Sockets und ihre lauschenden Dienste.
Eine Schnittstelle untersuchen
ip -br addr
ip addr show dev enp0s3
ip link show
Die Kurzansicht könnte enp0s3 UP 192.168.1.50/24 fe80::a00:27ff:fe3a:5c71/64 zeigen. Die Schnittstelle ist aktiv und hat eine IPv4-Adresse und eine link-lokale IPv6-Adresse. Die längere Ausgabe trennt diese Felder:
link/ether 08:00:27:3a:5c:71 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.50/24 brd 192.168.1.255 scope global dynamic enp0s3
inet6 fe80::a00:27ff:fe3a:5c71/64 scope link
link/ether gibt die MAC-Adresse an. inet leitet IPv4 ein und inet6 IPv6. Der IPv4-Wert brd ist die Broadcast-Adresse, nicht das Gateway. dynamic weist auf eine dynamisch zugewiesene Adresse hin und valid_lft zeigt, wie lange sie gültig bleibt. UP ist der administrative Zustand; LOWER_UP zeigt eine funktionierende Verbindung auf der darunterliegenden Ebene an.
ip -4 addr und ip -6 addr wählen eine Adressfamilie. ip link lässt IP-Adressen weg. hostname -I gibt die konfigurierten Adressen des Rechners aus. Wähle nicht 127.0.0.1, wenn du einem anderen Rechner eine Adresse für diesen Host gibst.
Die Route getrennt lesen
default via 192.168.1.1 dev enp0s3 proto dhcp src 192.168.1.50 metric 100
192.168.1.0/24 dev enp0s3 proto kernel scope link src 192.168.1.50 metric 100
ip route show erzeugt eine solche Ausgabe. Das lokale Netzwerk 192.168.1.0/24 ist direkt über enp0s3 erreichbar. Andere Ziele verwenden gemäß der Standardroute das Gateway 192.168.1.1. proto dhcp zeigt, woher diese Route stammt; src gibt die bevorzugte Quelladresse an.
Untersuche mit ip route get 203.0.113.10 den gewählten Weg zu einem Ziel. ip -6 route show listet IPv6-Routen auf. ip neigh zeigt ermittelte lokale Zuordnungen von IP- zu MAC-Adressen; ein Gateway-Eintrag mit FAILED bedeutet, dass die Nachbarauflösung die benötigte lokale Antwort nicht erhalten hat.
Prüfen, wo ein Dienst lauscht
sudo ss -tulnp
Die Optionen stehen für TCP, UDP, lauschend, numerische Adressen und Prozessdetails. Lies die Spalte für die lokale Adresse. 0.0.0.0:22 nimmt Datenverkehr an allen lokalen IPv4-Adressen an, während 127.0.0.1:5432 nur lokal erreichbar ist. [::]:80 bezeichnet alle IPv6-Adressen. Das Lauschen ist nur eine Voraussetzung; Netzwerkerreichbarkeit und Zugriffsregeln spielen weiterhin eine Rolle. ss -tn listet aktuelle TCP-Verbindungen auf, ohne nur lauschende Sockets auszuwählen.
Ältere Anleitungen verwenden ifconfig, route, arp und netstat. Ihre aktuellen Entsprechungen sind ip addr/ip link, ip route, ip neigh und ss. Fehlt ifconfig, fehlt ein Werkzeug, nicht das Netzwerk. Kurzformen wie ip a, ip r und ip l sind zulässige Abkürzungen.
Wichtige Erkenntnisse
- Verwende getrennte
ip-Objekte für Adressen, Verbindungen, Routen und Nachbarn. brdist eine Broadcast-Adresse; das Gateway findest du inip route.ip route get ADDRESSzeigt die für dieses Ziel gewählte Route.- Ein an Loopback gebundener lauschender Socket kann keine Verbindungen annehmen, die an die Netzwerkschnittstelle des Hosts adressiert sind.
ss -tulnpordnet lauschende Ports den zugehörigen Prozessen zu.
4.3 Einstellungen ändern und einen Verbindungsfehler eingrenzen
Ein temporärer Befehl und ein gespeichertes Netzwerkprofil erfüllen unterschiedliche Zwecke. ip ändert den laufenden Kernelzustand sofort; der Netzwerkmanager der Distribution stellt gespeicherte Einstellungen beim Systemstart wieder her und kann temporäre Änderungen schon früher ersetzen.
Eine temporäre Änderung vornehmen
An einer Übungsschnittstelle namens enp0s8:
sudo ip link set dev enp0s8 up
sudo ip addr add 192.168.50.10/24 dev enp0s8
sudo ip route add default via 192.168.50.1
Gib das Präfix an. Ohne /24 erhält eine hinzugefügte IPv4-Adresse /32, sodass die erwartete Route zum lokalen /24-Netzwerk fehlt. ip addr del entfernt die angegebene Adresse, ip route del default entfernt die Standardroute und ip link set ... down deaktiviert die Schnittstelle.
Änderst du die Schnittstelle, über die eine entfernte SSH-Sitzung läuft, kann deine Verbindung abbrechen. Verwende dafür Konsolenzugriff oder ein Konfigurationswerkzeug mit Rücksetzfunktion.
Einstellungen mit dem aktiven Netzwerkmanager speichern
Fedora, RHEL und viele Desktops verwenden NetworkManager. Finde das Profil mit nmcli device status und ändere dann seine Verbindung anhand ihres Namens:
sudo nmcli connection modify "Wired connection 1" ipv4.method manual ipv4.addresses 192.168.1.60/24 ipv4.gateway 192.168.1.1 ipv4.dns 192.168.1.1
sudo nmcli connection up "Wired connection 1"
Setzt du ipv4.method auto, kehrt das Profil zu DHCP zurück. Ubuntu verwendet häufig netplan-YAML unter /etc/netplan/; andere Systeme verwenden .network-Dateien von systemd-networkd oder /etc/network/interfaces von Debians ifupdown. Cloud-Systeme nutzen oft DHCP und cloud-init.
Eine statische netplan-Konfiguration kann so aussehen:
network:
version: 2
ethernets:
enp0s3:
dhcp4: false
addresses: [192.168.1.60/24]
routes:
- to: default
via: 192.168.1.1
nameservers:
addresses: [192.168.1.1]
Verwende zum Einrücken Leerzeichen. sudo netplan try wendet die Konfiguration an und gibt dir vor dem Zurücksetzen 120 Sekunden Zeit zur Bestätigung. sudo netplan apply wendet sie direkt an.
Eine Ebene nach der anderen testen
Beginne mit ip -br link, dann ip -br addr und danach ip route. Eine fehlende aktive Verbindung, eine fehlende geeignete Adresse und eine fehlende Standardroute sind unterschiedliche Fehler. Teste das Gateway mit ping -c 3 192.168.1.1, dann eine externe Adresse und dann einen Namen. Die Anzahl bei -c lässt ping unter Linux nach einer festen Zahl von Anfragen stoppen; verwende sonst Strg+C.
Eine Antwort meldet die Umlaufzeit, während die Zusammenfassung den Paketverlust meldet. Eine ausbleibende Echoantwort kann sowohl auf ICMP-Filterung als auch auf einen ausgefallenen Host oder eine fehlerhafte Route zurückgehen. Funktioniert eine Adresse, aber ein Name führt zu „Temporary failure in name resolution“, untersuche die Namensauflösung. Gibt ping die aufgelöste Adresse aus und erhält danach keine Antworten, war die Namensauflösung bereits erfolgreich.
tracepath oder traceroute zeigt antwortende Router entlang des Pfads. Teste auch die tatsächliche Anwendung: curl -I https://example.com fragt HTTP-Header ab. Ist eine lokale Webanfrage erfolgreich, aber entfernte Anfragen schlagen fehl, untersuche sudo ss -tlnp. Ein an 127.0.0.1:80 gebundener Dienst benötigt für den entfernten Zugriff eine Bindungsadresse, die im Netzwerk erreichbar ist, sowie die nötigen Netzwerkzugriffsregeln.
Wichtige Erkenntnisse
- Änderungen mit
ipwirken sofort und sind temporär; speichere dauerhafte Einstellungen über den aktiven Netzwerkmanager. - Gib beim Hinzufügen einer Adresse ein Präfix an.
- Teste der Reihe nach Verbindung, Adresse, Route, Gateway, externe Adresse, Name und Dienst.
- Ein Fehler bei der Namensauflösung ist etwas anderes als ein aufgelöster Name, der keine ping-Antworten erhält.
- Ein fehlgeschlagener ping allein zeigt nicht, auf welcher Verbindungsebene der Fehler liegt.
- Verwende Konsolenzugriff oder eine Rücksetzfunktion, wenn du die Einstellungen einer entfernten Verbindung änderst.
5Hostnamen mit DNS und der hosts-Datei auflösen
Ein Server kann über seine Adresse erreichbar sein, während sein Name nicht funktioniert, oder ein Rechner kann einen vertrauten Namen an eine veraltete Adresse leiten. Die Namensauflösung ist ein eigenständiger Teil einer Verbindung mit mehreren möglichen Quellen und Zwischenspeichern. Erfahre, wie lokale Namen, DNS-Einträge und Resolver-Einstellungen zusammenwirken, und wähle dann einen Test, der demselben Auflösungsweg wie die Anwendung folgt. Der Vergleich dieser Wege hilft, einen veralteten Eintrag oder einen fehlerhaften DNS-Dienst zu finden.
5.1 Einen Hostnamen durch lokale Dateien und DNS verfolgen
Namen ermöglichen es, web1.example.com zu verwenden, statt sich eine Adresse zu merken. DNS, das Domain Name System, speichert Einträge in einer verteilten Hierarchie von Domains. Ein kurzer Hostname wie web1 bezeichnet einen Rechner; sein vollqualifizierter Domainname identifiziert ihn innerhalb der gesamten Hierarchie.
Erkennen, was ein Eintrag beantwortet
| Eintrag | Bedeutung |
|---|---|
| A | IPv4-Adresse für einen Namen |
| AAAA | IPv6-Adresse für einen Namen |
| CNAME | Alias, der auf einen anderen Namen zeigt |
| MX | Mailserver für eine Domain |
| PTR | Name, der bei einer Rückwärtsauflösung aus einer Adresse ermittelt wird |
DNS-Server verwenden Port 53 sowohl über UDP als auch über TCP. Die Gültigkeitsdauer (TTL) eines Eintrags gibt in Sekunden an, wie lange Zwischenspeicher ihn behalten dürfen. Eine TTL von 3600 entspricht einer Stunde. Das Ändern eines Eintrags entfernt die ältere Antwort nicht sofort aus jedem Zwischenspeicher.
Der Resolver ist die Clientseite der Namensauflösung: Bibliothekscode und häufig ein Dienst wie systemd-resolved. Seine konfigurierten Nameserver sind normalerweise rekursive Resolver, die von einem Router, Anbieter, einer Organisation oder einem öffentlichen Dienst betrieben werden. Sie suchen Antworten und speichern sie für Clients zwischen.
Die Reihenfolge der Systemquellen prüfen
Linux-Anwendungen verwenden im Allgemeinen die Abfragequellen, die in der Zeile hosts: in /etc/nsswitch.conf konfiguriert sind. Ein einfaches Beispiel ist:
hosts: files dns
Hier bedeutet files die Datei /etc/hosts, die vor DNS geprüft wird. Andere Installationen enthalten Quellen wie resolve oder mdns4_minimal. Lies beim Vergleich zweier Systeme die tatsächliche Zeile.
/etc/hosts enthält eine Adresse, gefolgt von ihrem Hauptnamen und optionalen Aliasnamen:
127.0.0.1 localhost
::1 localhost ip6-localhost
192.168.1.20 nas.home.arpa nas
Bei der gezeigten Suchreihenfolge wird nas auf diesem Rechner zu 192.168.1.20 aufgelöst. home.arpa ist für Heimnetzwerke reserviert. Änderungen an der hosts-Datei werden ohne Neustart wirksam, betreffen aber nur den Rechner, dessen Datei du bearbeitest. Die Datei akzeptiert weder Platzhalter noch Portnummern: 192.168.1.20:8080 nas ist ungültig.
Lokale Einträge gezielt nutzen
Ein Eintrag in der hosts-Datei kann ein Gerät in einem kleinen Netzwerk benennen oder deinen Rechner vor einer öffentlichen DNS-Änderung auf einen Ersatz-Webserver verweisen. Die Zuordnung eines Namens zu 0.0.0.0 wird ebenfalls verwendet, um ihn lokal zu blockieren. Jede dieser Anwendungen ändert die Adressauflösung, nicht den Port oder die Konfiguration des Dienstes.
Angenommen, eine Website zieht um und funktioniert auf anderen Rechnern, aber nicht auf deinem. Ein alter Eintrag in /etc/hosts kann deinen Browser weiterhin an die frühere Adresse leiten, selbst wenn DNS korrekt ist. Vergleiche den lokalen Eintrag mit dem aktuell vorgesehenen Ziel, bevor du Netzwerkrouten änderst.
Der eigene Hostname des Rechners ist eine separate Einstellung. hostname gibt ihn aus; sudo hostnamectl set-hostname web1 ändert ihn. /etc/hostname speichert den konfigurierten Namen. Debian und Ubuntu ordnen ihn üblicherweise auch in /etc/hosts zu, zum Beispiel 127.0.1.1 web1. Aktualisiere nach einer Umbenennung auch diese Zuordnung. Eine Abweichung kann bei der Verwendung von sudo die Warnung „unable to resolve host web1“ verursachen. Das Ändern deines Hostnamens erstellt keinen öffentlichen DNS-Eintrag dafür.
Wichtige Erkenntnisse
- DNS-Eintragstypen beantworten unterschiedliche Fragen; A steht für IPv4 und AAAA für IPv6.
- Die TTL steuert die Speicherdauer im Cache, sodass alte Antworten nach einer Änderung bestehen bleiben können.
- Die Zeile
hosts:innsswitch.confsteuert die Abfragequellen des Systems. - Ein Eintrag in der hosts-Datei gilt lokal für einen Rechner und enthält keine Portnummer.
- Halte den konfigurierten Hostnamen und seine lokale Zuordnung in der hosts-Datei konsistent.
5.2 Resolver-Einstellungen mit tatsächlichen Abfrageergebnissen vergleichen
Verwende einen Test, der zu deiner Fragestellung passt. Eine direkte Abfrage prüft die Antwort eines DNS-Servers. Eine Systemabfrage prüft die Quellen, die Linux-Anwendungen normalerweise nutzen und die neben DNS auch lokale Dateien umfassen können.
Die Resolver-Konfiguration lesen
/etc/resolv.conf kann nameserver 192.168.1.1 und search example.com enthalten. Die Nameserver-Zeile bezeichnet einen DNS-Server; durch das Suchsuffix kann ein kurzer Name wie web1 als web1.example.com versucht werden. Der herkömmliche Resolver verwendet bis zu drei konfigurierte Nameserver, normalerweise der Reihe nach. Optionen können das Verhalten bei Zeitüberschreitungen und erneuten Versuchen einstellen.
Diese Datei wird oft von einem Netzwerkdienst erzeugt. Ein Kommentar oder symbolischer Link zeigt, wer sie verwaltet. Direkte Änderungen können bei der nächsten Netzwerkaktualisierung verschwinden. Ändere gespeicherte DNS-Werte daher über NetworkManager, netplan oder den aktiven Netzwerkmanager.
Auf einem System mit systemd-resolved verweist die Datei häufig auf /run/systemd/resolve/stub-resolv.conf und nennt 127.0.0.53. Das ist ein lokaler DNS-Stub und kein externer Server, der versehentlich durch Loopback ersetzt wurde. Er leitet Abfragen weiter und speichert Antworten zwischen. Verwende:
resolvectl status
resolvectl query example.com
resolvectl flush-caches
Der erste Befehl zeigt die tatsächlichen vorgelagerten DNS-Server einschließlich der Einstellungen pro Schnittstelle. Leere den Zwischenspeicher, wenn du bei der Untersuchung einer Änderung gespeicherte Ergebnisse verwerfen musst.
Das Abfragewerkzeug wählen
host web1.example.com fragt einen Namen bei DNS ab. host 203.0.113.10 führt eine Rückwärtsauflösung durch; host -t MX example.com fragt Maileinträge ab. dig example.com A +short gibt eine knappe IPv4-Antwort aus und dig @1.1.1.1 example.com A wählt ausdrücklich einen DNS-Server. nslookup ist ein älteres DNS-Abfragewerkzeug. Die Werkzeuge sind üblicherweise in den Paketen dnsutils oder bind-utils enthalten.
getent hosts nas folgt der Suchreihenfolge des Systems aus /etc/nsswitch.conf, wie die meisten Anwendungen. dig, host und nslookup lesen /etc/hosts nicht selbst. Eine Abfrage des Stubs von systemd-resolved kann jedoch eine Antwort zurückgeben, die der Dienst aus dieser Datei bezieht. Wähle ausdrücklich einen bekannten vorgelagerten Server, wenn du seine DNS-Daten mit der lokalen Abfrage vergleichen möchtest.
Das Ergebnis vor Änderungen auswerten
NXDOMAIN bedeutet, dass der abgefragte DNS-Server geantwortet hat, der Name existiere nicht. SERVFAIL bedeutet, dass der Server die Abfrage nicht abschließen konnte. Eine Zeitüberschreitung bedeutet, dass vor Ablauf der Frist keine brauchbare Antwort eingetroffen ist. „Name or service not known“ von einem Programm ist ein Fehler der Systemabfrage und für sich genommen kein DNS-Antwortcode.
Angenommen, ein ping an eine externe Adresse ist erfolgreich, aber die Abfrage von example.com meldet einen vorübergehenden Fehler. Untersuche den konfigurierten Resolver und vergleiche eine direkte Abfrage an ihn mit einer Abfrage an einen anderen bekannten Resolver. Eine gültige Antwort des zweiten Servers grenzt das Problem auf den konfigurierten Server, den Weg dorthin oder die lokalen Resolver-Einstellungen ein. Schlagen beide fehl, unterscheide tatsächliche Fehlerantworten von Zeitüberschreitungen, bevor du eine Firewall verantwortlich machst. DNS-Verkehr und ICMP-ping sind unterschiedlicher Datenverkehr, selbst wenn sie dasselbe Netzwerk nutzen.
Wichtige Erkenntnisse
- Einstellungen einer erzeugten
resolv.confsollten über den zuständigen Netzwerkmanager geändert werden. 127.0.0.53bezeichnet normalerweise den lokalen Stub von systemd-resolved;resolvectl statuszeigt vorgelagerte Server.- Verwende
getentfür den Abfrageweg des Systems unddig @SERVER, um einen gewählten DNS-Server abzufragen. - Eine DNS-Fehlerantwort, eine Zeitüberschreitung und ein Fehler der Systemabfrage liefern unterschiedliche Hinweise.
6Mit SSH sichere Verbindungen zu entfernten Systemen herstellen
SSH bietet dir eine entfernte Shell, eine Möglichkeit zum Ausführen einzelner Befehle und sichere Dateiübertragung. Eine erfolgreiche Verbindung umfasst zwei Identitätsprüfungen: Dein Client prüft den Server und der Server prüft dein Konto. Richte Schlüssel mit diesen Rollen vor Augen ein und teste dann die Servereinstellungen, solange du noch eine funktionierende Sitzung hast. Verbindungsfehler und wirksame Konfigurationen zu lesen hilft dir, die richtige Phase zu reparieren, ohne den Schutz durch SSH zu schwächen.
6.1 Verbinden, den Server prüfen und Dateien übertragen
SSH, Secure Shell, verschlüsselt entfernte Sitzungen und Dateiübertragungen. Der Client ssh verbindet sich mit sshd, normalerweise auf TCP-Port 22. OpenSSH ist die übliche Linux-Implementierung. Ältere Werkzeuge wie telnet und FTP übertragen Passwörter im Klartext.
Die entfernte Sitzung prüfen und öffnen
Verbinde dich mit ssh lee@web1.example.com; lasse lee@ weg, um deinen lokalen Benutzernamen zu verwenden. Für einen anderen Port verwende ssh -p 2222 lee@web1.example.com. Prüfe die Identität des entfernten Rechners, bevor du Befehle ausführst; exit oder Strg+D bringt dich zur lokalen Shell zurück.
Beim ersten Kontakt zeigt SSH einen Fingerabdruck des Hostschlüssels. Vergleiche ihn über einen vertrauenswürdigen Weg mit der Angabe des Serveradministrators oder Anbieters. Der Administrator kann ihn mit ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pub ausgeben. Durch die Annahme wird der Schlüssel zum späteren Vergleich in deiner Datei ~/.ssh/known_hosts gespeichert.
Eine Warnung über einen geänderten Hostschlüssel bedeutet, dass sich die vorgelegte Identität von der gespeicherten unterscheidet. Eine Neuinstallation oder eine wiederverwendete Adresse kann dies erklären, ebenso aber ein Angreifer. Prüfe zuerst den neuen Fingerabdruck. Sobald die Änderung bestätigt ist, entfernt ssh-keygen -R 203.0.113.10 den alten Eintrag für diese Adresse, sodass du dich verbinden und den neuen speichern kannst.
Einen Befehl ausführen, ohne angemeldet zu bleiben
ssh lee@web1.example.com 'df -h /'
Der Befehl läuft auf dem entfernten Rechner, seine Ausgabe erscheint lokal und die Verbindung endet. Eine nachfolgende lokale Pipe kann diese Ausgabe verarbeiten. Programme, die ein Terminal benötigen, darunter interaktives sudo, können ssh -t verwenden, zum Beispiel ssh -t lee@web1.example.com sudo systemctl restart nginx.
Ein Übertragungswerkzeug wählen
scp report.pdf lee@web1.example.com:/home/lee/ lädt eine Datei hoch. scp lee@web1.example.com:/home/lee/results.csv . lädt sie in das aktuelle lokale Verzeichnis herunter. Der Doppelpunkt kennzeichnet den entfernten Pfad; ohne ihn ist lee@web1.example.com ein lokaler Dateiname. -r kopiert Verzeichnisse und -P 2222 wählt einen Port, mit einem großen P. Aktuelles scp verwendet im Hintergrund SFTP.
sftp lee@web1.example.com öffnet eine interaktive Sitzung. Verwende get zum Herunterladen, put zum Hochladen, cd für das entfernte Verzeichnis, lcd für das lokale und bye zum Beenden. Für wiederholte Verzeichniskopien sendet rsync -av site/ lee@web1.example.com:/srv/site/ Änderungen über SSH; rsync muss an beiden Enden installiert sein.
Speichere wiederholt benötigte Verbindungsdaten in ~/.ssh/config:
Host web1
HostName 203.0.113.10
User lee
Port 2222
IdentityFile ~/.ssh/id_ed25519
Dann verwenden ssh web1 und scp notes.txt web1: diese Einstellungen.
Die Phase des Fehlers erkennen
„Connection refused“ weist auf eine aktive Ablehnung hin, häufig weil auf dem gewählten Port nichts lauscht. Eine Zeitüberschreitung bedeutet, dass keine Antwort eingetroffen ist; mögliche Ursachen sind Routing, Filterung oder ein ausgefallener Host. „Permission denied (publickey)“ bedeutet, dass die Verbindung die Authentifizierung erreicht hat, aber dein Konto oder der angebotene Schlüssel nicht akzeptiert wurde. ssh -v zeigt den Fortschritt bei Verbindung und Authentifizierung, sodass du die fehlgeschlagene Phase untersuchen kannst.
Wichtige Erkenntnisse
- Prüfe den Fingerabdruck des Servers, bevor du seinem ersten oder geänderten Hostschlüssel vertraust.
known_hostsspeichert Serveridentitäten, nicht die für dein Konto zugelassenen Schlüssel.- Entfernte Befehle in Anführungszeichen laufen auf dem Server; nachfolgende lokale Pipes laufen auf deinem Client.
- Ein Doppelpunkt kennzeichnet einen entfernten scp-Pfad; scp verwendet
-Pund ssh-pfür Ports. - Verwende sftp interaktiv und rsync für die wiederholte Übertragung geänderter Dateien.
- Unterscheide vor der Fehlerdiagnose Ablehnung, Zeitüberschreitung und Authentifizierungsfehler.
6.2 Ein Schlüsselpaar erstellen und den öffentlichen Schlüssel installieren
Die Schlüsselanmeldung beweist, dass dein Client einen privaten Schlüssel besitzt, der zu einem autorisierten öffentlichen Schlüssel gehört. Der Client signiert Authentifizierungsdaten; er sendet den privaten Schlüssel nicht an den Server. Die beiden Dateien haben daher unterschiedliche Ziele und Schutzanforderungen.
Das Paar erzeugen und schützen
Auf deinem eigenen Rechner:
ssh-keygen -t ed25519 -C "lee@laptop"
Wähle bei der Abfrage eine Passphrase. Die Standarddateien sind ~/.ssh/id_ed25519, der private Schlüssel, und ~/.ssh/id_ed25519.pub, der öffentliche Schlüssel. Der Text bei -C ist ein Kommentar zur Identifizierung. Ed25519 ist seit OpenSSH 9.5 der Standard von ssh-keygen; die ausdrückliche Nennung macht das Beispiel klar. Für einen älteren Server, der RSA verlangt, erzeugt ssh-keygen -t rsa -b 4096 einen 4096 Bit langen RSA-Schlüssel.
Eine Passphrase verschlüsselt die private Schlüsseldatei. Sie schützt den gespeicherten Schlüssel, falls jemand die Datei erhält; sie unterscheidet sich vom Passwort des entfernten Kontos. Automatisierte Aufgaben verwenden manchmal Schlüssel ohne Passphrase mit eingeschränkten Kontorechten. Bewahre den privaten Schlüssel geheim auf dem Client auf.
Ein SSH-Agent hält entsperrte Schlüssel im Arbeitsspeicher, damit du die Passphrase nicht für jede Verbindung erneut eingeben musst. Desktopsitzungen starten häufig einen Agenten. Füge den Schlüssel mit ssh-add ~/.ssh/id_ed25519 hinzu und gib bei Aufforderung seine Passphrase ein.
Den öffentlichen Schlüssel für ein Konto autorisieren
ssh-copy-id lee@web1.example.com
Nach der Authentifizierung am Serverkonto von Lee hängt der Befehl einen öffentlichen Schlüssel an die Datei ~/.ssh/authorized_keys dieses Kontos an. Gibt es mehrere Clientschlüssel, wählt ssh-copy-id -i ~/.ssh/id_ed25519.pub lee@web1.example.com den öffentlichen Schlüssel ausdrücklich aus. Bei der Bereitstellung in der Cloud kann er beim Erstellen des Servers installiert werden.
Jede authorized_keys-Zeile enthält einen Schlüsseltyp, kodierte Daten des öffentlichen Schlüssels und normalerweise einen Kommentar. Mehrere Schlüssel können separate Geräte oder Personen autorisieren. Ein Schlüssel in der Datei von Lee gewährt Zugriff auf das Konto von Lee, nicht auf das Konto von root. Das Entfernen seiner Zeile entzieht diesem Schlüssel dort den Zugang; entferne nach einem Bekanntwerden seinen öffentlichen Schlüssel von jedem betroffenen Server.
Eigentümer und Rechte prüfen
Auf dem Server im vorgesehenen Konto:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
Achte darauf, dass das Home-Verzeichnis nicht für die Gruppe oder andere beschreibbar ist. Bei den üblichen strengen Prüfungen lehnt sshd unsicher beschreibbare Autorisierungsdateien oder übergeordnete Verzeichnisse ab. Auf dem Client schützt Modus 600 den privaten Schlüssel; zu offene Rechte können „UNPROTECTED PRIVATE KEY FILE!“ auslösen. Die öffentliche .pub-Datei darf mit Modus 644 lesbar sein.
Den Anmeldeweg bestätigen
Öffne eine neue Verbindung mit ssh lee@web1.example.com. Eine Passphrase-Abfrage entsperrt den lokalen privaten Schlüssel; ein bereits geladener Agent kann das unnötig machen. Suche in der ausführlichen Ausgabe nach einer erfolgreichen Authentifizierung mit „publickey“.
Schlägt die Anmeldung fehl, prüfe zuerst den Kontonamen, dann seinen Eintrag für den öffentlichen Schlüssel, Eigentümer und Rechte und schließlich den angebotenen Clientschlüssel. ssh -i ~/.ssh/other_key lee@web1.example.com wählt einen bestimmten privaten Schlüssel; IdentityFile macht diese Auswahl zum Teil einer gespeicherten Hostkonfiguration. Das Erzeugen eines weiteren Schlüssels repariert keinen fehlenden Autorisierungseintrag für den bestehenden.
Wichtige Erkenntnisse
- Halte den privaten Schlüssel auf dem Client geheim; installiere den öffentlichen Schlüssel im vorgesehenen Serverkonto.
- Eine Passphrase schützt den gespeicherten privaten Schlüssel; ein Agent hält einen entsperrten Schlüssel im Arbeitsspeicher.
- Verwende 700 für
.sshund 600 fürauthorized_keyssowie den privaten Clientschlüssel. - Die Autorisierung gilt pro Konto; das Löschen einer Zeile mit einem öffentlichen Schlüssel entzieht diesem dort den Zugang.
- Prüfe bei fehlgeschlagener Authentifizierung das Konto, den autorisierten Schlüssel, die Rechte und den angebotenen Schlüssel.
6.3 SSH-Servereinstellungen ändern, ohne den Zugriff zu verlieren
Das Serverprogramm ist sshd aus dem Paket openssh-server. Debian und Ubuntu nennen seinen systemd-Dienst ssh; Fedora, RHEL, openSUSE und Arch nennen ihn im Allgemeinen sshd. Verwende beim Prüfen des Status, Aktivieren oder Neuladen des Dienstes den Namen deiner Distribution.
Die wirksame Konfiguration finden
Installiere mit sudo apt install openssh-server oder sudo dnf install openssh-server. Für einen Dienst unter Fedora oder RHEL startet sudo systemctl enable --now sshd ihn und aktiviert ihn für den Systemstart. systemctl status sshd meldet seinen Zustand.
Der Server liest /etc/ssh/sshd_config. /etc/ssh/ssh_config ist für den Client. Viele Systeme binden /etc/ssh/sshd_config.d/*.conf nahe dem Anfang der Serverdatei ein. Bei den meisten Anweisungen gilt der zuerst gelesene Wert. Ein anderer Wert am Ende der Hauptdatei kann wirkungslos bleiben.
Gib die wirksamen Einstellungen mit sudo sshd -T aus. Zeigt der Befehl trotz eines späteren no den Wert passwordauthentication yes, prüfe eingebundene Dateien. Auf einem Ubuntu-Cloud-Abbild kann 50-cloud-init.conf den früheren Wert liefern. Nach einer früher anwendbaren Datei wie 10-no-passwords.conf oder einer Änderung der maßgeblichen Einstellung müssen Validierung und Neuladen folgen.
Die vorgesehene Authentifizierung verlangen
Nachdem die Schlüsselanmeldung funktioniert, richten diese Einstellungen einen Zugriff ausschließlich mit Schlüsseln ein:
PubkeyAuthentication yes
PasswordAuthentication no
KbdInteractiveAuthentication no
AuthenticationMethods publickey
PermitRootLogin no
Die erste Einstellung aktiviert Schlüssel. Die nächsten beiden deaktivieren die Passwortmethode und die tastaturinteraktive Methode, die beide Passwörter annehmen können. AuthenticationMethods publickey verlangt ausdrücklich die Authentifizierung mit einem öffentlichen Schlüssel. PermitRootLogin no blockiert die SSH-Anmeldung als root; Administratoren melden sich mit ihrem eigenen Konto an und verwenden sudo. Der Standardwert prohibit-password ist anders: Er erlaubt root weiterhin die Anmeldung mit einem Schlüssel. AllowUsers lee deploy kann einschränken, welche Konten sich anmelden dürfen.
Sicher anwenden und testen
Halte die funktionierende Sitzung offen und bestätige in einem zweiten Terminal, dass die Schlüsselanmeldung funktioniert, bevor du den Passwortzugang entfernst. Nach der Bearbeitung:
sudo sshd -t
sudo systemctl reload sshd
Verwende unter Debian oder Ubuntu reload ssh. sshd -t gibt bei gültiger Konfiguration nichts aus; korrigiere Fehler vor dem Neuladen. Ein Neuladen erhält bestehende Sitzungen, daher prüft erst eine neue Verbindung die geänderte Richtlinie. Halte die alte Sitzung offen, bis dieser Test erfolgreich ist.
Zugriff und Protokolle prüfen
journalctl -u sshd oder journalctl -u ssh zeigt Versuche. Zu den herkömmlichen Protokolldateien gehören /var/log/auth.log unter Debian/Ubuntu und /var/log/secure unter RHEL. Wiederholte Passwortversuche mit ungültigen Benutzern sind auf Servern mit Internetzugang häufig; ein Zugriff ausschließlich mit Schlüsseln schließt das Erraten von Passwörtern als Anmeldeweg aus.
Erlaube den SSH-Dienst durch die aktive Firewall: unter Ubuntu mit sudo ufw allow OpenSSH oder unter Fedora/RHEL mit sudo firewall-cmd --permanent --add-service=ssh, gefolgt von sudo firewall-cmd --reload. Auch eine Regel des Cloud-Anbieters muss den Port erlauben, auf dem der Dienst lauscht. SSH auf Port 2222 zu verlegen kann störende Einträge durch Scans verringern, doch Schlüssel, eingeschränkte Anmeldung und OpenSSH-Updates bieten den eigentlichen Schutz.
Wichtige Erkenntnisse
- Verwende den Dienstnamen der Distribution:
sshunter Debian/Ubuntu, andernorts meistsshd. - Untersuche wirksame Einstellungen mit
sshd -T; früher eingebundene Werte können Vorrang haben. - Deaktiviere beide passwortfähigen Methoden und verlange publickey für die Anmeldung ausschließlich mit Schlüsseln.
- Bestätige die Schlüssel, prüfe die Syntax, lade neu und teste eine neue Verbindung, während eine funktionierende Sitzung offen bleibt.
- Lies die Serverprotokolle und prüfe die Zugriffsregeln des Hosts und des Cloud-Anbieters.
Dateisysteme und Netzwerke unter Linux: Beispiele
1Dateien durch ein Linux-System verfolgen
16 Schritte
- 1EinführungMit dem Zweck des Pfads beginnen
Ein kleiner Helpdesk-Dienst bewahrt sein Programm, seine Einstellungen und seinen Anfrageverlauf an unterschiedlichen Orten auf (
/usr,/etcund/var). Sein Administrator verwendet außerdem ein gemeinsam genutztes temporäres Verzeichnis und einen Verweis auf den aktuellen Bericht, der ein symbolischer Link ist.Verfolge jeden Pfad anhand von zwei Fragen: Welche Art von Daten gehört hierhin und um welche Art von Dateisystemeintrag handelt es sich? Die Antworten bestimmen, wo du suchst und was ein Dateivorgang verändert, etwa wer Einträge löschen darf (das Sticky-Bit).
- 2ErklärungProgramm, Einstellungen und Ausgabe trennen
Das Programm selbst gehört normalerweise nach
/usr, seine systemweiten Einstellungen nach/etcund seine veränderlichen Daten nach/var. Eine persönliche Arbeitskopie gehört in ein Home-Verzeichnis.Für ein von einem Administrator von Hand installiertes Hilfsprogramm hält
/usr/local/bines von paketierten Befehlen getrennt. Ein Anfrageverlauf gehört nach/var/log, wo wachsende Betriebsdaten zu erwarten sind. - 3HerausforderungDie Dienstdateien zuordnen
Ein Supportdienst hat drei Dateien: seine ausführbare Datei aus einem Paket, seine lokale Konfiguration und ein täglich wachsendes Protokoll. Ordne sie
/usr,/etcund/varzu.---reveal---
Die ausführbare Datei gehört nach
/usr, die lokalen Einstellungen nach/etcund das veränderliche Protokoll nach/var, normalerweise nach/var/log. Ein Name mit der Endung.confist ein nützlicher Hinweis, aber der Zweck der Datei bestimmt ihren Speicherort. - 4ErklärungEinen Ort für temporäre Arbeit wählen
Eine kurze Konvertierungsaufgabe kann
/tmpverwenden. Eine längere Aufgabe, die nach einem Neustart fortgesetzt werden muss, benötigt/var/tmp. Keines der beiden Verzeichnisse ist ein dauerhafter Ort für das Endergebnis.Ein
/tmpim Arbeitsspeicher verliert seine Dateien beim Herunterfahren, während Bereinigungsregeln an beiden Orten ältere Einträge entfernen können. Verwendemktempfür eine private Datei mit eindeutigem Namen und bewahre den ausgegebenen Pfad für spätere Befehle auf. - 5BeispielDas Sticky-Bit in den Rechten ablesen
Das root gehörende, gemeinsam genutzte Verzeichnis zeigt
drwxrwxrwt. Jeder kann Einträge erstellen, aber das abschließendetändert, wer sie entfernen oder umbenennen darf.Jo erstellt eine Datei mit Modus 644. Pat kann ihren Inhalt lesen, weil die Datei anderen das Lesen erlaubt. Pat kann ihren Eintrag nicht löschen: Das Verzeichnis mit Sticky-Bit behält diesen Vorgang dem Eigentümer des Eintrags, dem Eigentümer des Verzeichnisses oder root vor, vorbehaltlich der normalen Zugriffsprüfungen.
- 6HerausforderungDie Lesbarkeit ändern, ohne Löschregeln zu ändern
Jo möchte, dass Pat die vorhandene temporäre Datei nicht mehr lesen kann. Das gemeinsam genutzte Verzeichnis hat bereits das Sticky-Bit. Was sollte Jo ändern?
---reveal---
Ändere die eigenen Rechte der Datei, zum Beispiel auf Modus 600. Das Sticky-Bit schränkt bereits das Löschen und Umbenennen ein; es entfernt nicht das Leserecht einer Datei mit Modus 644. Diese beiden Schutzmaßnahmen betreffen unterschiedliche Vorgänge.
- 7BeispielEinen relativen Link erstellen
Das Verzeichnis
/home/jo/exportsexistiert und der Bericht liegt unter/home/jo/today.txt. Ein Link unter/home/jo/exports/currentsoll den Bericht erreichen.Verwende
ln -s ../today.txt /home/jo/exports/current. Beginne beim Folgen des gespeicherten Zielpfads inexports, gehe nach oben zu/home/jound lies danntoday.txt. Das Arbeitsverzeichnis der Shell liefert nicht den Ausgangspunkt. - 8HerausforderungEin verschobenes Ziel korrigieren
Jo benennt
today.txtinready.txtum, ohne den Link unter/home/jo/exports/currentzu verschieben. Welches Ziel sollte der neu erstellte Link speichern?---reveal---
Speichere
../ready.txt. Das erste..führt weiterhin vonexportszum Home-Verzeichnis von Jo, aber der letzte Dateiname muss dem neuen Namen entsprechen. Eine Änderung der angezeigten Rechte des symbolischen Links kann seinen fehlenden Zielpfad nicht reparieren. - 9ErklärungDer Datei einen zweiten Namen über einen Hardlink geben
Ein Hardlink speichert einen weiteren Namen für denselben Dateieintrag, keinen Pfad zu einem bevorzugten ursprünglichen Namen.
ln ready.txt kept.txtbewirkt, dass die beiden Namen auf diesem Dateisystem einen Inode teilen.Wird
ready.txtentfernt, bleibtkept.txtnutzbar. Ein symbolischer Link, derready.txtspeichert, würde dagegen zu einem toten Link. Ein Hardlink kann weder ein Verzeichnis bezeichnen noch auf ein anderes Dateisystem verweisen. - 10TippDen beabsichtigten Eintrag entfernen
Verwende für einen symbolischen Link auf ein Verzeichnis dessen Namen ohne abschließenden Schrägstrich:
rm currentoderunlink current. Das Zielverzeichnis bleibt erhalten.Ein abschließender Schrägstrich veranlasst Befehle, dem Zielverzeichnis zu folgen. Eine rekursive Löschung kann dann Dateien innerhalb dieses Ziels erreichen, daher ist die genaue Schreibweise des Pfads wichtig. Untersuche bei Unsicherheit den Pfeil mit
ls -loder lies das gespeicherte Ziel mitreadlink. - 11ErklärungGeräte vor dem Öffnen erkennen
Eine Auflistung, die mit
bbeginnt, beschreibt ein Blockgerät wie eine Datenträgerpartition. Ein führendescbezeichnet ein zeichenorientiertes Gerät wie ein Terminal. Reguläre Dateien beginnen mit-, unabhängig davon, ob ihr Inhalt Text oder binär ist.Die Major- und Minor-Nummern in einer Geräteauflistung identifizieren Treiber und Gerät. Sie stehen an der Stelle, an der eine reguläre Datei ihre Länge anzeigen würde.
- 12BeispielDie aktuelle Laufzeit auslesen
cat /proc/uptimegibt259200.0 710000.0zurück. Der erste Wert sind die seit dem Systemstart verstrichenen Sekunden: Geteilt durch 3600 ergibt das 72 Stunden oder drei Tage.Der zweite Wert summiert die Prozessorleerlaufzeit und kann daher größer als die tatsächlich verstrichene Laufzeit sein. Dieser Text stammt vom laufenden Kernel; er ist kein gewöhnliches Protokoll, das jede Sekunde auf dem Datenträger gespeichert wird.
- 13HerausforderungEine Informationsdatei mit Größe null erklären
Eine lernende Person sieht für einen Eintrag unter
/procdie Größe 0 und nimmt an, dass er keine nützlichen Informationen enthalten kann. Beim Lesen gibt er mehrere Zeilen zurück. Wie können beide Beobachtungen zutreffen?---reveal---
Der Kernel erzeugt die Informationen auf Anfrage. Die Größe in der Auflistung ist nicht die gespeicherte Länge einer gewöhnlichen Datei auf dem Datenträger. Eine null sagt dort daher nicht voraus, dass beim Lesen nichts zurückkommt. Nutze die dokumentierte Aufgabe des Eintrags, um den zurückgegebenen Text zu deuten.
- 14VerbindungEine Schnittstelle über sysfs auslesen
ls /sys/class/net/listet die dem Kernel bekannten Schnittstellen auf. Das Lesen von/sys/class/net/enp0s3/addressgibt die MAC-Adresse dieser Ethernet-Schnittstelle zurück.Dies verbindet einen vertrauten Pfadnamen mit aktuellen Hardwareinformationen.
/procstellt vor allem Prozess- und Systemdaten bereit, während/sysGeräte, Treiber und Busse organisiert. Ihre Inhalte werden vom laufenden System neu erstellt. - 15HerausforderungDen Zugriff nach dem Verschwinden eines Dateinamens behalten
Ein Bericht liegt in einem root gehörenden, gemeinsam genutzten Verzeichnis mit Sticky-Bit. Jo ist der Eigentümer; Pat kann ihn lesen, aber nicht umbenennen. Ein symbolischer Link an anderer Stelle speichert seinen Pfad. Jo entfernt diesen Namen des Berichts, aber ein Hardlink auf demselben Dateisystem bleibt bestehen. Über welchen verbleibenden Namen lässt sich der Bericht noch öffnen und warum?
---reveal---
Der Name des Hardlinks öffnet ihn weiterhin, weil er denselben Dateieintrag bezeichnet. Der symbolische Link wird zu einem toten Link, weil sein gespeicherter Pfad verschwunden ist. Das Sticky-Bit steuert, wer den ursprünglichen Eintrag entfernen darf, nicht ob ein anderer Name bestehen bleibt.
- 16ZusammenfassungZweck, Rechte und Eintragstyp nutzen
Finde die Datei anhand ihres Zwecks, lies ihren Typ und ihre Rechte ab und folge dann einem Link vom richtigen Verzeichnis aus. Untersuche für aktuelle Systemdaten
/procund/sys. Wähle für gemeinsam genutzte temporäre Arbeit sowohl eine Lebensdauer als auch den Schutz vor fremdem Zugriff; das Sticky-Bit regelt das Löschen unabhängig davon.
2Ein optionales Archivlaufwerk einhängen
14 Schritte
Speichere diese Einheit, um jede Interaktive Lektion Schritt für Schritt durchzugehen.
- 1EinführungMit einem vorhandenen Datenlaufwerk beginnen
- 2BeispielDen Gerätebaum lesen
- 3ErklärungUntersuchung nicht mit Vorbereitung verwechseln
- 4HerausforderungDie richtige Quelle wählen
- 5BeispielDas Verzeichnis erstellen und das Dateisystem einhängen
- 6TippEine eingeschränkte Einhängung zur Untersuchung wählen
- 7HerausforderungEin belegtes Dateisystem aushängen
- 8ErklärungDie Kennung statt der Erkennungsreihenfolge festhalten
- 9BeispielDie Regel mit sechs Feldern erstellen
- 10BeispielDie Regel vor dem Neustart prüfen
- 11Herausforderungnofail und noauto unterscheiden
- 12VerbindungDen Eigentümer des eingehängten Dateisystems festlegen
- 13HerausforderungNach dem Neuformatieren korrigieren
- 14ZusammenfassungJede Ebene prüfen
3Herausfinden, warum ein Server keine Dateien erstellen kann
10 Schritte
Speichere diese Einheit, um jede Interaktive Lektion Schritt für Schritt durchzugehen.
- 1EinführungMit dem betroffenen Pfad beginnen
- 2BeispielDas enthaltende Dateisystem ablesen
- 3BeispielDen Inode-Vorrat prüfen
- 4HerausforderungDie Bereinigung passend zur fehlenden Ressource wählen
- 5BeispielDas wachsende Verzeichnis finden
- 6TippVersteckte Speicherbelegung einbeziehen
- 7ErklärungDem verbleibenden Verweis auf ein gelöschtes Protokoll folgen
- 8HerausforderungDen unveränderten Bericht zum freien Speicherplatz erklären
- 9HerausforderungDas Ergebnis der Journal-Bereinigung prüfen
- 10ZusammenfassungDie reparierte Ressource messen
4Eine Verbindung von der Schnittstelle bis zum Dienst verfolgen
15 Schritte
Speichere diese Einheit, um jede Interaktive Lektion Schritt für Schritt durchzugehen.
- 1EinführungDie Bestandteile der Verbindung unterscheiden
- 2ErklärungDas lokale Netzwerk aus dem Präfix ablesen
- 3HerausforderungEntscheiden, ob ein Ziel lokal ist
- 4VerbindungDie getrennten Rollen von Adresse und Router bei IPv6 erkennen
- 5BeispielDie kurze Adressansicht untersuchen
- 6BeispielDie für das Ziel gewählte Route ablesen
- 7HerausforderungDen Router ohne Raten finden
- 8BeispielEine vollständige temporäre Adresse hinzufügen
- 9TippDen Zugriff beim Anwenden gespeicherter Einstellungen schützen
- 10HerausforderungEine verschwundene Einstellung erklären
- 11ErklärungEin ping-Ergebnis genau lesen
- 12BeispielEinen nur lokal lauschenden Dienst untersuchen
- 13HerausforderungHinweise zu Route und Dienst verbinden
- 14VerbindungDie vorgesehene Anwendung testen
- 15ZusammenfassungDen nächsten Test anhand des Ergebnisses wählen
5Erklären, warum ein Rechner eine alte Adresse auflöst
11 Schritte
Speichere diese Einheit, um jede Interaktive Lektion Schritt für Schritt durchzugehen.
- 1EinführungEin Name funktioniert auf zwei Rechnern unterschiedlich
- 2ErklärungDer Suchreihenfolge des Systems folgen
- 3BeispielDie veraltete lokale Zuordnung finden
- 4HerausforderungDie Reichweite einer lokalen Änderung vorhersagen
- 5VerbindungZwischengespeicherte DNS-Antworten berücksichtigen
- 6ErklärungDen lokalen Stub erkennen
- 7BeispielZwei gezielte Abfragewege vergleichen
- 8HerausforderungEine negative Antwort deuten
- 9ErklärungFehlermeldungen unterscheiden
- 10HerausforderungScheinbar übereinstimmende Tests erklären
- 11ZusammenfassungQuellen vor dem Ändern von Einstellungen vergleichen
6Entfernten Zugriff ausschließlich mit Schlüsseln einrichten und prüfen
17 Schritte
Speichere diese Einheit, um jede Interaktive Lektion Schritt für Schritt durchzugehen.
- 1EinführungServer- und Benutzeridentität auseinanderhalten
- 2BeispielDie erste Verbindung prüfen
- 3HerausforderungAuf einen geänderten Hostschlüssel reagieren
- 4BeispielEinen entfernten Befehl ausführen
- 5TippDie Übertragungsrichtung erkennbar halten
- 6BeispielDas Schlüsselpaar auf dem Client erstellen
- 7BeispielNur den öffentlichen Schlüssel installieren
- 8TippDateien schützen und den Agenten verwenden
- 9HerausforderungEine nicht passende Kontozuordnung beheben
- 10ErklärungDie maßgeblichen Einstellungen des Servers auslesen
- 11BeispielAuthentifizierung mit öffentlichem Schlüssel verlangen
- 12HerausforderungDen Unterschied bei der Root-Anmeldung erklären
- 13BeispielPrüfen, neu laden und eine neue Sitzung öffnen
- 14VerbindungErkennen, wo die Verbindung abgebrochen ist
- 15HerausforderungHerausfinden, warum eine spätere Einstellung nicht galt
- 16HerausforderungDen Zugang eines verlorenen Geräts entziehen
- 17ZusammenfassungDen neuen Anmeldeweg testen
Dateisysteme und Netzwerke unter Linux: Übungsaufgaben
Set 1: Dateien finden und spezielle Einträge verstehen10 Übungsfragen
Frage 1 von 10
Antwort zeigenAntwort ausblenden
/usr/local/bin hält lokal installierte Befehle von paketverwalteter Software getrennt. /usr/share/doc enthält Dokumentation, keine ausführbaren Befehle. Ein von Hand installierter Befehl im lokalen Softwarebaum wird außerdem nicht mit Dateien vermischt, die durch gewöhnliche Paketaktualisierungen verwaltet werden.Frage 2 von 10
Antwort zeigenAntwort ausblenden
/var/log. /etc enthält die Konfiguration, die einen Dienst steuert, nicht seinen wachsenden Anfrageverlauf. Der Unterschied hilft dir, die Ursache eines vollen Dateisystems zu suchen, ohne die Einstellungen oder installierten Dateien des Programms zu bearbeiten.Frage 3 von 10
Antwort zeigenAntwort ausblenden
Frage 4 von 10
/home/ren/archive/current speichert ../draft.txt. Auf welchen Pfad zeigt er?Antwort zeigenAntwort ausblenden
/home/ren/archive, und wende dann .. an, um /home/ren zu erreichen, bevor du draft.txt hinzufügst. Ein naheliegender Fehler wäre, beim aktuellen Verzeichnis der Shell zu beginnen. Der relative Zielpfad ist im Link gespeichert und ändert sich nicht mit deinem Arbeitsverzeichnis.Frage 5 von 10
brw-rw----. Um welche Art von Eintrag handelt es sich?Antwort zeigenAntwort ausblenden
b bezeichnet ein Blockgerät, etwa einen Datenträger oder eine Partition. Es bedeutet nicht, dass eine reguläre Datei binäre Daten enthält. Zeichenorientierte Geräte verwenden c und symbolische Links l; die übrigen Rechtezeichen beschreiben den Zugriff, nicht den Typ des Eintrags.Frage 6 von 10
copy.txt ein Hardlink auf source.txt und alias.txt ein symbolischer Link, der source.txt speichert. Was bleibt lesbar, nachdem source.txt entfernt wurde?Antwort zeigenAntwort ausblenden
copy.txt lesbar bleibt. Der symbolische Link speichert nur den nun fehlenden Pfad source.txt und wird zu einem toten Link. Ein erhaltener Hardlink-Name bewahrt den Zugriff auf Daten; ein erhaltener symbolischer Link bewahrt den von ihm gespeicherten Zielpfad nicht.Frage 7 von 10
Antwort zeigenAntwort ausblenden
/var/tmp ist für temporäre Dateien vorgesehen, die einen Neustart überdauern müssen. /tmp ist kurzlebig und kann im Arbeitsspeicher liegen oder beim Systemstart geleert werden, sodass es diese Lebensdauer nicht bieten kann. Bereinigungsregeln können auch ältere Dateien aus /var/tmp entfernen; dauerhafte Ergebnisse gehören in einen dauerhaften Speicherort.Frage 8 von 10
/usr/lib/systemd/system ersetzt. Wo sollte eine unterstützte lokale Überschreibung liegen?Antwort zeigenAntwort ausblenden
/etc/systemd/system, getrennt von mitgelieferten Unit-Dateien. Bearbeitest du die paketverwaltete Datei unter /usr/lib, kann die Änderung bei einem Update ersetzt werden. /run enthält zudem Laufzeitdaten und wird beim Neustart geleert, eignet sich also nicht für diese dauerhafte Überschreibung.Frage 9 von 10
ls -l zeigt einen /proc-Eintrag mit Größe 0, dennoch gibt cat aktuelle Informationen aus. Warum?Antwort zeigenAntwort ausblenden
Frage 10 von 10
/home/eli/links/active speichert ../work.txt. Die Zieldatei wird nach /data/notes/final.txt auf einem anderen Dateisystem verschoben. Welcher Linktyp und welcher relative Zielpfad stellen den Zugriff über den unveränderten Linknamen wieder her?Antwort zeigenAntwort ausblenden
/home/eli/links und steige drei Ebenen bis / auf, bevor du nach data/notes hinabgehst. Der gespeicherte Zielpfad ist daher ../../../data/notes/final.txt. Zwei Ebenen nach oben führen nur bis /home, und ein Hardlink kann die Datei auf einem anderen Dateisystem nicht erreichen.Set 2: Speicher identifizieren und zuverlässige Einhängungen einrichten10 Übungsfragen
Speichere diese Einheit, um jede Antwort zu sehen und jedes Set zu üben.
Frage 1 von 10
/dev/nvme1n1p3?Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 2 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 3 von 10
/dev/vdc1 identifiziert und /mnt/archive existiert bereits. Welcher Befehl hängt sie dort ein?Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 4 von 10
/mnt/store/local.txt war vorhanden, bevor du ein Laufwerk unter /mnt/store eingehängt hast. Nun fehlt die Datei in der Auflistung. Was geschieht nach erfolgreichem Aushängen?Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 5 von 10
/dev/sdc1 zu /dev/sdd1, nachdem ein weiteres Laufwerk hinzugefügt wurde. Welche fstab-Quelle vermeidet dieses Problem der Erkennungsreihenfolge am besten?Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 6 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 7 von 10
/mnt/usb und kein anderer Prozess nutzt es. Was solltest du tun?Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 8 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 9 von 10
noauto hinzu, lädst systemd neu und führst mount -a aus. Die Einhängung fehlt. Was ist der nächste geeignete Test?Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 10 von 10
noauto,nofail für /mnt/test. Es ist nun angeschlossen, aber mount -a hängt das Laufwerk nicht ein und eine ältere lokale Datei ist dort sichtbar. Wie kannst du das Laufwerk ansehen und die lokale Datei erhalten?Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Set 3: Volle Dateisysteme und unerwartete Summen diagnostizieren10 Übungsfragen
Speichere diese Einheit, um jede Antwort zu sehen und jedes Set zu üben.
Frage 1 von 10
/srv/uploads enthält. Welcher Befehl liefert diesen Bericht?Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 2 von 10
df -h zeigt 18G verfügbar, aber df -i zeigt IFree als 0. Welche Bereinigung behebt den Fehler am besten?Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 3 von 10
du -sh * erfasst nur wenig davon. Welcher Befehl bezieht seine versteckten Unterverzeichnisse ein?Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 4 von 10
/var/cache einschließlich seines Inhalts. Welchen Befehl solltest du verwenden?Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 5 von 10
lsof +L1, weil sein Dienst es geöffnet hält. Warum zeigt df den Speicherplatz nicht als frei an?Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 6 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 7 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 8 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 9 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 10 von 10
lsof +L1 ist leer. Über /srv/data, das zuvor große Dateien enthielt, ist ein separates Laufwerk eingehängt. Was erklärt die Differenz?Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Set 4: Netzwerkzustand auslesen und Verbindungsfehler finden10 Übungsfragen
Speichere diese Einheit, um jede Antwort zu sehen und jedes Set zu üben.
Frage 1 von 10
/24 in einer IPv4-Adresse an?Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 2 von 10
inet 192.168.8.44/24 brd 192.168.8.255. Für welche Information wird weiterhin die Routenausgabe benötigt?Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 3 von 10
ss zeigt einen lauschenden TCP-Socket unter 127.0.0.1:8080. Wer kann sich mit dieser lauschenden Adresse verbinden?Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 4 von 10
ip hinzugefügte temporäre Adresse verschwindet nach dem Neustart. Wie solltest du die vorgesehene Adresse dauerhaft einrichten?Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 5 von 10
192.168.12.70/26 mit einer passenden Route für das direkt verbundene Netzwerk. Welches Ziel liegt in demselben Subnetz?Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 6 von 10
portal.example.com aus, erhält aber keine Echoantworten. Was solltest du als Nächstes untersuchen?Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 7 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 8 von 10
192.168.90.25 ohne Präfix hinzu und aktivierst sie. Ein anderer Teilnehmer hat 192.168.90.30/24; es existieren keine weiteren Routen. Warum kann der lokale Host diesen Teilnehmer nicht normal erreichen?Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 9 von 10
192.168.6.0/24. Sein vorgesehener Server ist 192.168.7.40. Auf diesem Server funktioniert der Webdienst lokal, lauscht aber nur auf 127.0.0.1:80. Welches Maßnahmenpaar behebt beide nachgewiesenen Hindernisse?Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 10 von 10
192.168.55.130/26 und erreicht Teilnehmer im selben Subnetz. Sein gespeichertes Profil wählt das Gateway 192.168.55.1, aber der vorgesehene lokale Router ist 192.168.55.129. Es gelten keine anderen Routen. Welche dauerhafte Korrektur passt zur Adressierung?Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Set 5: DNS-Wege und Hinweise zu entfernten Verbindungen vergleichen10 Übungsfragen
Speichere diese Einheit, um jede Antwort zu sehen und jedes Set zu üben.
Frage 1 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 2 von 10
resolv.conf nennt auf einem System mit systemd-resolved 127.0.0.53. Wie kannst du die tatsächlichen vorgelagerten DNS-Server sehen?Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 3 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 4 von 10
Permission denied (publickey). In welcher Phase ist dieser Versuch fehlgeschlagen?Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 5 von 10
files dns. Ein lokaler hosts-Eintrag ordnet docs.example.com einer alten Adresse zu. Eine Abfrage an den ausdrücklich ausgewählten autoritativen DNS-Server gibt die neue Adresse zurück. Welcher Vergleich erklärt das alte Ziel einer Anwendung?Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 6 von 10
NXDOMAIN zurück. Was unterscheidet dieses Ergebnis von einer Zeitüberschreitung?Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 7 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 8 von 10
0.0.0.0:22 lauscht, sowie eine geeignete Adresse und Route. Welche Hinweise solltest du als Nächstes prüfen, bevor du Benutzerschlüssel änderst?Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 9 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 10 von 10
vault.home.arpa existiert ein hosts-Eintrag. Sowohl dig ohne ausdrücklichen Server als auch getent hosts geben ihn zurück; resolv.conf zeigt auf den Stub von systemd-resolved. Warum passt das zusammen?Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Set 6: SSH-Schlüssel einrichten und den Zugriff sicher diagnostizieren10 Übungsfragen
Speichere diese Einheit, um jede Antwort zu sehen und jedes Set zu üben.
Frage 1 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 2 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 3 von 10
deploy installiert, aber du verbindest dich mit diesem Schlüssel als root und erhältst eine Zugriffsverweigerung. Was solltest du zuerst versuchen?Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 4 von 10
PasswordAuthentication yes, bevor die Hauptdatei später no setzt. Es gibt keine Match-Blöcke. Nach dem Neuladen funktionieren Passwortanmeldungen weiterhin. Was solltest du untersuchen und korrigieren?Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 5 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 6 von 10
.ssh-Verzeichnis auf dem Server ist für jeden Benutzer beschreibbar. Der Client bietet den passenden Schlüssel an. Welche Korrektur passt zu den Hinweisen?Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 7 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 8 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 9 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 10 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Hängst du bei deiner eigenen Aufgabe fest? Hausaufgabenhilfe
Schlüsselbegriffe
A
Anwendungszustand
/var/lib gespeichert werden./var/lib kann eine aktive Datenbank enthalten. Untersuche daher vor der Bereinigung, wem es gehört.Archiviertes Journal
Aushängen
/mnt/usb verlassen, bevor diese Einhängung ohne Fehler wegen eines belegten Ziels gelöst werden kann.Auslagerungsspeicher
swap wird als Auslagerungsspeicher aktiviert, statt für Dokumente eingehängt zu werden.authorized_keys
B
Blockgerät
/dev/sda1 dargestellt.b am Anfang einer Geräteauflistung unterscheidet eine Datenträgerpartition von einer regulären Datei.Broadcast-Adresse
brd-Wert in ip addr ist nicht die Routeradresse, die du als Standardgateway einträgst.D
Dateisystem
Datenträger
DHCP
ip addr eine verbleibende Leasedauer anzeigen.Dienstport
DNS
DNS-Zeitüberschreitung
E
Eingebundene Konfiguration
sshd -T, wenn ein früher eingebundener yes-Wert eine spätere no-Einstellung scheinbar außer Kraft setzt.Einhängeoption
uid und gid verwenden, um ihre Dateien als Eigentum des vorgesehenen Benutzers anzuzeigen.Einhängepunkt
/mnt/usb erscheint eine Datei darauf unterhalb dieses Verzeichnisses.F
Filesystem Hierarchy Standard
/var/log gehören.Fingerabdruck
fstab
/etc/fstab, wenn es beim Systemstart wieder eingehängt werden soll.G
Gelöschte, noch geöffnete Datei
lsof +L1 kann ein entferntes laufendes Protokoll identifizieren, das ein Dateisystem weiterhin gefüllt hält.Gibibyte
G anzeigen.lsblk die Größe in GiB anzeigt.GPT
Gültigkeitsdauer
H
Hardlink
Home-Verzeichnis
/home.~ zu deinem Home-Verzeichnis, wo versteckte Einträge deine persönlichen Anwendungseinstellungen enthalten können.hosts-Datei
/etc/hosts kann allein deinen Rechner zum früheren Server einer Website leiten.Hostschlüssel
I
ICMP-Echo
Inode
Inode-Erschöpfung
IFree-Wert von null erklärt, warum das Erstellen einer neuen Datei trotz Gigabytes in der Spalte Avail fehlschlägt.IP-Adresse
K
known_hosts
L
Lauschender Socket
ss sichtbar ist.127.0.0.1:8080 nimmt lokalen Datenverkehr an, ist aber nicht an die LAN-Adresse des Servers gebunden.Linkanzahl
ls -l-Auflistung.Logische Dateigröße
ls -l eine große Länge melden, aber viel weniger Speicherplatz belegen.Loopback
127.0.0.1 und bei IPv6 über ::1 erreicht wird.M
MAC-Adresse
Major- und Minor-Nummern
8, 1 an der Größenposition beschreibt ein Gerät, keine acht Byte große Datei.MBR
mktemp
mktemp erstellt eine private temporäre Datei oder ein privates temporäres Verzeichnis mit eindeutigem Namen und gibt den Pfad zur weiteren Verwendung aus.N
Nachbartabelle
ip neigh lenkt die Aufmerksamkeit auf die Kommunikation über die lokale Verbindung.Name Service Switch
hosts: files dns prüft die lokale hosts-Datei, bevor DNS nach einem passenden Namen gefragt wird.Nameserver
dig @192.168.1.1 example.com A fragt ausdrücklich diesen Server nach dem IPv4-Eintrag des Namens.Netplan
netplan try beim Testen einer Änderung, die den Zugriff unterbrechen könnte, ein Rücksetzfenster.NetworkManager-Profil
nmcli device status angezeigte Verbindung anhand ihres Namens und aktiviere dann das Profil.Netzwerkschnittstelle
ip -br addr listet Ethernet-, WLAN-, Loopback- und virtuelle Schnittstellen mit ihren Adressen auf.Neuladen des Dienstes
noauto
noauto schließt einen Eintrag vom automatischen Einhängen beim Systemstart und von mount -a aus, lässt aber ausdrückliches Einhängen zu.sudo mount /archive, statt zu erwarten, dass mount -a ihn einhängt.noexec
noexec verhindert die direkte Ausführung von Dateien aus einem eingehängten Dateisystem, hindert einen Interpreter aber nicht daran, dort ein Skript zu lesen.bash übergeben werden.nofail
nofail erlaubt die Fortsetzung des Systemstarts, wenn ein optionales Quellgerät nicht eingehängt werden kann. Sie eignet sich für Wechsel- oder zusätzliche Laufwerke.nofail versehen ist.NXDOMAIN
Ö
Öffentlicher Schlüssel
.pub kann zur authorized_keys des vorgesehenen entfernten Kontos hinzugefügt werden.P
Partition
p2 in /dev/nvme0n1p2 wählt eine Partition statt des gesamten NVMe-Geräts.Partitionstabelle
sudo fdisk -l zeigt sowohl den Tabellentyp als auch den Start- und Endsektor jeder Partition.Passphrase
Präfixlänge
/26 in einer IPv4-Adresse lässt sechs Adressbits übrig und ergibt 64 Adressen in diesem Subnetz.Privater Schlüssel
id_ed25519 mit Modus 600, damit andere reguläre Benutzer ihn nicht lesen können.procfs
/proc eingehängte virtuelle Dateisystem, in dem der Kernel auf Anfrage aktuelle Prozess- und Systeminformationen bereitstellt./proc/uptime gibt aktuelle Zeitwerte zurück, obwohl es sich nicht um eine gewöhnliche gespeicherte Textdatei handelt.Prüfreihenfolge der Dateisysteme
0 2: kein Dump-Sicherungskennzeichen, gefolgt von einer Prüfreihenfolge für ein anderes Dateisystem als das Wurzeldateisystem.Pseudogerät
/dev/zero kann die Eingabe liefern, wenn ein reguläres, mit Nullen gefülltes Testabbild erstellt wird.R
Relativer Zielpfad
Reservierte Blöcke
Resolver
Routingtabelle
ip route get 203.0.113.18 zeigt, welche Route Linux für dieses Ziel wählen würde.rsync
S
Schreibgeschütztes Einhängen
ro, wenn du ein Dateisystem ohne gewöhnliche Schreibzugriffe von Anwendungen untersuchen möchtest.scp
USER@HOST:PATH geschrieben; das große -P wählt einen anderen als den Standardport.SERVFAIL
SFTP
lcd das lokale Arbeitsverzeichnis, während cd das entfernte ändert.SLAAC
Sparse-Datei
du und du --apparent-size können für dasselbe Sparse-Abbild sehr unterschiedliche Summen liefern.Speicherplatzbelegung
du summiert ihn in den erreichbaren Teilen des Baums.sudo du -h -d 1 /var, um große Verzeichnisse zu vergleichen, nachdem du das volle Dateisystem identifiziert hast.SSH
ssh aya@node.example.com startet eine entfernte Sitzung mit dem Konto von Aya auf dem genannten Server.SSH-Agent
ssh-add können mehrere Verbindungen den geladenen Schlüssel verwenden, ohne dich erneut zum Entsperren aufzufordern.sshd
ssh und unter Fedora oder RHEL den Dienst sshd.Standardgateway
Sticky-Bit
/tmp kann ein regulärer Benutzer die Datei eines anderen nicht allein deshalb entfernen, weil das Verzeichnis beschreibbar ist.Stub-Resolver
127.0.0.53 sendet Abfragen häufig an systemd-resolved auf demselben Rechner.Suchsuffix
search example.com kann eine Abfrage nach web1 den Namen web1.example.com versuchen.Symbolischer Link
../notes.txt beginnt die Suche in dem Verzeichnis, das diesen Link enthält.sysfs
/sys eingehängte virtuelle Dateisystem, das die Sicht des Kernels auf Geräte, Treiber, Busse und zugehörige Einstellungen zugänglich macht./sys/class/net kannst du untersuchen, welche Netzwerkschnittstellen der Kernel kennt.T
Tastaturinteraktive Authentifizierung
Temporäre Datei
/var/tmp statt in /run auf.Temporäre Netzwerkkonfiguration
ip hinzugefügte Adresse kann verschwinden, wenn NetworkManager sein Verbindungsprofil erneut anwendet.tmpfs
/tmp eingehängtes tmpfs füllen, obwohl auf dem Hauptdatenträger noch Platz frei ist.Toter Link
readlink kannst du den gespeicherten Pfad untersuchen, wenn das Öffnen eines toten Links fehlschlägt.U
Umlaufzeit
time=0.8 ms misst auch den Rückweg, nicht nur das ausgehende Paket.UUID
lsblk -f gemeldete UUID, statt anzunehmen, dass eine USB-Partition immer /dev/sdb1 heißt.V
Verfügbarer Speicherplatz
Avail kann auf einem ext4-Dateisystem kleiner als die Gesamtgröße abzüglich des belegten Speicherplatzes sein.Vollqualifizierter Domainname
web1.example.com, statt nur eines kurzen lokalen Namens.W
Wirksame Konfiguration
sshd -T hilft zu prüfen, welcher Wert Vorrang hatte, wenn Einstellungen in mehreren Dateien erscheinen.Wurzelverzeichnis
/, der Ausgangspunkt des einzigen Linux-Baums aus Dateien, Verzeichnissen und eingehängten Dateisystemen./data eingehängtes zweites Laufwerk wird in den Baum eingebunden, statt einen eigenen Laufwerksbuchstaben zu erhalten.Z
Zeichenorientiertes Gerät
/dev/null./dev/null umgeleitet, werden diese Bytes verworfen, ohne die normale Ausgabe zu verbergen.#
/usr-Zusammenführung
/usr-Zusammenführung ist ein Aufbau, bei dem Pfade wie /bin, /sbin und /lib symbolische Links auf Orte innerhalb von /usr sind./bin/ls und /usr/bin/ls denselben installierten Befehl bezeichnen.- 1Linux und Open Source
- 2Linux-Befehlszeile
- 3Linux-Pipes und Textverarbeitung
- 4Shellskripterstellung
- 5Linux-Benutzer und Zugriffsrechte
- 6Linux-Prozesse, Pakete und Dienste
- 7Dateisysteme und Netzwerke unter Linux
Über diese Einheit
Erstelle deine eigenen Lernmaterialien
Mach aus deinen Notizen, Folien und Dokumenten Lernleitfäden, Übungsfragen, Karteikarten und 6 weitere Tools.