Vorstellungsgespräch

Linux-Fragen im Vorstellungsgespräch: 24 Fragen mit Antworten

Aktualisiert: · Skillaria.Top

Im Vorstellungsgespräch zu Linux fragt man am häufigsten nach dem Aufbau des Dateisystems und Inodes, harten und symbolischen Links, Rechten und sudo, Prozessen und Signalen, dem Systemstart sowie dem Netzwerk: wie man offene Ports prüft, wie die DNS-Auflösung funktioniert und was zu tun ist, wenn ein Server nicht erreichbar ist.

Linux-Fragen kommen in Gesprächen für DevOps-Ingenieure, Systemadministratoren, SREs und Backend-Entwickler vor. Interviewer erwarten selten, dass Sie Optionen auswendig kennen: Ihnen geht es darum, ob Sie verstehen, wie das System funktioniert, und ob Sie die Ursache eines Problems finden können. Hier sind die häufigsten Linux-Fragen im Vorstellungsgespräch, von grundlegend bis diagnostisch, mit Antworten und Befehlen.

Tipp: Nennen Sie beim Antworten den Befehl, mit dem Sie Ihre Aussage prüfen würden. Der Satz „Ich würde das mit ss -tlnp prüfen“ wirkt überzeugender als allgemeine Aussagen.

Dateisystem

1. Was ist FHS, und was liegt in den wichtigsten Verzeichnissen?

FHS (Filesystem Hierarchy Standard) ist der Standard für die Anordnung der Verzeichnisse. Der ganze Baum beginnt bei der Wurzel /; es gibt keine Laufwerke mit Buchstaben — andere Dateisysteme werden in Verzeichnisse des Baums eingehängt.

  • /etc — Konfiguration von System und Diensten;
  • /var — veränderliche Daten: Logs (/var/log), Cache, Warteschlangen, Datenbanken;
  • /home — Home-Verzeichnisse der Benutzer, /root — das Home-Verzeichnis von root;
  • /usr — Programme und Bibliotheken; /bin und /sbin sind auf modernen Distributionen meist Links auf /usr/bin und /usr/sbin;
  • /tmp — temporäre Dateien, /boot — Kernel und Bootloader;
  • /proc und /sys — virtuelle Dateisysteme mit Informationen über Prozesse und den Kernel, /dev — Gerätedateien.

2. Was ist ein Inode?

Ein Inode ist eine Struktur des Dateisystems, die die Metadaten einer Datei speichert: Typ, Rechte, Besitzer, Größe, Zeitstempel, die Anzahl der harten Links und Zeiger auf die Datenblöcke. Den Dateinamen enthält der Inode nicht: Der Name steht im Verzeichnis als Eintrag „Name → Inode-Nummer“.

Die Inode-Nummer zeigt ls -i, Details stat datei. Die Zahl der Inodes eines Dateisystems ist begrenzt, und df -i zeigt, wie viele belegt sind. Daraus folgt die klassische Situation: „Es ist genug Platz auf der Platte, aber ich kann keine Datei anlegen“ — die Inodes sind wegen Millionen winziger Dateien aufgebraucht.

3. Worin unterscheidet sich ein harter Link von einem symbolischen Link?

Ein harter Link (ln datei link) ist ein weiterer Name für denselben Inode. Beide Namen sind gleichberechtigt, die Daten werden erst gelöscht, wenn der Linkzähler null erreicht. Einschränkungen: Man kann nicht auf ein Verzeichnis verlinken und keine Dateisystemgrenzen überschreiten.

Ein symbolischer Link (ln -s ziel link) ist eine eigene Datei mit eigenem Inode, in der der Pfad zum Ziel steht. Er kann auf ein Verzeichnis und auf ein anderes Dateisystem zeigen, „bricht“ aber, wenn das Ziel gelöscht oder verschoben wird.

4. Die Platte ist voll, aber der Befehl du zeigt weniger an als df. Warum?

Meist wurde eine Datei gelöscht, aber ein Prozess hält sie noch offen — etwa wenn ein großes Log eines laufenden Dienstes entfernt wurde. Der Name ist weg, also sieht du die Datei nicht, die Blöcke bleiben aber belegt, und df zählt sie mit.

Solche Dateien finden Sie mit lsof +L1 oder lsof | grep deleted. Abhilfe: den Prozess neu starten oder die Datei über ihren Deskriptor kürzen: : > /proc/PID/fd/N. Künftig sollten Logs mit truncate oder einer logrotate-Rotation geleert werden, nicht mit rm.

5. Wie läuft der Start von Linux ab?

Die Firmware (BIOS oder UEFI) initialisiert die Hardware und übergibt die Kontrolle an den Bootloader, meist GRUB. Der Bootloader liest seine Konfiguration und lädt Kernel und initramfs — ein temporäres Root-Dateisystem mit den Treibern, die für den Zugriff auf das echte Root nötig sind — in den Speicher.

Der Kernel initialisiert die Geräte, hängt das Root-Dateisystem ein und startet den ersten Prozess im Benutzerbereich mit PID 1 — auf den meisten Distributionen ist das systemd. Er bringt die Dienste bis zum Standard-Target hoch, zum Beispiel multi-user.target. Die Dauer der einzelnen Phasen zeigt systemd-analyze.

6. Was macht der Befehl mount, und wo wird das automatische Einhängen beschrieben?

mount hängt ein Dateisystem von einem Gerät in ein Verzeichnis (den Einhängepunkt) ein: mount /dev/sdb1 /mnt/data. Aktuelle Einhängungen zeigen findmnt oder mount ohne Argumente.

Das Einhängen beim Start beschreibt /etc/fstab. Geräte gibt man dort besser über die UUID an (zu sehen mit blkid) statt über einen Namen wie /dev/sdb1, der sich ändern kann. Vor einem Neustart prüft man die Änderungen mit mount -a: Ein Fehler in fstab kann den Start stoppen.

Benutzer und Rechte

7. Wie sind die Rechte in Linux organisiert?

Jede Datei hat einen Besitzer, eine Gruppe und drei Rechtesätze: für den Besitzer, für die Gruppe und für alle anderen. Jeder Satz besteht aus r (Lesen), w (Schreiben) und x (Ausführen). In Zahlenform gilt r=4, w=2, x=1, deshalb gibt chmod 640 datei dem Besitzer Lesen und Schreiben, der Gruppe Lesen und allen anderen nichts.

$ ls -l app.conf
-rw-r----- 1 deploy www-data 512 Oct 12 10:03 app.conf

Den Besitzer ändert man mit chown benutzer:gruppe datei, die Rechte mit chmod.

8. Was bedeuten r, w und x bei einem Verzeichnis?

Bei einem Verzeichnis ist die Bedeutung eine andere: r — man kann die Namen auflisten, w — man kann darin Dateien anlegen, löschen und umbenennen, x — man kann das Verzeichnis betreten und Dateien über ihren Namen ansprechen.

Daraus folgt: Eine Datei darf löschen, wer Schreibrecht auf das Verzeichnis hat — auch wenn ihm die Datei selbst nicht gehört. Ohne x auf dem Verzeichnis hilft auch r nichts: Die Namen sind sichtbar, die Dateien aber nicht zu öffnen.

9. Was sind SUID, SGID und das Sticky Bit?

SUID auf einem ausführbaren Programm startet es mit den Rechten seines Besitzers statt des Benutzers. Ein klassisches Beispiel ist /usr/bin/passwd: Es gehört root und darf /etc/shadow ändern. SGID auf einer Datei tut dasselbe für die Gruppe, auf einem Verzeichnis sorgt es dafür, dass neue Dateien die Gruppe des Verzeichnisses erben — praktisch für gemeinsame Ordner.

Das Sticky Bit auf einem Verzeichnis erlaubt nur dem Besitzer einer Datei, sie zu löschen, auch wenn das Verzeichnis für alle schreibbar ist. So funktioniert /tmp: ls -ld /tmp zeigt drwxrwxrwt. Alle SUID-Dateien für eine Prüfung finden Sie mit find / -perm -4000 -type f 2>/dev/null.

10. Was ist umask?

umask ist eine Maske, die neuen Dateien und Verzeichnissen Rechte entzieht. Die Grundrechte sind 666 für Dateien und 777 für Verzeichnisse; umask entfernt Bits davon. Bei üblichem Wert 022 entstehen Dateien mit 644 und Verzeichnisse mit 755. Den aktuellen Wert zeigt der Befehl umask.

11. Wo werden Benutzer und Passwörter gespeichert?

Die Konten stehen in /etc/passwd: Name, UID, GID der Hauptgruppe, Home-Verzeichnis und Shell. Die Passwort-Hashes sind nach /etc/shadow ausgelagert, das nur root lesen kann — so stehen die Hashes gewöhnlichen Benutzern für Brute-Force nicht zur Verfügung. Gruppen beschreibt /etc/group.

Informationen zu einem Benutzer zeigt man bequem mit id benutzer und getent passwd benutzer — der zweite Befehl berücksichtigt auch externe Quellen wie LDAP.

12. Wie funktioniert sudo, und warum ist es besser als die Anmeldung als root?

sudo führt einen Befehl im Namen eines anderen Benutzers (standardmäßig root) nach den Regeln in /etc/sudoers und den Dateien in /etc/sudoers.d/ aus. Der Benutzer gibt sein eigenes Passwort ein, nicht das von root, und jede Aktion wird mit dem Namen des Handelnden protokolliert.

Eine Regel kann alles erlauben (alena ALL=(ALL:ALL) ALL) oder bestimmte Befehle. sudoers bearbeiten Sie nur mit visudo: Es prüft die Syntax vor dem Speichern, sodass ein Fehler Sie nicht von sudo aussperrt. Unter Ubuntu erhält man Administratorrechte durch die Mitgliedschaft in der Gruppe sudo, auf RHEL-artigen Systemen in der Gruppe wheel.

13. Wie fügt man einen Benutzer einer Gruppe hinzu, und warum wirken die Änderungen nicht?

Der Befehl usermod -aG docker alena fügt einen Benutzer einer zusätzlichen Gruppe hinzu. Die Option -a ist zwingend: Ohne sie ersetzt -G die ganze Gruppenliste.

Die Änderungen wirken bei der nächsten Anmeldung: Die aktuelle Sitzung behält die alte Gruppenliste. Sie können sich abmelden und wieder anmelden oder mit newgrp docker eine Shell mit der neuen Gruppe öffnen. Geprüft wird mit id.

Prozesse

14. Was ist ein Prozess und eine PID, und wie listet man Prozesse auf?

Ein Prozess ist ein laufendes Programm mit eigenem Adressraum, offenen Dateien und einer Kennung PID. Jeder Prozess hat einen Elternprozess (PPID); der gemeinsame Vorfahr ist der Prozess mit PID 1. Die Prozessliste zeigen ps aux und ps -ef, den Baum pstree oder ps -ef --forest, in Echtzeit top und htop.

15. Worin unterscheiden sich die Signale SIGTERM und SIGKILL?

kill PID sendet standardmäßig SIGTERM (15) — eine höfliche Bitte, sich zu beenden. Der Prozess kann es abfangen, Verbindungen schließen, Daten sichern und beenden. SIGKILL (9, kill -9) lässt sich nicht abfangen: Der Kernel beendet den Prozess sofort, ohne Aufräumen.

Die richtige Reihenfolge: zuerst SIGTERM, und nur wenn der Prozess nicht reagiert, SIGKILL. Ein weiteres häufiges Signal ist SIGHUP: Viele Dämonen lesen ihre Konfiguration neu, wenn sie es erhalten.

16. Was ist ein Zombie-Prozess?

Ein Zombie ist ein Prozess, der bereits beendet ist, dessen Elternprozess seinen Exitcode aber noch nicht mit dem Aufruf wait() abgeholt hat. Er belegt praktisch keine Ressourcen, hält aber einen Eintrag in der Prozesstabelle. In ps steht sein Zustand als Z.

Einen Zombie kann man nicht töten: Er ist bereits tot. Der Elternprozess muss ihn „begraben“ — das Elternprogramm reparieren oder den Elternprozess beenden; dann erbt PID 1 den Zombie und entfernt ihn.

17. Was zeigt der Load Average?

Die drei Zahlen in uptime und top sind die durchschnittliche Anzahl der Prozesse, die über 1, 5 und 15 Minuten auf Ausführung warten. Unter Linux zählen dazu auch Prozesse im nicht unterbrechbaren Warten (Zustand D), meist auf eine Festplatte.

Den Wert vergleicht man mit der Zahl der Kerne (nproc): Load 4 auf 4 Kernen ist volle Auslastung, auf 16 Kernen ein Viertel. Hohe Last bei geringer CPU-Auslastung deutet auf ein E/A-Problem hin; das prüft man mit iostat oder dem Feld wa in top.

Netzwerk

18. Wie sehe ich IP-Adressen, Routen und offene Ports?

Adressen der Schnittstellen zeigt ip a, die Routing-Tabelle ip r. Die alten Befehle ifconfig und netstat aus dem Paket net-tools sind auf vielen Distributionen standardmäßig nicht installiert.

Lauschende Ports und die Prozesse, die sie geöffnet haben, zeigt ss -tlnp: t — TCP, l — nur lauschende, n — ohne Namensauflösung, p — mit Prozess. Für UDP — ss -ulnp.

$ sudo ss -tlnp
State  Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0      511          0.0.0.0:80        0.0.0.0:*     users:(("nginx",pid=812,fd=6))
LISTEN 0      128          0.0.0.0:22        0.0.0.0:*     users:(("sshd",pid=640,fd=3))

19. Ein Dienst lauscht auf 127.0.0.1:8080 — kann man von außen darauf zugreifen?

Nein. Die Adresse 127.0.0.1 ist die Loopback-Schnittstelle und nur von derselben Maschine erreichbar. Um externe Verbindungen anzunehmen, muss der Dienst auf der Adresse der externen Schnittstelle oder auf 0.0.0.0 (alle IPv4-Adressen) lauschen. Das ist neben der Firewall eine häufige Ursache für „der Port ist offen, aber von außen geht es nicht“.

20. Wie macht Linux aus einem Hostnamen eine IP-Adresse?

Die Reihenfolge der Quellen legt die Zeile hosts: in /etc/nsswitch.conf fest, meist zuerst die Datei /etc/hosts, dann DNS. Die Adressen der DNS-Server stehen in /etc/resolv.conf; auf Systemen mit systemd-resolved steht dort die lokale Adresse 127.0.0.53, die echten Server zeigt resolvectl status.

Zum Prüfen verwendet man dig example.com oder dig @1.1.1.1 example.com (Abfrage eines bestimmten Servers). Wichtig: dig und nslookup fragen DNS direkt ab und lesen /etc/hosts nicht, während getent hosts example.com denselben Weg geht wie die Anwendungen.

21. Worin unterscheidet sich TCP von UDP?

TCP baut eine Verbindung auf (Dreiwege-Handshake SYN, SYN-ACK, ACK), garantiert Zustellung und Reihenfolge der Daten und wiederholt verlorene Pakete. Darauf laufen HTTP, SSH und die meisten Datenbanken. UDP verschickt Datagramme ohne Verbindung und ohne Garantien, dafür mit geringeren Verzögerungen — es wird für DNS-Abfragen, Videoanrufe und Spiele verwendet.

22. Eine Website öffnet sich nicht. Wie suchen Sie die Ursache?

Man geht die Schichten durch, vom Namen bis zur Anwendung:

  1. Löst der Name auf: dig seite.example, stimmt die Adresse mit der erwarteten überein.
  2. Ist der Host erreichbar: ping (kann gesperrt sein), traceroute oder mtr.
  3. Ist der Port offen: nc -zv host 443 oder curl -v https://seite.example.
  4. Auf dem Server: läuft der Dienst (systemctl status nginx), lauscht der Port (ss -tlnp), blockiert die Firewall (sudo nft list ruleset, sudo ufw status).
  5. Die Logs der Anwendung und journalctl -u des Dienstes.

Dem Interviewer kommt es auf die systematische Reihenfolge an, nicht auf eine bestimmte Auswahl an Werkzeugen.

23. Was ist der Zustand TIME_WAIT?

Nach dem Schließen einer TCP-Verbindung hält die Seite, die zuerst geschlossen hat, den Socket eine Zeit lang im Zustand TIME_WAIT, damit verspätete Pakete der alten Verbindung nicht in einer neuen mit denselben Adressen und Ports landen. Viele TIME_WAIT-Sockets sind bei einem stark belasteten Server oder einem Client mit vielen kurzen Verbindungen normal. Zählen kann man sie mit ss -tan state time-wait | wc -l.

24. Worin unterscheiden sich /etc/hosts und DNS, und wann braucht man das Erste?

/etc/hosts ist eine lokale statische Tabelle „Adresse — Name“ auf einem bestimmten Rechner. Sie wird vor DNS geprüft (bei Standard-nsswitch) und eignet sich zum Testen: Man kann etwa eine Domain auf einen neuen Server umleiten, bevor die DNS-Einträge geändert sind. DNS ist ein verteiltes System, dessen Antworten alle Clients sehen. Ein Fehler in /etc/hosts ist eine häufige Ursache für die Lage „bei mir öffnet sich die Seite, bei allen anderen nicht“.

Fazit

Typische Linux-Fragen im Gespräch prüfen drei Dinge: ob Sie das Modell des Systems verstehen (Inodes, Rechte, Prozesse, Start), ob Sie die Diagnosewerkzeuge kennen (ss, dig, journalctl, lsof) und ob Sie die Ursache schrittweise suchen können. Antworten Sie mit Befehlen und Beispielen aus der Praxis. Dateisystem, Rechte und Netzwerk behandelt unser Linux-Kurs ausführlich praxisnah.

Häufige Fragen

Wonach fragt man im Gespräch für eine Junior-DevOps-Stelle zu Linux?

Meist nach den Grundlagen: Navigation und Rechte, Prozessverwaltung und systemctl, das Lesen von Logs, Netzwerkwerkzeuge ip, ss, dig und curl sowie die Grundlagen von Bash-Skripten. Häufig gibt es eine praktische Aufgabe wie „Finde heraus, was die Platte füllt“.

Muss ich Befehlsoptionen auswendig können?

Nein, es ist in Ordnung zu sagen, dass Sie die Option in man nachschlagen würden. Wichtiger ist zu verstehen, welches Werkzeug eine Aufgabe löst und was seine Ausgabe bedeutet.

Welche Linux-Distribution sollte ich für ein Gespräch lernen?

Jede gängige Server-Distribution eignet sich: Ubuntu oder Debian oder eine RHEL-kompatible wie Rocky Linux. Die Grundlagen sind gleich, unterschiedlich sind vor allem der Paketmanager und einige Dienstnamen.

Wie bereite ich mich auf den praktischen Teil eines Linux-Interviews vor?

Richten Sie eine virtuelle Maschine ein und lösen Sie echte Aufgaben: einen Webserver als systemd-Dienst konfigurieren, sich per SSH-Schlüssel anmelden, eine Firewall einrichten, den Prozess zu einem Port finden. Laut auszusprechen, was Sie gerade tun, gehört ebenfalls zur Vorbereitung.