Shell-Programmierung
- Starten und Beenden von Shellprogrammen
- Erzeugen von Ausgaben
- Einlesen von Benutzereingaben
- Kommandozeilenparameter
- Testen von Bedingungen
- Ganzzahl-Arithmetik in der Shell
- Kontrollstrukturen (if, while, for, case…)
- Funktionen (Subprozeduren)
- Modulare Programmierung
- Verarbeiten von Optionen mit getopts
- Signalbehandlung mit trap
- Interpretieren von Zeichenketten mit eval
- Arrays
- Debugging
Paketverwaltung unter Linux
- Was leistet eine Paketverwaltung?
- Paketformate der Linux-Welt
- Low-Level- und High-Level-Tools
- Paketverwaltung unter Debian/Ubuntu
- Paketverwaltung unter SUSE
- Paketverwaltung unter Red Hat
Verwaltung von Festplatten und Dateisystemen
- Das Dateisystem – logische und physische Sichtweise
- Von Linux unterstützte Filesysteme
- Benennung und grundsätzliche Verwaltung von Datenträgern
- Partitionierung von Datenträgern
- Erzeugen von Filesystemen
- Mounten
- Überprüfen von Filesystemen (Filesystem Checks)
- Swap-Space
LVM (Logical Volume Manager) unter Linux
- Einsatzzweck und Installation von LVM
- Die Kommandozeilenschnittstelle zum LVM
- LVM-Snapshots
- Vergrößern von virtuellen Festplatten in einem LVM-Setup
Netzwerkkonfiguration unter Linux
- Benennung von Ethernet-Devices
- IP-Konfiguration
- Konfiguration des Resolvers und lokale Namensauflösung
- Kommandos zum Anzeigen oder Ändern der Netzwerkeinstellungen
Netzwerk-Tools für Linux
- Basistools
- DNS-Tools
- Sniffer und Scanner
- Monitoring und Statistik
SSH (Secure Shell)
- SSH-Client-Programme
- Public-Key-Authentifizierung
- SSH-Agenten (Linux-Client)
- PuTTY, PuTTYgen und Pageant
- WinSCP
- Fortgeschrittene Konfiguration und Nutzung
Zugriffs- und Eigentumsrechte
- Zugriffsrechte anzeigen und interpretieren
- Ändern der Zugriffsrechte
- Die umask
- Ändern der Eigentumsrechte
- Weitere nützliche Kommandos
Zugriffs- und Eigentumsrechte – Fortgeschrittene Konzepte
- SUID-, SGID- und Sticky-Bit
- Access Control Lists (ACLs)
Lokale Benutzerverwaltung
- Die Benutzer- und Gruppendateien
- Kommandos im Zusammenhang mit Usern und Gruppen
- Kommandos zur Benutzerverwaltung
- Kommandos zur Gruppenverwaltung
- Kommandos im Zusammenhang mit Passwörtern
PAM und NSS
- Pluggable Authentication Modules: Sinn und Zweck
- Funktionsweise von PAM
- Konfiguration des PAM-Systems
- Wichtige/nützliche PAM-Module
- /etc/login.defs
- NSS – Name Service Switch
Prozesse und Prozessverwaltung
- Eigenschaften von Prozessen
- ps – Auflisten von Prozessen
- Weitere Kommandos zur Prozessverwaltung
- kill, killall, pkill – Senden von Signalen
- Jobkontrolle
- Das proc-Filesystem
- Persistieren von Prozessen nach dem Logout
Server-Monitoring unter Linux
- Simple Monitoring-Tools
- Prozesszustände, Load und CPU-Auslastung
- Speicherbedarf und Aktivitäten eines Prozesses monitoren
- Die top-Familie: top, htop, atop, iotop
- Die stat-Familie: vmstat, iostat, mpstat, dstat
- Echtzeit-Sytem-Monitoring mit Netdata
- Festplatten-Monitoring mit SMART
- Ausblick auf große Monitoring-Lösungen
Init-Systeme und Verwaltung von Diensten
- Begriffsklärung und Überblick
- Geschichte von systemd
- Kontrolle von Diensten
- Autostart
- Die Arbeitsweise von systemd
- Analyse des Startvorgangs
- Erstellen eigener Service Units
- Kompatibilität zu SysVinit
- Historisches: SysVinit und Upstart
Systemprotokollierung/Logging unter Linux
- Der Syslog-Dienst
- logger – Die Kommandozeilen-Schnittstelle zum Syslog-Dienst
- Logging mit dem Systemd-Journal (journald)
- Logfileauswertung
- logrotate – Archivieren/Rotieren von Logfiles
- Ausblick: Linux Audit / auditd
Datensicherung
- Datenorientierung der Sicherung
- dd
- tar
- rsync
- rsnapshot
- rdiff-backup
- Ausblick: Große, netzbasierte Open-Source-Lösungen
Zeitgesteuerte Programmausführung
Booten eines Notfallsystems
- Booten eines Notfallsystems von CD/DVD/USB-Stick
- Direktes Booten in eine root-Shell ohne Notfall-CD
Erhöhen der Systemsicherheit
- Maßnahmen vor allen Softwarelösungen
- Maßnahmenkatalog / Checkliste
- Offizielle Maßnahmenkataloge