Alle Beiträge von Don Matteo

lebt in der Schweiz, ist System Engineer MCP bei A-Enterprise GmbH. Mitglied des UNBLOG Network. Author und Blogger zu den Themen, Linux und Open Source. Tutorials für Windows, VMware, Synology, Fortinet.

Linux Mint Recovery Mode

Recovery Menu von Linux Mint

Wenn auf dem Computer nur Linux Mint installiert ist, und keine anderen Betriebssysteme vorhanden sind, ist das Grub Boot Menü standardmäßig ausgeblendet. Um das Grub Menü beim Start zu erhalten, muss nach dem einschalten die rechte Shift-Taste gedrückt werden, bei virtuellen Maschinen funktioniert das leider nicht, hier muss man das Grub Menü persistent einrichten.

Linux Mint Boot Grub Menu aktivieren

Soll das Grub Menü bei jedem start erscheinen, um das Recovery Menü für Systemreparaturen zu erhalten, oder um Kernel Parameter übergeben zu können, editiert man als root die Datei 90_custom.cfg:

Dabei erst root werden mit sudo su –

$ vi /etc/default/grub.d/90_custom.cfg

und folgende Zeilen hinzufügen:

GRUB_TIMEOUT="5"
GRUB_TIMEOUT_STYLE="menu"

Falls die Datei 90_custom.cfg nicht vorhanden ist, diese einfach mit einem Editor der Wahl erstellen.

Nach dem editieren den folgenden Befehl ausführen:

$ sudo update-grub

Reboot:
Beim nächsten Start erscheint das Grub Boot Menü

Der zweite Eintrag „Advanced options for Linux Mint 20“ wählen.

Es erscheint das Recovery Menu mit den Reparatur Optionen und dem root shell prompt.

Mit „Drop to root shell prompt“ geht es zur Single Mode Console.

Wiederherstellungsmodus (Single Mode)

Mit Enter ist man in der Wartungskonsole. Hier ist man root und hat Schreibrechte auf des Filesystem. Der Single-User-Runlevel ist der niedrigste Betriebszustand, dieser für Wartungsarbeiten, in dem ausschließlich Systemressourcen wie Festplatten oder Dateisysteme aktiv sind.

root Passwort vergessen

Hier einige der meist selbst verursachten Fehler. Wenn das root Passwort vergessen wurde, kann nun ein neues vergeben werden.

root@localhost:~# passwd root

sudo Regelwerks-Plugin konnte nicht initialisiert werden

Bei unsachgemäßer Änderungen an der sudoers Datei kann es zu Fehler kommen.

$ sudo visudo
>>> /etc/sudoers: syntax error near line 24 <<<
sudo: parse error in /etc/sudoers near line 24
sudo: no valid sudoers sources found, quitting

Ist sudo im Standard Runlevel nicht mehr möglich und man sich als root ausgesperrt hat, kann sudo wiederhergestellt werden.

Bevor /etc/sudoers geändert werden kann, muss der Datei das Schreibrecht zugeteilt werden.

$ chmod u+w /etc/sudoers && vi /etc/sudoers

Nach dem editieren muss sudoers wieder geschützt sein.

$ chmod u-w /etc/sudoers

Hier die sudoers Original Datei von Linux Mint 20 für den Fall das diese zur unbrauchbarkeit verändert worden ist.

Hinweis! Änderungen sollten immer nur mit visudo gemacht werden.

#
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults        env_reset
Defaults        mail_badpass
Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"

# Host alias specification

# User alias specification

# Cmnd alias specification

# User privilege specification
root    ALL=(ALL:ALL) ALL

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL

# See sudoers(5) for more information on "#include" directives:

#includedir /etc/sudoers.d

Festplatte hat kein freien Speicher

Wenn kein freier Festplattenspeicher mehr vorhanden ist, können die Logs nicht mehr gespeichert werden, was zum Systemstillstand führt, hier kann in der Single User Mode Console die Speicherbelegung überprüft werden, um wieder freien Speicher zu schaffen.

$ tree -ah /var/log -L 1
$ tree --du -d -shaC | grep -Ev '(  *[^ ]* ){2}\[

Ist das Kommando tree auf dem System nicht vorhanden, kann einer der folgenden du (disk usage) Befehle Hilfe leisten.

$ sudo du –hc ––max-depth=0 /var
$ sudo du -ah /var | sort -n -r | head -n 5
$ sudo du /home -Sh | sort -rh | head -5

SHA256 Hash mit Windows 10 überprüfen

Prüfsummen Auskunft zur Integrität

SHA256-Hashwerte geben Auskunft zur Integrität einer Datei, sie können so etwa vor manipulierten Programmen schützen. Unixoide Betriebssysteme haben die Prüfsummen Werkzeuge wie sha256sum bereits On-Board. Windows 10 beinhaltet in der PowerShell ein cmdlet mit diesem die Prüfsummen schnell überprüft werden können.

Was sind Prüfsummen

Damit die Unversehrtheit einer Datei sichergestellt werden kann, werden Prüfsummen (MD5, SHA256, SHA512, …) angelegt. Dabei wird eine Quersumme über alle Bytes einer Datei gebildet (die Byte-Werte werden nach bestimmten Regeln mit unterschiedlichen Zahlen multipliziert.) Der so errechnete Wert identifiziert den Dateiinhalt eindeutig. Wenn man zu einem späteren Zeitpunkt (oder auf einem anderen Computer) die Prüfsumme erneut erzeugt und mit dem ersten vergleicht, lässt sich erkennen, ob die Datei verändert wurde. Dieses Prinzip wird oft auch genutzt, um zu überprüfen, ob eine Dateiübertragung fehlerfrei stattgefunden hat.

SHA256-Hash Prüfsumme überprüfen

Das überprüfen der Hash-Signatur bietet sich insbesondere bei Downloads an. Ein ISO-Image oder eine Archive-Datei kann nach dem Download auf ihre Integrität und Authentizität geprüft werden. Die Hersteller und Entwickler veröffentlichen hierzu Signaturen, mit diesen ein Image auf die Integrität und Authentizität mittels des SHA256-Hash oder MD5-Hash Wertes verglichen werden kann. Damit die unveränderte Herkunft und Originalität sichergestellt werden kann, ohne wie etwa bei einem Man-in-the-Middle-Angriff dies der Fall sein könnte.

PowerShell Get-FileHash Anwenden

In diesem Beispiel wird das Linux Mint 20 ISO-Image geprüft, dieses zuvor heruntergeladen wurde. Um die Integrität eines ISO-Images zu überprüfen, wird die SHA256-Summe generiert und vergleichen, mit dem SHA256-Hash in der Datei sha256sum.txt, diese ebenfalls heruntergeladen wird.

Die Dateien linuxmint-20-cinnamon-64bit.iso und sha256sum.txt werden in ein Ordner kopiert, dann öffnet man PowerShell und wechselt in den Ordner, wo nun das cmdlet Get-FileHash ausgeführt wird.

PS C:\> Get-FileHash linuxmint-20-cinnamon-64bit.iso -Algorithm SHA256

Algorithm       Hash                                                                   Path
---------       ----                                                                   ----
SHA256          2F6AE466EC9B7C6255E997B82F162AE88BFE640A8DF16D3E2F495B6281120AF9       C:\linuxmint-20-cinnamon-64bit

Der SHA256 Hash des ISO-Image wird generiert und ausgegeben.

Dann öffnet man die zuvor heruntergeladene Datei sha256sum.txt diese den Hash beinhaltet. Prüfsummen Hash werden oft auch als Quersumme, Checksumme oder als Datei-Fingerabdruck bezeichnet.

PS C:\> Get-Content sha256sum.txt
2f6ae466ec9b7c6255e997b82f162ae88bfe640a8df16d3e2f495b6281120af9 *linuxmint-20-cinnamon-64bit.iso

Wie man sieht enthält sha256sum.txt den Hash String in Lowercase, der Hash wird von Get-FileHash jedoch in Uppercase errechnet, damit wir den Hash anschliessend für den Vergleich verwenden können, konvertieren wir diesen aus sha256sum.txt in ein Uppercase String mit ToUpper().

PS C:\> $text="2f6ae466ec9b7c6255e997b82f162ae88bfe640a8df16d3e2f495b6281120af9".ToUpper()

PS C:\> Write-Host $text
2F6AE466EC9B7C6255E997B82F162AE88BFE640A8DF16D3E2F495B6281120AF9

Der Hash String von Get-Content sha256sum.txt wird bei $text zwischen den Anführungszeichen eingefügt.

Get-FileHash Parameter -Algorithm

-Algorithm gibt die kryptografische Hash-Funktion an, die zum Berechnen des Hashwerts aus dem Inhalt der angegebenen Datei oder des angegebenen Streams verwendet werden soll. Die akzeptablen Werte für diesen Parameter sind:

  • SHA1
  • SHA256
  • SHA384
  • SHA512
  • MD5

Wenn kein Wert angegeben oder der Parameter weggelassen wird, lautet der Standardwert SHA256.

Aus Sicherheitsgründen sollten MD5 und SHA1, die nicht mehr als sicher gelten, nur zur einfachen Änderungsüberprüfung verwendet werden, und nicht zum Generieren von Hashwerten für Dateien, die vor Angriffen oder Manipulationen geschützt werden müssen.

Die Prozedur kann in einem PowerShell Script dann für dieses Beispiel wie folgt aussehen.

$text="2f6ae466ec9b7c6255e997b82f162ae88bfe640a8df16d3e2f495b6281120af9".ToUpper()
$hash=(Get-FileHash linuxmint-20-cinnamon-64bit.iso -Algorithm SHA256 | Select-Object -Property Hash | ft -HideTableHeaders)
Write-Host $text
Write-Host $hash

Der Vergleich beider Hashwerte mit folgender Zeile in der PowerShell.

PS C:\> [string]$text -eq [string]$hash

Hash Berechnen und Vergleichen

Das folgende Script berechnet den Hashwert und vergleicht diesen, mit Compare-Object und dem Fingerprint aus der Signatur.

Get-FileHash -Path linuxmint-20-cinnamon-64bit.iso -Algorithm SHA256 | Compare-Object -ReferenceObject "2F6AE466EC9B7C6255E997B82F162AE88BFE640A8DF16D3E2F495B6281120AF9" -DifferenceObject {$_.Hash}

Bei Übereinstimmung der Prüfsummen erscheint keine Ausgabe.

Stimmen die Hashwerte nicht überein, werden beide Objekte ausgegeben.