Tutorial 2: Linux Basics
ASE WS 2023/24
Dieses Dokument ist kein eigenständiges Tutorial sondern unterstützt die Übung. Die grundlegenden Konzepte werden vorgestellt, hilfreiche Links erleichtern die selbständige Vertiefung.
Ziele:
- Ihr kennt wichtige Unix/Linux-Konzepte (Prozesse, Umgebungsvariablen, File Descriptors, Berechtigungen)
- Ihr kennt grundlegende Netzwerk-Tools
- Ihr kennt Werkzeuge und Methoden, um Probleme auf Linux-Servern zu finden und zu beheben.
Dieses Tutorial baut auf den Kenntnissen aus dem Shell-Tutorial auf.
Vorbereitung: wir brauchen eine Shell
Wir brauchen heute für die Beispiele eine simple Linux-Shell und ein paar Linux-Programme.
Option 1: Shell auf dem lokalen Rechner öffnen
Option 2: SSH nach Segfault.net
Anmelden über SSH als Nutzer root
auf einem 'disposable root server' via segfault.net.
Entweder über Putty oder über das ssh
-Programm (seit kurzem auch unter Windows verfügbar).
ssh root@segfault.net # Password is 'segfault'
Hinweis: wenn man das Passwort eingibt, werden keine Zeichen angezeigt.
Achtung: Der Server ist nicht sicher - keine vertraulichen Infos/Passwörter dort eintippen
Erster Schritt auf dem Server: Informationen zu Netzwerk-Schnittstellen prophylaktisch in einen Text-Editor kopieren
Zweiter Schritt: tmate
ausführen.
Paketmanagement unter Debian/Ubuntu
apt show <paketname>
apt search <begriff>
apt install <paketname> <paketname>
apt update
(Paketliste aktualisieren)apt upgrade
(alle Pakete aktualisieren)
Weiterführende Methoden:
- andere Repos hinzufügen (siehe
/etc/apt/sources.list
und/etc/apt/sources.list.d/
) - aus bestimmten Repos installieren (
apt install -t unstable youtube-dl
) - Pakete manuell installieren (
dpkg -i <Dateiname>
) - fehlgeschlagene Installation/Konfiguration neu starten (
apt install -f
/dpkg --configure -a
) - mit
apt-file
(separates Paket) kann man herausfinden, in welchem Paket eine bestimmte Datei steckt
Pfade und Umgebungsvariablen
(live)
Troubleshooting, Debugging, Logging
Tipp: Terminal zerschossen - willkürliche Zeilenumbrüche, komische Zeichen, etc.?
→ sicherheitshalber Ctrl-C drücken um einen leeren Prompt zu haben (oder q
drücken, wenn gerade less/top/… läuft). Dann stty sane<Return>
eintippen, um das Terminal auf Standardwerte zurückzusetzen.
System-Werkzeuge
- uptime
- which
- top / htop / btop
- du
- df
- fuser / lsof
- strace (-p)
Netzwerk-Tools
- ip / ifconfig / iwconfig
- route
- ping
- traceroute / mtr / tcptraceroute
- tcpdump
- ngrep
- netcat / nc
- netstat
- nmap
Logs
(live)
- cat /var/log/...
- journalctl -xe
Aufgaben
Wir beschäftigen uns mit verschiedenen Problemen auf https://sadservers.com/
- Löst - zu zweit - die vier einfachen Probleme unter https://sadservers.com/scenarios - dokumentiert die Lösungsschritte in einer Datei “sadserver-01.txt” usw. (Tipp: der Befehl
history
zeigt die bisher eingegebenen Befehle an
Beispiel:
# Problem: Webserver geht nicht uptime # Auslastung anschauen netstat -pan | grep 80 # Lauscht überhaupt ein Server auf Port 80? ...
Best Practices
- Ein Protokoll
/root/admin.log
o.ä. pflegen, in der man alle Änderungen an einem System und Probleme dokumentiert - …