🐧 Linux Bash & Cloud DevOps

Bash 04: Dateirechte (chmod), Signale & Job Control

Schütze Serverdateien mit präzisen Berechtigungen (600/755), verwalte Hintergrund-Jobs und meistere Signal-Handling für resiliente Daemons.

🔐 1. Das Unix-Rechtemodell (Oktal & Symbolisch)

Unix unterscheidet drei Rollen (Owner, Group, Others) mit drei Grundrechten (Read=4, Write=2, Execute=1):

# 🎯 Oktale Rechtezuweisung:
chmod 755 deploy.sh        # rwxr-xr-x: Jeder darf ausführen, nur Owner darf schreiben
chmod 644 config.yaml      # rw-r--r--: Standard für Webserver-Assets
chmod 600 id_ed25519       # rw-------: Streng geheim (SSH Private Key)

# 🎯 Symbolische Anpassung:
chmod u+x script.sh        # Fügt Execute-Recht für den User hinzu
chmod g-w shared.doc       # Entzieht Schreibrecht für die Gruppe

⚡ 2. Prozess-Signale & Asynchrone Job Control

Im Serverbetrieb laufen Hintergrunddienste asynchron. Über Signale kommuniziert der Administrator direkt mit dem Kernel:

# 🎯 1. Job im Hintergrund starten (&):
./data_importer.sh > import.log 2>&1 &
PID=$!                     # Fängt die Prozess-ID des Hintergrundjobs ab

# 🎯 2. Prozess-Existenz ohne Unterbrechung prüfen:
if kill -0 "$PID" 2>/dev/null; then
  echo "Prozess läuft noch..."
fi

# 🎯 3. Graceful Shutdown mit Fallback:
kill -15 "$PID"            # SIGTERM: Sauberes Beenden anfordern
sleep 1
if kill -0 "$PID" 2>/dev/null; then
  kill -9 "$PID"           # SIGKILL: Notaus-Schalter (kann nicht ignoriert werden)
fi
🚪 Didaktische Analogie: Hausordnung & Notaus-Schalter

Dateirechte (chmod 600): Das ist dein persönliches Bankschließfach. Nur du hast den Schlüssel (6=Read/Write), niemand sonst darf auch nur hineinsehen (0=No Access).

SIGTERM vs. SIGKILL: kill -15 ist das Klopfen an der Tür mit der Bitte, das Gebäude geordnet zu verlassen. kill -9 ist die Feuerwehr, die sofort die Sicherungen herausdreht und das Wasser abstellt!

📑 3. Cheat-Sheet: Rechte & Signale

Befehl Syntax / Signal Beschreibung
chmod 600 rw------- Schutz für Private Keys & Secrets
chmod 755 rwxr-xr-x Standard für ausführbare Skripte
& cmd & Startet Befehl asynchron im Hintergrund
$! PID=$! PID des zuletzt im Hintergrund gestarteten Prozesses
kill -0 kill -0 $PID Testet Prozess-Existenz (kein Abbruch)
SIGTERM (15) kill -15 $PID Geordnetes Beenden mit Ressourcen-Cleanup
SIGKILL (9) kill -9 $PID Sofortiger harter Kernel-Abbruch

🎯 Aufgaben & Checkliste in aufgabe.sh

💡 DevOps Pro-Tipp: SSH Private Key Permissions

OpenSSH verweigert strikt die Verbindung, wenn deine Private Keys nicht auf chmod 600 stehen ("UNPROTECTED PRIVATE KEY FILE!"). Automatisiere diese Prüfung in deinen CI/CD-Pipelines!

💻 In Web-IDE öffnen → ← Zurück zu Bash 03 Weiter zu Lehrpfad 2: Bash 05 →