Linux für Administration
Willemers Informatik-Ecke

Besonderheiten von Linux

Sowohl in Kleingeräten (Router, Smartphones, Fernseher, Auto, IoT) als auch in den großen Rechenzentren wird in erster Linie Linux verwendet, weil Linux erhebliche Vorteile hat.

Distributionen und Repositories

Bei der Installation wird ein Image heruntergeladen, dass mit einem Repository der Distribution verknüpft ist. Das installierte Linux ist mit einem Repository verbunden, aus dem es Updates und weitere Anwendungen herunterladen kann. Die Vorteile:

Hilfe an Bord: Manpages

Mit dem Befehl man cp erhält man einen Manual-Eintrag für den Befehl cp. Das funktioniert auch bei wichtigen Konfigurationsdateien, etwa man fstab. Bei Zweideutigkeiten zeigt man 3 passwd den Befehl und man 5 passwd die Datei. Mit dem Leerzeichen wird geblättert, mit dem Buchstaben Q wird die Manpage verlassen.

Der POSIX-Verzeichnisbaum

Filesystem Hierarchy Standard (FHS)

Details sind hier beschrieben

Der Link

Unter Linux ist es möglich, zwei Einträge im Dateisystem auf den gleichen Dateiinhalt verweisen zu lassen. Einen solchen Verweis nennt man Link.

Der harte Link entsteht durch den Befehl ln. Die Verweise sind gleichberechtigt. Erst wenn der letzte Link gelöscht wird, wird auch der Dateiinhalt entfernt.

$ ls -l MeinProgramm 
-rwxr-x--x 1 arnold arnold 31 Okt 13 16:42 MeinProgramm
$ ln MeinProgramm MeinLink
$ ln -s MeinProgramm MeinSLink
$ ls -l Mein*
-rwxr-x--x 2 arnold arnold 31 Okt 13 16:42 MeinLink
-rwxr-x--x 2 arnold arnold 31 Okt 13 16:42 MeinProgramm
lrwxrwxrwx 1 arnold arnold  9 Okt 14 08:28 MeinSLink -> MeinProgramm
Der symbolische Link kann auch außerhalb des Dateisystems stehen. Er ist ein textueller Link ohne Prüfung, ob die Originaldatei noch da ist.

Benutzerverwaltung

Gruppen

Jeder Benutzer kann in einer oder mehreren Gruppen Mitglied sein. Auch eine Gruppe hat eine Kennung (gid), allerdings kein Heimatverzeichnis und nur in Ausnahmefällen ein Passwort.

Dateirechte und -besitzer

In einem Multiuser-System müssen Dateien in ihren Rechten gegenüber anderen Benutzern einschränkbar sein. Gruppen sorgen für gemeinsame Ressourcen, die wiederum gegenüber Nichtmitgliedern geschützt werden können.

Administratorrechte

Der Benutzer mit der uid 1 heißt root und hat alle Rechte über die Maschine. Für die Administration als root gibt es zwei Konzepte:
  1. Klassischerweise gibt es einen Benutzer root, der sich einloggen kann, auch wenn man das vermeidet.
  2. root darf sich nicht anmelden. Administrationsaufgaben wird der Befehl sudo vorangestellt. Beispiel:
    $ sudo more /etc/shadow
    
Eine Shell (Kommandozeile, Terminal, Konsole) mit root-Rechten anlegen: Aufrufe von sudo müssen durch das eigene Benutzerpasswort bestätigt werden und werden protokolliert. Nicht alle Benutzer sind sudo-berechtigt. Um eine Shell zu beenden, gibt man den Befehl exit ein oder tippt [Strg]+[D] am Anfang einer Zeile.

Kommandozeile

Linux-Administratoren verwenden fast immer die Kommandozeile. Aus dem gleichen Grund werden gern Textdateien für die Konfiguration verwendet.

Fernwartung

Eine Wartung kann per Remote Shell erfolgen: ssh
Der Befehl hieß ursprünglich rsh für remote shell. Allerdings wurde unverschlüsselt übertragen. Der Nachfolger hieß ssh für secure shell.
arnold@tab ~ $ ssh master@193.175.188.253
master@193.175.188.253's password: 
Last login: Mon Sep  5 08:30:42 2022 from 193.175.177.44
master@kt253:~$ 
Mit exit oder [Strg]+[D] kann man sich ausloggen.

Analog gibt es einen Befehl scp zum Kopieren von Dateien über das Netzwerk. Details: man scp

Vorteil einer Wartung per Konsole statt per grafischer Oberfläche:

Der Befehl who zeigt die angemeldeten Sitzungen an.

Umgang mit Dateien

Die Datei- und Verzeichnisbefehle: Mehrere Dateien können durch Wildcards gleichzeitig erfasst werden. Ein Fragezeichen steht für genau ein beliebiges Zeichen. Ein Stern steht für beliebig viele beliebige Zeichen.

Stellt man den Befehl man vor den Befehl zeigt das eingebaute Handbuch, wie der Befehl zu benutzen ist und welche Optionen angeboten werden.

Standardbefehl ls

ls: Zeige Dateien und Verzeichnisse

ls -l MeineDatei 
-rw-rw-r-- 1 arnold arnold 13 Okt 13 11:07 MeineDatei

cp: Kopiere Datei

Erstes Argument ist Quelle, zweites das Ziel
cp quelldatei.txt zieldatei.txt
Mehrere Dateien möglich. Ziel muss ein Verzeichnis sein.
cp *.txt zielverzeichnis
Kopierte Dateien erhalten den kopierenden User als Eigentümer und den aktuellen Zeitpunkt als letztes Änderungsdatum. Mit -rp werden die Originalzustände erhalten. Evtl. root-Rechte erforderlich.
cp -rp *.txt zielverzeichnis

mv: Benenne Datei in eine andere Datei um

mv quelldatei.txt zieldatei.txt
Ist das Ziel ein Verzeichnis, werden die Dateien verschoben. Hier sind mehrere Dateien möglich.
mv *.txt zielverzeichnis

rm: Lösche Datei

Der Befehl rm löscht alle als Argument angegebenen Dateien.
rm einedatei.txt nocheine.dat
Mit den Wildcards * und ? können mehrere Dateien zusammengefasst werden.
rm *.txt 
Mit der Option -r können Verzeichnisse und alle darunterliegenden Dateien und Verzeichnisse gelöscht werden.
rm -r meinverzeichnis

find: Suche und agiere im Verzeichnisbaum

find verz -name "*.bak" -mtime 3 -exec rm {} \;
Sucht im Verzeichnis verz alle Dateien, die auf .bak enden, älter als drei Tage sind und löscht sie.

Der Befehl find ist sehr leistungsfähig, aber eben auch ein wenig komplex. Niemand kennt alle Optionen auswendig.

grep: Suche Textmuster in Dateien

grep Cobol *.txt
Zeigt alle Zeilen in den Dateien, die auf .txt enden, die das Wort Cobol enthalten.

Mit -l werden nur die Dateinamen genannt, in denen die Begriffe auftauchen.

Durch Dollar mit Klammern kann diese Dateiliste einem anderen Befehl als Argument übergeben werden.

rm $(grep -l Cobol *.txt)
Hier werden alle Textdateien, die das Wort Cobol enthalten, als veraltet gelöscht.

Anzeigen einer Textdatei

Datenumlenkung

Editor

Anfänger verwenden als Editor nano. Bei jedem UNIX/Linux-System ist der sehr leistungsfähige Editor vi installiert. Eine Open-Source-Variante vim ist noch leistungsfähiger, muss aber nachinstalliert werden. Leider ist vi nicht sehr intuitiv.

Systemnachrichten

In der Datei /var/log/syslog werden die Fehlerzustände protokolliert. Diese Datei können Sie "live" verfolgen:
tail -f /var/log/syslog
Die "Übertragung" wird mit [Strg]+[C] beendet.