Zum Inhalt

Block 05 – Linux-Grundlagen

Lernziele

  • Du kannst die wichtigsten Linux-Verzeichnisse und ihre Bedeutung erklären
  • Du kannst absolute und relative Pfade unter Linux und Windows unterscheiden
  • Du kannst Linux-Dateiberechtigungen (POSIX) lesen und erklären
  • Du kennst die wichtigsten Unterschiede zwischen Linux und Windows im Bezug auf Pfade und Berechtigungen

1. Das Linux-Dateisystem

Linux verwendet ein einheitliches hierarchisches Dateisystem. Alles beginnt beim Root-Verzeichnis / – es gibt keine Laufwerksbuchstaben wie unter Windows.

/
├── bin/       → Grundlegende Programme (ls, cp, mv)
├── boot/      → Bootloader und Kernel
├── dev/       → Gerätedateien (Festplatten, USB, etc.)
├── etc/       → Systemkonfigurationsdateien
├── home/      → Heimverzeichnisse der Benutzer
│   └── jonas/ → Heimverzeichnis von Benutzer "jonas"
├── lib/       → Systembibliotheken
├── opt/       → Optionale/Drittanbieter-Software
├── proc/      → Virtuelles Dateisystem (Prozessinformationen)
├── root/      → Heimverzeichnis des Root-Benutzers
├── srv/       → Daten für Dienste (z.B. Webserver)
├── tmp/       → Temporäre Dateien (wird beim Neustart geleert)
├── usr/       → Benutzer-Programme und Bibliotheken
│   ├── bin/   → Programme für alle Benutzer
│   └── local/ → Lokal installierte Software
└── var/       → Variable Daten (Logs, Datenbanken, Webserver-Dateien)
    ├── log/   → Systemlogs
    └── www/   → Webserver-Dateien (DocumentRoot)

Die wichtigsten Verzeichnisse für den Webserver-Betrieb

Verzeichnis Inhalt Relevant weil
/etc/apache2/ Apache-Konfiguration Virtual Hosts, SSL-Zertifikate
/etc/php/ PHP-Konfiguration php.ini, FPM-Konfiguration
/etc/mysql/ MySQL-Konfiguration Datenbankserver-Einstellungen
/var/www/html/ Standard DocumentRoot WordPress-Dateien
/var/log/apache2/ Apache-Logs Fehlersuche
/var/log/mysql/ MySQL-Logs Fehlersuche
/home/ubuntu/ Heimverzeichnis SSH-Keys, Skripte
/tmp/ Temporäre Dateien PHP-Uploads landen hier zuerst

Übung: Linux-Dateisystem Zuordnungsübung – Weise Dateien und Programme dem richtigen Verzeichnis zu.


2. Pfade

Absoluter Pfad

Ein absoluter Pfad beginnt immer beim Root (/ unter Linux, Laufwerksbuchstabe unter Windows) und beschreibt den vollständigen Weg zur Datei.

# Linux
/var/www/html/wp-config.php

# Windows
C:\Daten\Bilder\Blume.jpg

Ein absoluter Pfad ist immer eindeutig – egal in welchem Verzeichnis du dich gerade befindest.

Relativer Pfad

Ein relativer Pfad beginnt beim aktuellen Verzeichnis und beschreibt den Weg relativ dazu.

# Du bist in /var/www/html/
# Relativer Pfad zu wp-config.php:
wp-config.php

# Relativer Pfad zu einem Bild in einem Unterordner:
wp-content/uploads/2024/bild.jpg

# Eine Ebene höher:
../andere-seite/index.php
Symbol Bedeutung
. Aktuelles Verzeichnis
.. Übergeordnetes Verzeichnis
~ Heimverzeichnis des aktuellen Benutzers
/ Root-Verzeichnis (Linux)

Unterschiede Linux vs. Windows

Linux Windows
Trennzeichen / (Slash) \ (Backslash)
Wurzel / (ein einziges Root) C:\, D:\ (pro Laufwerk)
Case-sensitive ✅ Ja ❌ Nein
Versteckte Dateien .dateiname (Punkt am Anfang) Dateiattribut
Max. Pfadlänge 4096 Zeichen 260 Zeichen (Standard)

Praxisrelevanz: Wenn du WordPress-Dateien von Windows auf einen Linux-Server kopierst, können Pfade mit falscher Gross-/Kleinschreibung auf Linux nicht gefunden werden – obwohl sie unter Windows funktioniert haben.

Übung: Übung Pfade


3. Dateiberechtigungen (POSIX)

Linux verwendet das POSIX-Berechtigungssystem. Jede Datei und jedes Verzeichnis hat drei Berechtigungsebenen:

Ebene Beschreibung
Owner (u) Der Besitzer der Datei
Group (g) Die Gruppe, der die Datei gehört
Others (o) Alle anderen Benutzer

Berechtigungstypen

Symbol Wert Bedeutung bei Datei Bedeutung bei Verzeichnis
r 4 Lesen Inhalt auflisten (ls)
w 2 Schreiben Dateien erstellen/löschen
x 1 Ausführen Verzeichnis betreten (cd)
- 0 Keine Berechtigung Keine Berechtigung

Berechtigungen lesen

ls -la /var/www/html/wp-config.php
-rw-r--r-- 1 www-data www-data 3412 Jan 15 10:23 wp-config.php
- rw- r-- r--
│ │   │   │
│ │   │   └── Others: r-- = 4 (nur lesen)
│ │   └────── Group:  r-- = 4 (nur lesen)
│ └────────── Owner:  rw- = 6 (lesen + schreiben)
└──────────── Dateityp: - = Datei, d = Verzeichnis

Berechtigungen als Zahl (Oktal)

Die Summe der Werte ergibt die oktale Darstellung:

rw-  = 4+2+0 = 6
r--  = 4+0+0 = 4
r--  = 4+0+0 = 4
→    = 644

Häufige Berechtigungen:

Oktal Symbolisch Bedeutung
644 -rw-r--r-- Standarddatei: Owner lesen/schreiben, Rest nur lesen
755 -rwxr-xr-x Standardverzeichnis/Skript: Owner alles, Rest lesen+ausführen
600 -rw------- Privat: nur Owner lesen/schreiben (z.B. SSH-Key)
777 -rwxrwxrwx Alle dürfen alles – Sicherheitsproblem, vermeiden!

Berechtigungen setzen

# Mit Oktalzahl
chmod 644 wp-config.php
chmod 755 /var/www/html/

# Rekursiv für alle Dateien in einem Verzeichnis
chmod -R 755 /var/www/html/

# Besitzer ändern
chown www-data:www-data wp-config.php

# Besitzer rekursiv ändern
chown -R www-data:www-data /var/www/html/

Warum sind Berechtigungen für WordPress wichtig?

WordPress-Dateien müssen dem Webserver-User (www-data) gehören, damit: - Der Webserver PHP-Dateien ausführen kann - WordPress Dateien hochladen und Plugins installieren kann - Konfigurationsdateien wie wp-config.php nicht von aussen lesbar sind

WordPress-Empfehlungen:

Pfad Berechtigung Grund
wp-config.php 640 oder 644 Enthält DB-Passwort – so wenig Zugriff wie möglich
wp-content/uploads/ 755 WordPress muss Uploads schreiben können
PHP-Dateien 644 Lesen reicht – kein Ausführungsrecht nötig (PHP-FPM übernimmt das)
Verzeichnisse 755 Zugänglich, aber nicht schreibbar für andere

Linux vs. Windows Berechtigungen

Linux (POSIX) Windows (ACL)
Modell Owner / Group / Others Benutzer und Gruppen mit detaillierten Regeln
Flexibilität Einfach, wenige Stufen Sehr granular (Lesen, Schreiben, Ausführen, Ändern, ...)
Konfiguration chmod, chown Rechtsklick → Eigenschaften → Sicherheit
Vererbung Nicht automatisch Standardmässig von übergeordnetem Ordner

Testfragen

  1. Was ist der Unterschied zwischen einem absoluten und einem relativen Pfad? Gib je ein Beispiel für Linux und Windows.
  2. Du bist im Verzeichnis /var/www/html/wp-content/themes/. Wie lautet der relative Pfad zur Datei /var/www/html/wp-config.php?
  3. Was bedeutet die Berechtigung 755 in symbolischer Schreibweise? Was darf der Owner, was darf die Group?
  4. Warum ist 777 als Berechtigung ein Sicherheitsproblem?
  5. Welchem User sollten WordPress-Dateien auf einem Apache-Server gehören und warum?
  6. Was ist der Hauptunterschied zwischen dem Linux-Dateisystem und dem Windows-Dateisystem bezüglich der Wurzel (Root)?
  7. Warum kann eine WordPress-Installation, die unter Windows entwickelt wurde, auf Linux Probleme mit Pfaden haben?
  8. Was bedeutet es, wenn eine Datei unter Linux mit einem Punkt beginnt (z.B. .env)?