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.- Linux ist Open-Source und ist damit lizenzkostenfrei.
- Da keine Lizenzprüfung erforderlich ist, kann eine Festplatte beliebig geklont und in verschiedenen Rechnern eingesetzt werden. Hardware kann ausgetauscht werden, ohne dass Lizenzabfragen auftreten.
- Sicherheit: Der Quellcode kann eingesehen werden. Hintertüren sind unwahrscheinlicher und können jederzeit entdeckt werden.
- Treiber gehören zum Betriebssystem und liegen als Open-Source vor.
Auch wenn der Hersteller die Unterstützung einstellt, kann die Hardware
auch in neueren Systemversionen weiter betrieben werden.
NB: Das gilt nicht für ein paar spezielle Hersteller, die auf closed source bestehen. Solche Hardware sollte man dann tunlichst meiden.
- Skalierbar: Linux kann auf leistungsschwache Systeme angepasst werden.
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:
- Updates und Software stammen aus einem zentralen Repository.
- Die Anwendungen und das System sind aufeinander abgestimmt.
- Die Distributionsserver sind zertifikatsgeschützt.
- Updates stammen aus einer Hand und kommen sich nicht gegenseitig in die Quere.
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)
- Der Linux-Benutzer sieht keine Laufwerke, sondern nur einen nach POSIX festgelegten Verzeichnisbaum.
- Alle Speichermedien werden in ein Verzeichnis eingebunden.
- Festplattenerweiterungen betreffen nicht den Anwender sondern den Administrator.
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 -> MeinProgrammDer symbolische Link kann auch außerhalb des Dateisystems stehen. Er ist ein textueller Link ohne Prüfung, ob die Originaldatei noch da ist.
Benutzerverwaltung
- Benutzer unter Linux haben eine Kennung (oft der Vorname in
Kleinbuchstaben),
eine Benutzernummer (uid), ein Heimatverzeichnis (unter /home) und ein
Passwort.
Benutzer anlegen mit adduser. Information erhalten Sie über den
Befehl man adduser.
# adduser paula
- Wechsel des Benutzers innerhalb der Shell: su - paula
- Rückkehr zum alten Benutzer durch exit oder [Strg]+[D].
- Die Liste der Benutzer steht in /etc/passwd. Die Passwörter allerdings in der Datei /etc/shadow.
- Informationen erhalten Sie über die Befehle man 5 passwd und man shadow.
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.- Die Gruppen werden in der Datei /etc/group gepflegt. Informationen erhalten Sie üben den Befehl man group.
- Der Administrator kann eine Gruppe anlegen: addgroup tstgrp
- Ein Benutzer kann vom Administrator einer Gruppe hinzugefügt werden. usermod -aG tstgrp paula
- Der Administrator kann eine Gruppe löschen: delgroup tstgrp
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.- Eine Datei gehört immer einem Benutzer, typischerweise dem, der sie
angelegt hat. Dazu wird dessen uid hinterlegt.
ls -l MeineDatei -rw-rw-r-- 1 arnold arnold 13 Okt 13 11:07 MeineDatei
- Der Besitzer einer Datei kann durch den Befehl chown
geändert werden. Das darf in der Regel nur der Administrator.
# chown gast MeineDatei # ls -l MeineDatei -rw-rw-r-- 1 gast arnold 13 Okt 13 11:07 MeineDatei
- Eine Datei gehört einer Gruppe. Dazu ist deren gid hinterlegt.
- Die Gruppe kann durch den Befehl chgrp geändert werden.
# chgrp gast MeineDatei # ls -l MeineDatei -rw-rw-r-- 1 arnold gast 13 Okt 13 11:07 MeineDatei
- Jede Datei hat drei Arten von Berechtigungen
- lesen: 4
- schreiben: 2
- ausführen: 1
- Diese Berechtigungen bestehen für den Besitzer, die Gruppe und den
Rest der Welt. Daraus ergibt sich eine dreistellige Zahl.
754 bedeutet:
- Der Besitzer darf die Datei lesen, schreiben und ausführen.
- Die Gruppe darf die Datei lesen und ausführen.
- Der Rest der Welt darf die Datei nur lesen.
- Änderung der Rechte mit chmod, hier 751:
Benutzer darf alles, Gruppe lesen und ausführen, Welt ausführen.$ chmod 751 MeinProgramm $ ls -l MeinProgramm -rwxr-x--x 1 arnold arnold 32 Okt 13 11:17 MeinProgramm
- chmod 600: Nur der Benutzer darf lesen und schreiben. Wichtig für Passwörter o. ä.
- Beispiel für /etc/shadow:
$ ls -l /etc/shadow -rw-r----- 1 root shadow 1615 Aug 28 10:34 /etc/shadow
Programme, die der Gruppe shadow angehören, dürfen die verschlüsselten Passwörter zur Kontrolle beim Einloggen lesen.
- Die Berechtigungen gelten analog für Verzeichnisse.
- Lesen: Sie dürfen den Inhalt eines Verzeichnisses auslesen.
- Schreiben: Sie dürfen in dem Verzeichnis eine Datei anlegen oder löschen.
- Ausführen: Sie dürfen in das Verzeichnis hineinwechseln.
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:- Klassischerweise gibt es einen Benutzer root, der sich einloggen kann, auch wenn man das vermeidet.
- root darf sich nicht anmelden. Administrationsaufgaben
wird der Befehl sudo vorangestellt. Beispiel:
$ sudo more /etc/shadow
- eine Shell mit sudo bash aufrufen oder
- oder kürzer: sudo -s
Kommandozeile
Linux-Administratoren verwenden fast immer die Kommandozeile.- Leicht zu dokumentieren
- Befehle können per Cut and Paste tippfehlerfrei übernommen werden.
Fernwartung
Eine Wartung kann per Remote Shell erfolgen: ssharnold@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:
- Es sind mehrere Wartungssitzungen parallel möglich.
- Die Wartungssitzung stört nicht den Desktop.
- Die Übertragung ist datensparsam, da nur wenige Bytes übertragen werden müssen.
Umgang mit Dateien
Die Datei- und Verzeichnisbefehle:- ls: Zeige Dateien und Verzeichnisse
- cp: Kopiere Dateien (cp quelle ziel)
- mv: Verschiebe Datei oder benenne sie um
- rm: Lösche Datei
- cd: Wechsle das Verzeichnis
- mkdir: Erzeuge ein Verzeichnis
- rmdir: Lösche ein leeres Verzeichnis
- find: Suche und agiere im Verzeichnisbaum
- grep: Suche Textmuster in Dateien
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
- -t sortiere zeitlich
- -r dreht Reihenfolge um
- -d zeige die Verzeichniseigenschaften und nicht den Inhalt
cp: Kopiere Datei
Erstes Argument ist Quelle, zweites das Zielcp quelldatei.txt zieldatei.txtMehrere Dateien möglich. Ziel muss ein Verzeichnis sein.
cp *.txt zielverzeichnisKopierte 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.txtIst 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.datMit den Wildcards * und ? können mehrere Dateien zusammengefasst werden.
rm *.txtMit der Option -r können Verzeichnisse und alle darunterliegenden Dateien und Verzeichnisse gelöscht werden.
rm -r meinverzeichnis
- cd: Wechsle das Verzeichnis
cd zielverzeichnis
- pwd: Zeige das aktuelle Verzeichnis an.
- mkdir: Erzeuge ein Verzeichnis
mkdir neuesverzeichnis
- rmdir: Lösche ein leeres Verzeichnis
rmdir leeresverzeichnis
- rm -r: Lösche nichtleere Verzeichnisse
rm -r projektverzeichnis
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 *.txtZeigt 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
- Der Befehl cat zeigt den Inhalt einer Datei an.
$ cat /etc/passwd
- Der Befehl more zeigt den Inhalt und ermöglicht das Blättern
per Leertaste. [Q} beendet more.
$ more /etc/passwd
Datenumlenkung
- Das Größerzeichen leitet die Ausgabe eines Befehls in eine Datei um.
$ ls > dateiliste.txt
- Das Kleinerzeichen verwendet eine Datei als Eingabe für den Befehl.
$ sort < dateiliste.txt
- Es gibt zwei Datenkanäle. Den Datenkanal und den Fehlerkanal.
find . -mtime 3 > ausgabe.txt 2> error.txt
Wird der Errorkanal nicht benötigt, wird er oft auf /dev/null umgeleitet -- den Schredder. - Weiterleiten der Ausgabe an ein Programm
ls -l | more
Editor
Anfänger verwenden als Editor nano.- Aufruf gefolgt durch den Dateinamen:
$ nano /etc/passwd
- Verlassen durch [Strg]+[X].
- Bei Veränderungen wird gefragt, ob die Änderungen gespeichert werden sollen.
- Der Dateiname kann anschließend geändert werden.
Systemnachrichten
In der Datei /var/log/syslog werden die Fehlerzustände protokolliert. Diese Datei können Sie "live" verfolgen:tail -f /var/log/syslogDie "Übertragung" wird mit [Strg]+[C] beendet.