Inhaltsverzeichnis
Sie wollen also Linux-Systemadministrator werden?
Hin und wieder werde ich gebeten, angehende Systemadministratoren oder Leute auf dem Karriereweg zum qualifizierten Linux-Sysadmin oder DevOps-Ingenieur (oder zumindest den Ops-Teil!) ein wenig zu schulen. Dieses Dia-Deck kann von Ihnen selbst verwendet werden, aber es soll in einer klassenzimmerähnlichen Umgebung gegeben werden. Es enthält eine Reihe wichtiger Bereiche, die wichtige Befehle und Möglichkeiten zur Umgehung eines Linux-Systems sind. Auf jeden Abschnitt folgt eine Reihe praktischer Einheiten, damit Ihre Klasse es selbst ausprobieren kann.
Top-Tipp für den Tutor :Das hat bei mir mit kleineren Klassen (2-3 Personen) gut funktioniert. Ich habe eine SSH-Verbindung zu einer Ubuntu-Server-VM hergestellt und tmux darauf ausgeführt. Ich habe dann jeden der Schüler gebeten, sich per SSH einzuloggen (als derselbe Schülerbenutzer) und „tmux Attach“ auszuführen. Auf diese Weise teilten sie sich alle dasselbe Terminal, und der Tutor kann auch mit seinen Terminals interagieren/sehen, während er gleichzeitig Folien von seinem eigenen Laptop aus abspielt. Ich präsentiere die Dias auf einem Beamer oder Fernseher.
Die Kursübersicht umfasst:
- Was ist Linux, Inc. sehr kurze Geschichte.
- Verteilungen.
- Die (wieder Bourne) Shell.
- Das UNIX-Dateisystem.
- Dateibasierte Befehle/Tools
- Integrierte Bash-Befehle
- Umleitung und Pipes
- Benutzerkontenverwaltung
- Berechtigungen
- Festplatten-Tools
- Prozesse
- Vernetzung
- Softwareinstallation / Pakete
- Protokolle / Protokollverwaltung
HINWEIS:Die folgende Präsentation ist für die Präsentation durch einen erfahrenen Moderator konzipiert.
Diese Diashow konnte nicht gestartet werden. Versuchen Sie, die Seite zu aktualisieren oder in einem anderen Browser anzuzeigen.
Linux SysAdmin 101
Ein Leitfaden für Anfänger zur Verwaltung eines Linux-Servers
Für wen ist dieser Leitfaden gedacht?
- Diese Folien sollten von einem kompetenten Moderator begleitet werden.
- Jeder, der an einer Karriere als Linux- oder Unix-Profi interessiert ist
- Verbessern Sie Ihre Linux-Kenntnisse vom Desktop-Benutzer zum Power-Benutzer
- Menschen, die mehr an der Kommandozeile arbeiten möchten
- Lernen Sie Befehle, die Sie möglicherweise nicht kennen
Was ist Linux?
Einen schnellen Überblick über Linux selbst und seine Geschichte finden Sie hier:
https://www.linuxnewbieguide.org
Kurz gesagt ist Linux jedoch ein UNIX-basiertes Betriebssystem, das aus den folgenden Kernkomponenten besteht:
- Der Kernel
- Die Shell (bash im Falle dieses Tutorials)
- Das grundlegende GNU-Toolset
- Und all die anderen Apps, Firefox, ViM usw.
Verteilungen
- Es gibt eine Reihe verschiedener Varianten von Linux.
- Das meiste davon unterscheidet sich durch die Art und Weise, wie das System Software verpackt.
- Die Konfiguration zwischen Distributionen kann leicht unterschiedlich sein.
- Die bekanntesten Distributionen sind:
- Debian &Ubuntu
- Red Hat, CentOS und Fedora
- Andere Distributionen wie Linux Mint, openSuSE und elementary basieren oft auf den oben genannten Plattformen.
Die (wieder Bourne) Muschel
- Nehmt Befehle vom Benutzer entgegen
- Kann als Skriptsprache verwendet werden (wie eine Batch-Datei)
- Kann reguläre Ausdrücke verwenden (z. B. passt A* auf alles, was mit A beginnt).
- Reguläre Ausdrücke werden in fortgeschritteneren Sitzungen behandelt.
Das Dateisystem
Hier ist ein Beispiel. Alles beginnt im Stammverzeichnis ( / ):
/ |-- bin | |-- bash | |-- touch |-- etc | |-- service.conf | `-- networking | |-- eth0.conf | `-- eth1.conf |-- home |-- var
Datei-Tools
- cd (Verzeichnis wechseln, zB cd /home/ajross, cd ../.. )
- pwd (Arbeitsverzeichnis drucken)
- ls (Listenverzeichnis, zB ls -l /home/ajross/Desktop)
- touch (leere Datei erstellen)
- tar (eine Datei oder ein Verzeichnis komprimieren, zB tar cvfpz file.tar *.txt)
- cat (zeigt den Inhalt einer Datei)
- weniger und mehr (zeigt eine Datei Seite für Seite)
- cp (kopieren, zB cp-Datei /home/ajross )
- mv (verschieben oder umbenennen)
- mkdir (ein Verzeichnis erstellen)
- rm (Datei oder Dateien entfernen)
- rmdir (entfernt ein leeres Verzeichnis)
Praktisch:
- Zeige die Dateien in einem beliebigen Verzeichnis
- Erstellen Sie eine leere Datei namens test.txt
- Zeigen Sie den Inhalt von /etc/fstab und beschreiben Sie, was Sie sehen
- test.txt in eine anderetest.txt umbenennen
- Erstellen Sie einen neuen Ordner namens myfolder
- Eine andere test.txt in meinen Ordner verschieben
Datei-Tools (Forts.)
- ln – symbolischer Link (z. B. ln -s /Quelldatei /Ziel-Alias-Datei)
- what (welche Version eines Befehls wird ausgeführt), zB which -a vim
- whereis (basierend auf dem Pfad, gibt den Speicherort einer Datei an – zB whereis vim).
- whatis, file (was macht ein Befehl, file – was macht die Datei)
- finden (z. B. find . -user ajross –max-depth=2)
- head, tail (oben und unten in einer Datei anzeigen)
- verbinden, trennen (zB a.txt b.txt verbinden)
- sortieren (zB du -h /home | sortieren -h)
- du -h (Auslastung der Festplattengröße anzeigen, z. B.:du -h /home –max-depth=2)
- df -h (zeigt, wie viel Speicherplatz auf einem Dateisystem frei ist)
- uniq (zB:uniq files.txt oder cat /var/log/error.log | uniq)
- wc, nl (Wortanzahl, zB:cat /var/log/error.log | wc -l , nl foo.txt)
- grep (Suche nach Inhalt in einer Datei, zB:grep -i foo /var/log/error.log)
- lsof (listet die offenen Dateien auf dem System auf, zB lsof -n).
Praktisch:
- Suchen Sie eine Datei namens sysctl.conf im Ordner /etc
- Den Inhalt einer Datei seitenweise anzeigen
- Zeigen Sie, wie viel Platz der /var-Ordner auf dem Laufwerk einnimmt
- Erklären Sie, was ein symbolischer Link ist
- Durchsuchen Sie den Inhalt von /var/log/kern.log nach dem Wort usb
Bash eingebaut
- Alias
- set / env (echo $PATH)
- beenden / abmelden
- Echo
- neu starten / anhalten / herunterfahren / ausschalten
- Geschichte (zeigt die zuletzt ausgeführten Befehle)
- if, else, while usw..
- unter anderem...
Praktisch:
- Schreiben Sie die Worte „Hello World“ in die Standardausgabe.
- Zeige eine Liste der zuletzt ausgeführten Befehle.
Umleitung und Pipes
- Standard Ausgabe (stdout – 1):
- Echo hallo> myfile.txt
- echo dort>> myfile.txt
- Standard Eingabe (stdin):
- cat
eine anderedatei.txt
- cat
- Standard Fehler (stderr – 2):
- Wenn Sie ls /crapola ausführen, erhalten Sie eine Fehlermeldung (Verzeichnis existiert nicht)
- ls /crapola 2> out.txt (leitet den Fehler in eine Datei namens out.txt um)
- Wenn Sie Standardausgabe und Standardfehler wünschen:stderr (2) gibt kombiniert mit (und &) stdout (1) aus.
- ls /crapola> out.txt 2>&1
- Wenn Sie ls /crapola ausführen, erhalten Sie eine Fehlermeldung (Verzeichnis existiert nicht)
Umleitung und Pipes (Forts.)
- Pfeife
- Legt die Ausgabe eines Befehls in die Eingabe eines anderen. Sehr praktisch.
- ls -l /etc | weniger
- Tee erlaubt Ihnen, die Ausgabe in eine Datei und den Bildschirm
- zu packen
- ls -l | Abschlag.txt
- Legt die Ausgabe eines Befehls in die Eingabe eines anderen. Sehr praktisch.
Praktisch:
- Zeige die Anzahl der Wörter in /var/log/kern.log mit einem senkrechten Strich
- Schreiben Sie die Ausgabe von ls /var in eine Textdatei namens ls.txt
- Hängen Sie die Ausgabe von ls /var/log in dieselbe Datei an (d. h. löschen Sie nicht das Zeug, das bereits dort ist).
Benutzerverwaltung
- Das Konto „root“ ist der System-Superuser.
- Viele Konfigurations- und Systemdateien können nur von root bearbeitet/angezeigt werden.
- Berechtigungen sind der Schlüssel zum Schutz von Dateien
- Sie schreiben vor, welche Benutzer (und Benutzergruppen) an Dateien arbeiten dürfen.
- Lokale Benutzer werden in /etc/passwd gespeichert, die Passwortdatei in /etc/shadow
- Gruppen werden in /etc/groups gespeichert
- Es wird empfohlen, dass Sie sich als normaler Benutzer bei einem Server anmelden und dann mit sudo (oder su) zum Root eskalieren.
- passwd (um ein Passwort zu ändern)
- Benutzer hinzufügen
- userdel
Praktisch:
- Sehen Sie sich die Passwort-, Schatten- und Gruppendateien an
- Versuchen Sie, die Schattendatei als normaler Benutzer zu bearbeiten
- Finden Sie heraus, warum Sie es nicht bearbeiten können.
- Ändern Sie Ihr Passwort.
- Erstellen Sie einen Benutzer und entfernen Sie einen Benutzer.
Berechtigungen
- Berechtigungen erklären:Benutzer, Gruppen, andere, Attribute
- chmod (ändere die Berechtigungen der Datei, zB chmod u+x file.sh)
- chown (ändere den Besitzer einer Datei, zB:chown user file.sh)
- chgrp (ändert den Gruppenbesitz einer Datei, zB:chgrp Gruppenname Datei.sh)
- umask (Standardberechtigungen für einen Ordner)
- setuid (root) – mit Vorsicht verwenden! chmod u+s oder g+s Datei
- unveränderlich / sticky (chmod +i, chmod +t)
Praktisch:
- Erstellen Sie mit touch eine Datei namens test.sh.
- Ändern Sie die Berechtigungen auf user=read, write, execute, group und andere, keine Berechtigungen
- Ändern Sie den Besitz, anstatt sich selbst als Root zu verwenden. Versuchen Sie jetzt, auf die Datei zuzugreifen.
- Ändern Sie den Eigentümer wieder auf sich selbst und bearbeiten Sie die Datei (nano test.sh)
- Fügen Sie #!/bin/bash zur ersten Zeile hinzu
- und Echo hallo Welt in der zweiten Zeile
- Führen Sie das Skript aus – ./test.sh
- Entfernen Sie das ausführbare Bit und versuchen Sie, das Skript erneut auszuführen.
Festplatten-Tools
- e2fsck (Dateisystemprüfung)
- fdisk / cfdisk / parted (Partitionsbearbeitung)
- mkfs (neues Dateisystem erstellen)
- lvm, lvdisplay, lvextend.. etc
- Einhängeliste des Dateisystems:/etc/fstab
Praktisch:
- Zeigen Sie die aktuelle Partitionstabelle an.
- Anzeigen der Dateisysteme, die von Linux gemountet werden
Prozesse
- Prozesse sind nur Apps, die ausgeführt werden. Linux (wie MacOS und Windows) ist ein Multithread-Betriebssystem
- Auf einem Single-CPU-System „schlafen“ im Allgemeinen alle Apps, abgesehen von der einen „ausgeführten“ App mit Zeitscheiben.
- Prozesse können in den Hintergrund oder in den Vordergrund gestellt werden.
- Sie können Signale an Prozesse wie SIGHUP, SIGKILL usw. senden
- Um Prozesse anzuzeigen, verwenden Sie den Befehl ps (zB:ps aux, ps auxfwww für einen Baum).
- Sie können den Eigentümer, den Status, die Ressource und andere Dinge mit ps sehen
- Sie können die CPU-intensivsten Prozesse anzeigen, indem Sie den Befehl „top“ verwenden. Iostat, vmstat zeigen iops und virt mem.
- Sie können Prozesse mit kill, pkill beenden (zB:kill -9 12345, pkill apache2)
Prozesse (Forts.)
- Process Niceness ändert die Priorität, die ein Prozess insgesamt auf dem System hat (zB renice, nice)
- Das Dateisystem /proc enthält alle Informationen über jeden Prozess in einem Rohformat (z. B. cat /proc/12345/status)
- Verwenden Sie Strg+Z, um einen Prozess zu stoppen, bg in den Hintergrund, fg in den Vordergrund, „Befehl &“ automatische Hintergründe
- jobs zeigt Ihre aktuellen Prozesse im Hintergrund. fg %4 wird den 4. Befehl im Hintergrund in den Vordergrund stellen.
- Permanent laufende Prozesse werden als Dienste oder Daemons bezeichnet
- Um einen Dienst zu starten, verwenden Sie entweder den Befehl „service“ oder den Befehl „systemctl“. Alte Systeme verwenden /etc/init.d.
Praktisch:
- Starten Sie einen Prozess, zB cat (der nichts tut).
- Hintergrund des Prozesses.
- Suchen Sie die PID für den Prozess. NB:Seien Sie schlau und filtern Sie die PS-Ausgabe, indem Sie nur nach Katze suchen!
- Beenden Sie den Prozess mit der erhaltenen PID.
- Starten/stoppen/starten Sie einen Dienst neu, sagen Sie rsyslogd.
Networking &Networking-Tools
- ifconfig / ip
- /etc/sysconfig/network (redhat) , /etc/networking (debian)
- ifconfig / ip
- Route / IP-Route
- arp, ping, traceroute, netstat
- dhclient, dhcpd, bind
- /etc/resolv.conf
- /etc/hosts
- ssh, scp, sftp, rsync
- nfs, Samba (SMB/CIFS)
- Apache, Python SimpleHTTPServer
Praktisch:
- Zeigen Sie die IP-Adressen der Maschine
- Erklären Sie, was die lo-Schnittstelle ist
- Sagen Sie, wie Sie neu starten würden
Softwarepakete, Installation
- Das Installieren von Software unter Linux ist eigentlich ziemlich einfach. Noch einfacher als in Windows.
- Red Hat und Debian unterhalten beide große Software-Repositorys.
- Debian-basierte Distributionen verwenden deb-Dateien (aber verwenden Sie apt, um sie zu installieren)
- Red Hat-basierte Distributionen verwenden rpm (werden aber entweder von yum oder dnf installiert)
- .tar/.tar.gz kann beliebige Dateien enthalten, kann aber oft Quellcode enthalten, der kompiliert werden muss.
- ./konfigurieren; machen; make install
Praktisch:
- Installieren Sie das Paket cowsay mit apt
- Cowsay ausführen
Protokolle
- /var/log
- Einige böse Anwendungen protokollieren, wo sie wollen. Grr, zB:/opt/app/log
- syslog/rsyslog
- dmesg / kern.log
- auth.log, lastlog, last, w
Praktisch:
- Suchen Sie im auth.log nach einem Ausdruck, zB login
- Finden Sie heraus, wie viele Zeilen die Phrase in der Datei enthält
- Analysieren Sie die Datei Zeile für Zeile, um Probleme zu erkennen
- Machen Sie dasselbe für Nachrichten/Syslog