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