Der unbekannte Befehl – „diff“ der Differenzierer

Symbolisiertes Terminal

diff ist ein Linux-Kommando zum inhaltlichen Vergleich von Dateien oder Ordnern. Dabei können die Unterschiede so dargestellt werden, dass durch die Ausgabe von diff eine Datei in die andere überführt werden kann. Dies hat eine Bedeutung beim schreiben von Patch-Dateien, durch die Änderungen an Programmcodes vorgenommen werden und diese Änderung daher nur in einer ASCII-Datei vorliegen braucht.

Wenn man zwei identische Dateien miteinander vergleicht so gibt diff keine Meldung aus. Mit der Option -s sieht das Ergebnis dann so aus:

$ diff -s orginal.txt modify.txt
Dateien orginal.txt und modify.txt sind identisch.

und es wird nur angezeigt ob die beiden inhaltlich völlig Dateien identisch sind. Interessant wird diese Funktion jedoch bei inhaltlich unterschiedlichen Dateien die in einem Zusammenhang stehen wie z.B. eine Originalquelle und der geänderte, gepatchte Quelltext.

WeiterlesenDer unbekannte Befehl – „diff“ der Differenzierer

Der unbekannte Befehl – „pidof“, „pkill“, „pgrep“ die Prozessbeherrscher

Symbolisiertes Terminal

In diesem Teil fasse ich gleich drei Befehle zusammen da sie von der Funktion her sehr verwandt sind. Alle diese Befehle sind für das Verwalten und Kontrolle von Prozessen mit Hilfe des Prozessnamens zuständig. Intern werden Prozesse über die PID (process identifier) verwaltet – eine mehr oder minder vom Betriebssystem zufällige aber zum aktuellen Zeitpunkt einmalig vergebene Prozessnummer. Wenn man sich mit ps die Prozesse anzeigen lässt erhält man neben anderen Informationen auch die Prozessnummer:

$ ps aux | grep sshd
root 974 0.0 0.0 15948 1248 ? Ss Jul09 0:00 /usr/sbin/sshd -D
max 15984 0.0 0.0 6088 892 pts/6 S+ 18:07 0:00 grep sshd

Der Übersichtlichkeit wurde hier im Beispiel nach dem Prozess für den ssh-Daemon (sshd) mit den Optionen für alle Prozesse gesucht. Die PID 974 steht hier für den Daemon und 15984 für den Suchprozess selber. Auch top, htop usw. eignen sich für die Anzeige der PID.

WeiterlesenDer unbekannte Befehl – „pidof“, „pkill“, „pgrep“ die Prozessbeherrscher

Der unbekannte Befehl – „file“ der Dateikenner

Symbolisiertes Terminal

Der Befehl ist nützlich wenn wir Dateien haben und wissen wollen welchen Zweck diese Datei hat. In der Windows-Welt bestimmt oft die Dateiendung über die potentielle Funktion einer Datei. Windows-Benutzer sehen diese Endung oft überhaupt nicht da sie vom Betriebssystem ausgeblendet wird und es stillschweigend davon ausgeht, dass die Endung korrekt ist – was in den allermeisten Fällen sicher auch zutreffen wird. Jedoch ist es sowohl unter Windows als auch unter Linux möglich einer Datei eine falsche Dateiendung zu geben. Böse Buben machen dies z.B. um bei schädlichen Email-Anhängen die Funktion zu verschleiern. Eine Datei mit dem Namen boese_datei.pdf.exe wird unter Windows oft nur als boese_datei.pdf angezeigt da die Dateiendung verschleiert wird und erscheint dadurch eine harmlose PDF-Datei statt ein ausführbares Programm zu sein.

WeiterlesenDer unbekannte Befehl – „file“ der Dateikenner

Der unbekannte Befehl – „stat“ der Dateistatus

Symbolisiertes Terminal

In einem weiteren Teil der Serie „Der unbekannte Befehl“ soll hier jetzt stat vorgestellt werden. Dieser Befehl wurde zwar bereits im Artikel über touch vorgestellt aber dieser Artikel hier widmet sich exklusiv diesem Befehl. Mit Hilfe von stat können verschiedene Eigenschaften einer Datei oder eines Ordners ausgelesen werden. Dazu gehören die Zeitstempel aber auch die Zugriffsrechte und allgemeine Dateiinformationen. Wird stat ohne Optionen aufgerufen, so erhält man als Beispiel folgende Ausgabe:

$ stat ipsum.txt 
Datei: ipsum.txt
Größe: 146 Blöcke: 8 EA Block: 4096 reguläre Datei
Gerät: 809h/2057d Inode: 7365099 Verknüpfungen: 2
Zugriff: (0644/-rw-r--r--) Uid: ( 1000/ max) Gid: ( 1000/ max)
Zugriff : 2020-06-11 18:50:30.037729391 +0200
Modifiziert: 2020-06-05 18:18:11.006297528 +0200
Geändert : 2020-06-12 22:11:01.126806416 +0200
Geburt : -

WeiterlesenDer unbekannte Befehl – „stat“ der Dateistatus

Der unbekannte Befehl – „touch“ der Berührer

Symbolisiertes Terminal

Der Befehl touch wird sicher dem einen oder anderen schon einmal unter gekommen sein. Auch dieser Befehl wird oft missbraucht um z.B. in Shellscripten eine leere Datei anzulegen.

$ touch lorem.txt
$ ls -l lorem.txt 
-rw-r--r-- 1 max max 83 Jun 5 20:35 lorem.txt

legt eine leere Datei lorem.txt an.

WeiterlesenDer unbekannte Befehl – „touch“ der Berührer

Der unbekannte Befehl – „tac“ und „rev“ die Umkehrer

Symbolisiertes Terminal

Den Befehl cat (catenate) lernen die meisten schnell kennen. Obwohl es zu den am meisten missbrauchten Befehle gehört (to caternate: verketten), cat ist eigentlich dazu da zwei Dateien aneinander zu hängen, wird er allgemein dazu benutzt um Dateiinhalte anzuzeigen oder per Pipe an ein anderes Programm zu übergeben. Dabei entstehen auch recht unschöne Konstrukte.

WeiterlesenDer unbekannte Befehl – „tac“ und „rev“ die Umkehrer

Der unbekannte Befehl – „watch“ der Wiederholer

Symbolisiertes Terminal

Der Befehl watch ist der erste Teil der Serie „Der unbekannte Befehl“. watch macht eigentlich etwas völlig einfaches was man auch per Shellscript recht einfach ersetzen könnte. Ohne Optionen wäre folgendes Script eine Simulation des Befehls:

#!/bin/bash
# Eine Simulation von watch
# Aufruf "watch-sim <Befehl> <Zeit in Sekunden>"
while true
do
        $1 
        sleep $2
        clear
done

WeiterlesenDer unbekannte Befehl – „watch“ der Wiederholer

Der unbekannte Befehl – die Idee dahinter

Symbolisiertes Terminal

Unter dieser Rubrik habe ich vor in nächster Zeit wenig bekannte Befehle zu erklären. Jeder Anfänger auf der Shell wird Befehle wie cd, ls, mkdir oder rm usw. schnell lernen. Für viele gibt es ein Equivalent zu MS-DOS und die Befehle sind ähnlich oft nur mit einem anderen Namen wie z.B. ls in der Shell entspricht grob dir in der DOS/Windows-Welt in seiner Funktionsweise. Sehr bekannt sind normalerweise Befehle die mit Dateioperationen zu tun haben. Weniger bekannte aber immer noch in guten Maße sind Befehle wie ping, ps, less, cat usw. Hierzu gibt es oft kein direktes Equivalent in der DOS/Windows-Welt aber jeder ambitionierte Anfänger wird irgendwann diese Befehle benutzen. Irgendwann wird die Lernkurve allerdings immer flacher da man scheinbar so das gängigste Repertoire an Befehlen zumindest vom Namen her kennt. Ich habe keine Idee wie viele Shellbefehle sich in den Suchpfaden von Benutzern und von root befinden die sinnvoll eingesetzt werden können.

WeiterlesenDer unbekannte Befehl – die Idee dahinter

Prüfsummen SHA1, SHA256, MD5 überprüfen

Die Grafik aus dem Film „The Matrix“

Prüfsummen oder auch Checksummen als Hash codiert dienen oft um die Authentizität einer Datei, die man aus dem Internet herunterladen kann zu gewährleisten. Die Gebräuchlichsten sind hier md5, SHA1 und SHA256. Die Abkürzungen stehen für kryptographische Verfahren. Allen ist gemeinsam, dass eine kleine Abweichung in einer Datei zu großen Unterschieden in den Hashwerten führt. Das folgende Beispiel zeigt das Verhalten exemplarisch:

$ echo "123456789" > testfile
$ md5sum testfile && sha1sum testfile && sha256sum testfile 
b2cfa4183267af678ea06c7407d4d6d8 testfile
179c94cf45c6e383baf52621687305204cef16f9 testfile
6d78392a5886177fe5b86e585a0b695a2bcd01a05504b3c4e38bc8eeb21e8326 testfile
$ echo "023456789" > testfile
$ md5sum testfile && sha1sum testfile && sha256sum testfile 
c159e1a7fa9951401680d5e6aead65e8 testfile
d61c99de943fb8a1c707d54612961304a001a0b8 testfile
0accf17861b34d7b06477da622ff4506458593496cedf107e5403e65b10b58bd testfile

WeiterlesenPrüfsummen SHA1, SHA256, MD5 überprüfen

Webpage zur Anzeige der von fail2ban geblockten IP-Adressen

Die Grafik aus dem Film „The Matrix“

Irgendwie interessiert mich immer mal woher die IPs kommen die durch automatisierte Angriffscripts von fail2ban aussortiert werden. Was liegt hier nahe – ein Shellscript zu schreiben und dann mit crond regelmäßig zu erneuern. Geblockte IP-Adressen können mit:

fail2ban-client status | grep "Jail list:" | sed "s/ //g" | awk '{split($2,a,",");for(i in a) system("fail2ban-client status " a[i])}'

ausgelesen werden. Ist ein wenig unhandlich diese unformatierte Ausgabe.

WeiterlesenWebpage zur Anzeige der von fail2ban geblockten IP-Adressen

Do NOT follow this link or you will be banned from the site!