Fryboyter

Git - Nicht übergebene Änderungen rückgängig machen

Gestern habe ich begonnen Änderungen in einem Repository auf meinem Notebook durchzuführen. Die bisherigen Änderungen habe ich allerdings noch nicht mit einem Commit gepflegt.

Da ich die Änderung heute schnellstmöglich einpflegen wollte, habe ich die Änderungen kurzerhand komplett auf einem anderen Rechner durchgeführt und einen entsprechenden Commit erstellt und diesen hochgeladen.

Eben wollte ich die Kopie des Repository auf meinem Notebook mit git pull aktualisieren. Das Ergebnis war allerdings folgende Fehlermeldung.

git pull
error: Pull mit Rebase nicht möglich: Sie haben Änderungen, die nicht zum Commit vorgemerkt sind.
error: Bitte committen Sie die Änderungen oder benutzen Sie "stash".

Da ich ziemlich viel getestet hatte, habe ich mir erst einmal mit git status angesehen um welche Dateien es überhaupt geht. Eine der Dateien war style.css. Nach etwas Recherche bin ich auf git restore gestoßen. Mittels folgendem Befehl habe ich die Änderungen in der Datei style.css kurzerhand rückgängig machen können.

git restore themes/fryboyter/static/css/style.css

Das ganze habe ich dann auch auf die restlichen geänderten Dateien angewand und konnte dann die bereits eingepflegten Änderungen mit git pull herunterladen.

OSBN | Allgemein

Repository mit Submodulen klonen

Ich habe eben ein Repository bei Github auf einen meiner Rechner geklont und festgestellt, das ein Teil der Daten nicht vorhanden ist. Was daran lag, dass der fehlenden Teil als Submodul eingebunden ist. Die Daten liegen also in einem anderen Repository. Um ein Projekt inklusive der Submodule zu klonen kann man folgende Befehl nutzen.

git clone --recursive <LINK-ZUM-REPOSITORY>

Was aber wenn man das Hauptprojekt bereits geklont hat? Man wechselt einfach in das Verzeichnis und führt folgende Befehle aus. Hiermit werden nachträglich auch die Dateien der Submodule heruntergeladen.

git submodule init
git submodule update
OSBN | Allgemein

Luks1 zu luks2 konvertieren

Meine Rechner sind mittels cryptsetup und luks verschlüsselt. Bei meinem Notebook habe ich das schon vor Jahren gemacht, so dass hier immer noch luks in Version 1 verwendet wird. Bei luks in Version 2 wird allerdings Argon2 verwendet, was einen Angriff mittels Brute Force erheblich erschwert.

Wie kann man nun auf Version 2 wechseln ohne die Partitionen neu verschlüsseln zu müssen?

Als erstes sollte man überprüfen ob man nicht schon Version 2 nutzt. Dies erreicht man mit folgendem Befehl:

cryptsetup luksDump /dev/sda2 | grep -A1 "^LUKS"

Anstelle von /dev/sda2 muss man seine verschlüsselte Partition angeben. Dies gilt auch für alle weiteren Befehle. Wird hiermit Version: 2 angezeigt kann man sich weitere Schritte sparen. Wenn Version: 1 angezeigt wird, geht es weiter und man sollte man als erstes den Header sichern. Denn geht etwas schief kommt man nicht wieder an seine Daten. Zum Sichern führt führt man folgenden Befehl aus:

cryptsetup luksHeaderBackup /dev/sda2 --header-backup-file sicherung.dat

Die Datei sicherung.dat kopiert man anschließend auf einen USB-Stick oder auf einen anderen Rechner, da dies neben der Datensicherung (die natürlich jeder regelmäßig erstellt…) unsere Versicherung ist.

Nun geht es ans Eingemachte. Der folgende Befehl konvertiert luks 1 zu luks 2.

cryptsetup convert /dev/sda2 --type luks2

Nun nutzt die verschlüsselte Partition luks 2. Allerdings wird für das Passwort erst einmal nicht Argon2 verwendet sondern das was man ursprünglich angegeben hat. In meinem Fall pbkdf2. Also ist noch ein Befehl nötig um dies zu ändern.

cryptsetup luksChangeKey /dev/sda2 --pbkdf argon2id

Hierbei wird man aufgefordert sein bisheriges und ein neues Passwort einzugeben. Es ist aber auch möglich als neues Passwort erneut sein altes Passwort einzugeben.

Ein abschließender Test mittels cryptsetup luksDump /dev/sda2 sollte nun zum einen Version: 2 als auch die Verwendung von Argon2id anzeigen. Nutzt man mehrere Schlüssel, muss man den Befehl mit luksChangeKey für jeden Schlüssel wiederholen.

Funktioniert nach einem Neustart des Rechners alles wie gewohnt, sollte man vorsichtshalber noch die Header-Sicherung löschen.

OSBN | Linux

Benutzer automatisch ausloggen

Ich gehöre zu den Leuten die sudo nur für bestimmte Befehle und nicht als Ersatz von root nutzen. In fast allen Fällen bin ich so konsequent und beende die Sitzung mit Root-Rechten im Terminal Emulator nachdem ich diese Rechte nicht mehr benötige. Aber eben nur fast immer.

An sich ist das kein Problem, da ich alleiniger Nutzer meiner Rechner bin. Aber sicher ist sicher. Als Lösung kann man die Variable TMOUT nutzen. Mit dieser kann man definieren nach wie vielen Sekunden Inaktivität die jeweilige Session beendet wird. Inaktivität bedeutet hierbei, dass keine Eingabe über die Tastatur erfolgt.

Hierzu legt man die Datei /etc/profile.d/bash_autologout.sh an und trägt in diese folgendes ein.

TMOUT=600
readonly TMOUT
export TMOUT

Bei diesem Beispiel wird nach 600 Sekunden, also 10 Minuten, die jeweilige Session beendet. Dies betrifft sowohl Benutzerkonten als auch root. Diesen Wert kann man nach Belieben anpassen. Mit “readonly TMOUNT” verhindert man, das man die Veriable im laufenden Betrieb ändern kann (z. B. mit unset TMOUT). Wer diese Möglichkeit weiterhin haben will, trägt die Zeile einfach nicht ein. Führt man einen Befehl aus der länger als der angegebenen Zeitraum läuft (z. B. sleep 650 && echo “Hallo Welt”), beginnt der Countdown erst nachdem der Befehl fertig ist. Wer nicht will, das auch normale Benutzer im Terminal Emulator ausgeloggt werden, verzichtet einfach darauf die Zeile “export TMOUT” einzutragen.

OSBN | Linux

Bashtop - Alternative für htop

System- und Prozess-Monitore gibt es wie Sand am Meer. Top, htop, atop und vermutlich noch viele mehr. Vor kurzem bin ich auf eine weitere Alternative mit dem Namen Bashtop gestoßen, die ich interessant finde. So wird zum Beispiel die Auslastung der Netzwerkverbindung und die der CPU grafisch dargestellt. Ansonsten ist die Anzeige etwas bunter als bei anderen Tools aber nicht aufdringlich.

bashtop screenshot

Wer schicke Anzeigen mag, sollte sich das Tool einmal ansehen. Positiv finde ich auch, dass die Netzwerkverbindung erfasst wird. Diese vermisse ich ab und zu bei htop. Trotzdem werde ich htop erst einmal treu bleiben.

OSBN | Linux