Fryboyter

Bestimmte Zeilen aus der Historie entfernen

Manche Sachen wie Passwörter oder andere sensible Daten sollten nicht in der Historie der Shell landen. Wenn ich daran denke, setze ich vor dem Befehl ein Leerzeichen, so dass der betreffende Befehl in der Historie erscheint. Oft denke ich aber nicht daran. Daher habe ich mir jetzt eine Funktion erstellt, mit der ich die Einträge schnell wieder entfernen kann.

Im Verzeichnis ~/.func liegen meine Funktionen. Dort habe ich einfach die Datei clrhist angelegt und mit folgendem Inhalt befüllt und abgespeichert.

function clrhist() {
awk -i inplace -v rmv="$1" '!index($0,rmv)' "$HISTFILE"
}

Damit diese Funktion funktioniert, ist abschließend noch der Eintrag source ~/.zfunc/clrhist in der .zshrc nötig. Vermutlich sollte das ganze in dem Fall auch für andere Shells wie die bash funktionieren. Hier wäre der Eintrag dann in der .bashrc nötig. 

Nehmen wir nun als Beispiel an, das wir in geistiger Umnachtung das Passwort "passwort123" als Befehl eingegeben haben. Mit clrhist passwort123 lässt sich der Eintrag nun aus der Historie der Shell tilgen. Hierbei werden aber auch Zeilen wie "echo passwort123" oder "grep passwort123 /etc" gelöscht.


Rclone - Daten mit mehreren Cloud-Anbietern synchronisieren

Wie nun bekannt wurde, wird der Cloud-Anbieter Dropbox demnächst unter Linux nur noch Daten auf unverschlüsseltem ext4-Dateisystem synchronisieren. Bisher hatte ich dort meine verschlüsselten Datenbank-Dumps hochgeladen. Allerdings werde ich wegen einem Programm definitiv nicht von Btrfs auf ext4 umsteigen.

Da ich die Daten weiterhin gerne "offside" speichern und diese dann mit einem meiner Rechner herunterladen würde, habe ich mich spontan für pCloud als Alternative entschieden. Diesen Dienst nutze ich schon seit längerem ohne Probleme unter Linux und Windows. Zudem hat dieser seinen Sitz in der Schweiz und nicht in den USA. Für die Sicherung auf Dropbox hatte ich bisher den Dropbox-Uploader genutzt. Ein solches einzelnes Script gibt es scheinbar für pCloud nicht. Ist wohl nicht bekannt genug. Nach etwas Google-Fu bin ich allerdings auf rclone gestoßen. Mit diesem Tool lassen sich Daten mit diversen Cloud-Anbietern aber auch über SFTP, HTTP oder WebDAV synchronisieren.

Die Einrichtung von rclone ist dank der Dokumentation ein Kinderspiel. Im Grunde reicht es die Binärdatei rclone herunterzuladen und rclone config auszuführen. Hierbei wird dann das eine oder andere abgefragt, was aber kein größeres Problem darstellt. Alles in allem dürfte die Umstellung von Dropbox-Uploader auf rclone inkl. lesen der Dokumentation und Anpassung des Backup-Scripts keine 10 Minuten gedauert haben. Wer also auch von Dropbox weg will, sich aber kein eigene Upload-Script bauen will, sollte sich rclone einmal ansehen. Das Tool ist übrigens unter der MIT Lizenz veröffentlicht und das Projekt gibt es seit ca. 6 Jahren und wird aktiv weiterentwickelt. Somit sollte es auch in absehbarer Zeit noch funktionieren.


KeePassXC - Autotype außerhalb des Browsers ausführen

Um mich zum Beispiel in einem Forum einzuloggen, nutze ich KeePassXC in Verbindung mit der Erweiterung KeePassXC Browser, die es für die verbreitesten Browser gibt. Hier erfolgt die Zuordnung der Zugangsdaten anhand der in Keepass hinterlegten URL. Was aber wenn es keine URL gibt? Zum Beispiel bei Steam.

Auch hierfür gibt es eine Lösung. In KeePassXC wählt man einfach den betreffenden Eintrag aus und klickt links auf "Auto-Type". Unter "Fenster-Einstellungen" klickt man links auf das Pluszeichen und trägt dann beim Fenstertitel "Steam Login" (ohne ") ein weil dies eben der Titel des Fensters ist. Und klickt anschließend auf "Anwenden". Öffnet man nun Steam und führt den Shortcut für Autotype in KeePassXC aus, sollte es funktionieren. Eigentlich. Bei mir wurde als Benutzername aber immer der Benutzername und das erste Zeichen des Passworts eingetragen (keine Ahnung ob nur ich betroffen bin, oder ob das ein allgemeiner Bug ist). Nach einigen Versuchen habe ich hierfür zumindest einen Workaround gefunden.

Man wählt erneut den betreffenden Eintrag in KeePassXC und öffnet dort wieder die Einstellungen für Auto-Type aus. Unter dem Fenstertitel bei dem wir gerade "Steam Login" eingetragen haben, findet man "Spezielle Auto-Type-Sequenz für dieses Fenster verwenden". Hier sollte {USERNAME}{TAB}{PASSWORD}{ENTER} eingetragen sein. Dies ändert man nun auf {USERNAME}{DELAY 1000}{TAB}{DELAY 1000}{PASSWORD}{ENTER} ab und klickt wieder auf "Anwenden". Nun sollte der Benutzername eingetragen werden, dann wird eine Sekunde gewartet. Dann wird in das Passwortfeld gewechselt und wieder eine Sekunde gewartet. Anschließend wird das ganze noch mit Enter bestätigt. Vermutlich kann man hier die Verzögerung auch noch verkürzen. Aber da es mich nicht stört, lasse ich es erst einmal so.


Ausnahmen für CopyQ erstellen

Für meine Passwörter nutze ich aktuell den Passwortsafe KeePassXC. Leider habe ich ab und zu die schlechte Angewohnheit Passwörter einfach zu kopieren, so dass diese in Klipper (Zwischenablage unter KDE Plasma) landen. Was beides irgendwie blöd ist.

Leider lassen sich bei Klipper keine Ausnahmen für bestimmte Programme definieren und KeePassXC kann auch in Verbindung mit Klipper die betreffenden Einträge nicht nach X Sekunden automatisch entfernen (was sich aber hoffentlich bald™ dank eines Pull Request ändern sollte). Trotzdem bin ich jetzt auf CopyQ umgestiegen, da diese Alternative einfach mehr Funktionen bietet und allgemein weniger Probleme macht.

Um zu Verhindern, dass KeePassXC in Verbindung mit CopyQ Einträge in der Zwischenablage erzeugt, öffnet man CopyQ und drückt F6. Über "Hinzufügen" erstellt man jetzt einen neuen Befehl. Der Name ist hier frei wählbar. Unter "Art der Aktion" wählen wir "Automatisch" aus. Unter "Element erfassen" tragen wir bei Fenster "- KeePassXC" (ohne die ") ein, da in der Titelzeile von Keepass immer Datenbankname - KeePassXC steht. Als Befehl geben wir nun noch "copyq ignore" ein (ebenfalls wieder ohne ") und speichern das ganze. Kopiert man nun die Zugangsdaten direkt, sollten diese nicht mehr in der Zwischenablage von CopyQ landen.

Bleibt nur die Frage, was macht man mit Klipper? Früher war Klipper einfach ein extra Tool, dass man beenden und entfernen konnte. Aktuell ist es fester Bestandteil von Plasma. Aber auch hier kann man Klipper noch deaktivieren. Auf den ersten Blick ist es nur nicht ganz so offensichtlich. Neben den Symbolen im Tray sollte ein Pfeil angezeigt werden. Wenn man mit der rechten Maustaste darauf klickt, sollte "Einstellungen für den Systemabschnitt der Kontrollleiste" angezeigt werden. Dies wählt man aus und findet dann unter "Allgemein" den Punkt "Zwischenablage". Hier entfernt man die Auswahl und klickt auf "Anwenden". Anschließend macht man am besten einen Neustart, da sonst Klipper erst einmal im Hintergrund weiterläuft.


Befehl von Terminal lösen

Ich habe heute Abend etwas mit KeepassXC und KeepassXC-Browser herumgespielt und KeepassXC im Terminal Emulator gestartet. Nun wollte ich diesen beenden ohne das KeepassXC beendet wird.

Da ich KeepassXC ganz normal mit keepassxc gestartet habe, würde das Schließen des Terminal Emulators auch das Beenden von KeepassXC bedeuten. Aber dies lässt sich wie folgt verhindern.

Strg + Z
bg
disown %1

Mit der ersten Zeile legen wir den Prozess schlafen. Mit der zweiten Zeile befördern wir den Prozess in den Hintergrund. Und mit der dritten Zeile lösen wir den Prozess vom Terminal Emulator ab. Nun kann man das Fenster des Terminal Emulators einfach schließen und der Prozess läuft unabhängig davon weiter.