Screenshot mit Gimp erstellen

Logo von GIMP

Screenshots sind oft recht nützlich um Sachverhalte zu illustrieren und zu verdeutlichen. Ein Screenshot ist unter GNU/Linux mittels der Druck-Taste leicht erledigt. Leider ist da das komplette Desktop abgebildet was einerseits vom Wesentlichen ablenkt aber andererseits unerwünschte Details offen legt. Idealerweise bildet ein Screenshot nur den relevanten Bereich ab und nichts anderes.

Screenshot eine Desktop-Rechners

Weiterlesen

Der unbekannte Befehl – „patch“ das Flickwerk

Symbolisiertes Terminal

patch ist ein Befehl der sicher von den wenigsten Benutzern benutzt wird denn normalerweise übernimmt das Einspielen der Paketbetreuer der Distribution und man installiert das bereits kompilierte Paket. Mit Hilfe von Patches werden Programmversionen oder Sicherheitspatches eingespielt. Jedoch sind auch alle möglichen anderen Szenarien denkbar. Der Vorteil einer Patchdatei ist, sie ist für Menschen lesbar da es eine reine ASCII-Datei ist, sie ist sehr viel kleiner als ein neues Programmpaket und der Patch lässt sich rückgängig machen. Patchdateien besitzen oft die Dateiendung .diff oder .patch. patch ist gewissermaßen das Gegenstück zum Befehl diff.

Weiterlesen

GnuPG-Schlüsseldaten veröffentlichen

Grafik eines Laptops mit Ausrufezeichenschild

In dem vorhergegangen Tutorial wurde gezeigt wie man einfach und mit Hilfe einer GUI mit Thunderbird/Enigmail einen Yubikey für GnuPG vorbereitet. Die Schlüssel helfen nichts wenn man nicht seine öffentliche Schlüssel veröffentlicht. Dies kann man zunächst einmal auf den Schlüsselservern und man erhält dann einen Link der folgendermaßen aussehen kann: https://keys.openpgp.org/vks/v1/by-fingerprint/46761780D7F5D4ED744CD286684A0B0B03A1960E

Dies ist ein auf einem Keyserver abgelegter Schlüssel. Dieser Link sollte sich bereits auf dem Yubikey unter URL befinden.

Für das Veröffentlichen des öffentlichen Schlüssels werden oft folgende Formate angeboten:

  • Key-ID (obsolet)
  • Fingerprint
  • Öffentlicher Schlüssel

Weiterlesen

Einen Yubikey mit Enigmail/Thunderbird für GnuPG einrichten

Bild eines Yubikey Neo

Achtung, diese Anleitung gilt nur bis Thunderbird kleiner als Version 78.0.0 denn für aktuellere Versionen ist Enigmail nicht mehr verfügbar. Ich werde ein Update nachreichen wenn das jetzt eingebaute OpenPGP einen fortgeschrittenen Eindruck macht was derzeit nicht der Fall ist.

GNU Privacy Guard (GnuPG) ist ein Kryptographiesystem was zum Verschlüsseln, Entschlüsseln und der Erzeugung und Verifizierung von Signaturen von Daten dient. Das Open-Source-Emailprogramm Thunderbird bietet mit der Erweiterung Enigmail eine gute Grundlage um sowohl den Yubikey leicht einzurichten als auch für den späteren Gebrauch der Smartcard als Kryptografiesystem für Email.

Zunächst einmal muss Enigmail installiert werden. In Thunderbird kann man unter Extras → Addons nach Addons suchen und installieren. Nachdem Thunderbird mit aktiven Enigmail gestartet ist wird der Yubikey in einen freien USB-Port gesteckt. In der Konsole kann man dann überprüfen ob der Yubikey richtig erkannt wurde:

$ gpg --card-status
Reader ...........: 1050:0116:X:0
Application ID ...: D2760001240102000006073265510000
Version ..........: 2.0
Manufacturer .....: Yubico
Serial number ....: 06353846
Name of cardholder: [not set]
Language prefs ...: [not set]
Sex ..............: unspecified
URL of public key : [not set]
Login data .......: [not set]
Signature PIN ....: forced
Key attributes ...: rsa2048 rsa2048 rsa2048
Max. PIN lengths .: 127 127 127
PIN retry counter : 3 3 3
Signature counter : 0
Signature key ....: [none]
Encryption key....: [none]
Authentication key: [none]
General key info..: [none]

Weiterlesen

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.

Weiterlesen

Suchbefehl „find“ in der Linux-Konsole (II)

Symbolisiertes Terminal

Im ersten Teil dieser Serie habe ich bereits eine ganze Reihe an eher unbekannteren Suchbefehlen behandelt aber den wichtigsten Befehl find ignoriert. Dies war kein böser Wille sondern find ist derartig mächtig und umfangreich, dass man ihn separat behandeln muss. Auch erhebt dies hier nicht einmal im Ansatz den Anspruch auf Vollständigkeit sondern soll einen groben Überblick liefern.

Im Prinzip sucht find ab einem bestimmten Verzeichnis, kann auch das Wurzelverzeichnis / sein, ein bestimmtes Muster und macht eine bestimmte Aktion mit dem Ergebnis – oft einfach nur das Ergebnis auf stdout ausgeben. Nun gilt in der Unix/Linux-Welt das Prinzip „Alles ist eine Datei“ und das wird recht konsequent umgesetzt und dadurch kann man durchaus auch nach Gerätedateien oder Sockets suchen denn sie sind auf dem Dateisystem eine Datei.

Weiterlesen

Suchbefehle in der Linux-Konsole (I)

Symbolisiertes Terminal

Ich wage mich jetzt einmal an das Thema suchen in der Linux-Shell. Das Thema ist letztlich ein Fass ohne Boden da alleine der Befehl find sehr mächtig ist und man durch die möglichen Optionen schier erschlagen wird. find ist sicher der Befehl der am bekanntesten ist aber es gibt eine ganze Reihe nützliche und spezialisierterer aber deutlich unbekanntere Befehle die einem das Leben erleichtern wenn man etwas im Dateisystem sucht. Der Befehl find wird hier nicht behandelt sondern wird separat im zweiten Teil dieser Serie behandelt. Die hier behandelten Befehle sind:

  • grep
  • which
  • whereis
  • apropos
  • whatis
  • locate

Weiterlesen

Der unbekannte Befehl – „reset“ der Rettungsanker

Symbolisiertes Terminal

Wem ist das noch nicht passiert und hat versucht eine binäre Datei mit cat oder less versucht anzuzeigen? Das Ergebnis ist dann man erhält eine unlesbare Kolonne an mehr oder minder seltsamen ASCII-Zeichen:

▒AE
   �-@s��@A�]
J
 ,.`s��Wc�D▒�D �h▒ADD.�s��]B�E▒�E �E(�H0�H8�G@j8A0A(B B▒B�.�s���.�s��b�a�lr�l�r�h`r�h s�� �0�`�`�v��p�p���0����q0�p���m�um@u`� ����� �����@�p��� �0�@���о�� �����@���p���tL�Ӌ׋݋��������������������t�f����▒� �%�,�7�>�G���a8�bU�d_�De��o����h��i��k��n��G��qҌrf�sI�wڌA��B��F�����
�H���#��(�I���/�L;�NC�Q���N�R{��X��m��k�Tt��s��������~����Z�����~�����}���      �����ό����
                                                                                          �>�������▒�� ���#�&�)�,�/���2������8�=�����;��%�2�?�L�S�8��[�v
�l▒��� �                                             @
�
 ▒ �  �*P     ▒������o����o���o����o��6@F@V@f@v@�@�@�@�@�@�@�@�@AA&A6AFAVAfAvA�A�A�A�A�A�A�A�ABB&B6BFBVBfBvB�B�B�B�B�B�B�B�BCC&C6CFCVCfCvC�C�C�C�C�C�C�C�CDD&D6DFDVDfDvD�D�D�D�D�D�D�D�DEE&E6EFEVEfEvE�E�E�E�E�E�E�E�EFF&F6FFFVFfFvF�F�F�F�F�F�#����?������Չe�����ˍȍȍ΍ԍڍ����������`�%�7a5f86cd6394e8f583c14d786d13b3bcbe051b87.debug�cU".shstrtab.interp.note.ABI-tag.note.gnu.build-id.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.got.text.fini.rodata.eh_frame_hdr.eh_frame.init_array.fini_array.data.rel.ro.dynamic.got.plt.data.bss.gnu_debuglink
                                                                        ���� !��$4��>o
                                                                                     ��`
                                                                                       ▒F  �N���o[���o��jhh▒tB�*�*�    ▒~@@y @ @���F���F�F�%��l�l  �pp)Q �,�,��(�(�����8
�����#�h &�� ��4

Weiterlesen

Spamassassin – warning: description exists for non-existent rule USER_IN_WELCOMELIST_TO

Käfer (Bug)

Seit ein paar Tagen hatte ich auf dem Server unter Debian Buster immer wieder folgende Fehlermeldungen beim täglichen Update von Spamassassin der Nachts per Cron-Job startet:

/etc/cron.daily/spamassassin:
Failed to set filetime 1594704651 on outfile: Die Operation ist nicht erlaubt
Failed to set filetime 1594704651 on outfile: Die Operation ist nicht erlaubt
Failed to set filetime 1594704651 on outfile: Die Operation ist nicht erlaubt
Failed to set filetime 1594704652 on outfile: Die Operation ist nicht erlaubt
config: warning: description exists for non-existent rule USER_IN_ALLOWLIST_TO

channel: lint check of update failed, channel failed
sa-update failed for unknown reasons

Weiterlesen

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.

Weiterlesen

kais-universum.de