Alle Beiträge von Matteo

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

Befehle Suchen in Bash History

Befehl in Bash History finden und erneut ausführen

Bourne-again shell, bash merkt sich die eingegebenen Befehle und speichert die History im Bash-Verlauf, um sie später wiederholt ausführen zu können. Es ist die Standard Shell für Terminalumgebungen bei den meisten Linux-Distributionen, unter macOS kann die Standard Shell auf Bash festgelegt werden, für Windows wird Bash mit der WSL Installation verfügbar.

Befehle Suchen in Bash History, Befehl history bash bash-verlauf
Bash the Bourne-again shell on Debian

Die meisten werden es kennen, mit der Pfeiltaste nach Oben kann man durch den Bash-Verlauf scrollen, um ein zuvor ausgeführten Befehl wiederholt auszuführen.

Bash-History Rückwärtssuche

Was viele nicht wissen, es lässt sich nach einer bestimmten Befehlszeile in der history suchen, so kann mit Ctrl+R die Rückwärtssuche aufgerufen werden, hier gibt man die Zeichen ein an die man sich erinnert.

Bash Reverse Search Ctrl+R

Durch erneutes Ctrl+R scrollt man schrittweise zurück, zu Befehlszeilen die dem Suchmuster in der History entsprechen.

  • Ctrl+R: Bash-Verlauf nach einem Befehl durchsuchen. Ruft den letzten Befehl auf, der den eingegebenen Zeichen entspricht.
  • Ctrl+O: Führt den gefundenen Befehl aus, nach Ctrl+R.
  • Ctrl+G: Verlässt den Verlaufssuchmodus wieder, ohne einen Befehl auszuführen.

Befehl in Bash-Verlauf druchsuchen

Ein häufiges Szenario in dem man sich wiederfindet, besteht darin, einen Teil eines Befehls einzugeben um dann festzustellen, dass man ihn zuvor ausgeführt hat und den Verlauf danach durchsuchen könnte.

Die korrekte Suchmethode mit dem was sich bereits in der Befehlszeile befindet, besteht darin, den Cursor mit Ctrl+A an den Anfang der Zeile zu bewegen, mit Ctrl+R die Rückwärtshistorie aufzurufen, und mit Ctrl+Y die aktuelle Zeile in die Suche einzufügen, und um dann erneut mit Ctrl+R rückwärts zu suchen.

Bash-Verlauf im Terminal anzeigen

Die Liste der Befehle im Bash-Verlauf beginnt mit einer Index Nummer.

$ history

Der Befehl mit der höchsten Nummer ist der letzte ausgeführte Befehl.

495 vi /etc/bash.bashrc
496 cd /var/www/3w/dot/html/content
497 uname -promsvm
498 vi /etc/sysctl.conf
499 multitail -cS postfix /var/log/mail.log
500 multitail -cS apache /var/log/apache2/access.log
501 multitail -cS syslog /var/log/syslog
502 history

Bash-History Filtern und eingrenzen

Wir können die Ausgabe abschneiden, indem wir nach dem Befehl „history“ eine Zahl angeben. Wenn wir beispielsweise nur die letzten 5 Befehle in der History sehen möchten, können wir Folgendes eingeben.

$ history 5

Weitere Möglichkeiten bieten sich beispielsweise an, mit weiterleiten an grep, um die Befehlsverlauf Ausgabe zu filtern.

$ history | grep hostname
365 hostname
369 hostnamectl status
484 hostnamectl set-hostname debian
486 cat /etc/hostname
516 history | grep hostname

Befehle aus der Bash-Historie ausführen

Wir können einen zuvor gemerkten Befehl wiederholt ausführen, indem wir die Nummer mit einem Ausrufezeichen (!) voranstellen. Wie beispielsweise in die Historie oben, können wir den Befehl hostnamectl status aus der history schnell aufrufen, indem man !369 eingibt.

$ !369
   Static hostname: debian
         Icon name: computer-vm
           Chassis: vm
        Machine ID: fc5cb9d7ace83e1c9c1fcbe4ec76d302
           Boot ID: 379bf41010125c63bbaa4f2b778ac54c
    Virtualization: vmware
  Operating System: Debian GNU/Linux 10 (buster)
            Kernel: Linux 4.19.0-17-amd64
      Architecture: x86-64

Dadurch wird der mit der Verlaufsnummer 369 verknüpfte Befehl direkt aufgerufen und auch gleich ausgeführt.

Wir können auch Befehle relativ zu unserer aktuellen Position ausführen. Das wird ermöglicht indem wir die Syntax !-n verwenden, wobei n durch die Anzahl der Befehle ersetzt wird, die wir zurückgehen möchten.

Wenn wir beispielsweise einen Befehl abrufen und ausführen möchten, den wir vor unserem letzten eingegeben haben, können wir !-5 eingeben, die Session könnte so aussehen.

$ !-5
hostname
debian

Um den vorherigen Befehl erneut auszuführen, macht Bash eine Verknüpfung zum letzten Befehl. Mit der Abkürzung !! wird der neueste Befehl wiederholt ausgeführt.

Bash-Verlauf löschen

Den Verlauf der aktuellen Benutzersitzung bereinigen, beispielsweise nach einer Serie fehlerhaften Befehle, die man nicht weiterverwenden möchte.

$ history -c

Der gespeicherte Bash-Verlauf unter Linux komplett löschen.

$ cat /dev/null > ~/.bash_history

Der Befehl cat löscht den Inhalt der Datei .bash_history des aktuell angemeldeten Benutzers.

Fazit

Dies sollte jetzt eine gute Vorstellung davon geben, wie die zur Verfügung stehenden Verlaufsoperationen der Befehle in einer history, mit dem Bash-Verlauf genutzt werden können. Einige davon werden wahrscheinlich nützlicher sein als andere, aber es ist gut zu wissen, dass Bash diese Fähigkeiten hat, falls man sich in einer Position befindet, in der es hilfreich wäre, sie auszugraben.

Nicht zuletzt sollte der Befehl history, die Rückwärtssuche und die einfachen History-Erweiterungen helfen, den Arbeitsablauf zu beschleunigen.

Netzwerkdrucker kann nicht installiert werden

Vertrauen Sie diesem Drucker? Druckerverbindung kann nicht hergestellt werden, Netzwerkdrucker kann nicht installiert werden.

Netzwerkdrucker kann nicht installiert werden

Netzwerkdrucker kann nicht installiert werden

Bei bestimmten Druckern erscheint nach dem Update in einigen Umgebungen die Frage: Vertrauen Sie diesem Drucker? Daraufhin werden Administratorrechte zur Installation der benötigten Treiber erforderlich, sobald eine Anwendung versucht, auf einem Druckserver zu drucken oder ein Client versucht eine Verbindung zu einem Druckserver herzustellen.

Microsoft Artikel CVE-2021-34481

Mit dem Windows Update KB5005652, dieser am 10. August 2021 veröffentlicht wurde, werden standardmäßig administrative Rechte erforderlich, um Treiber installieren zu können. Diese Änderung wurde zum Standardverhalten gemacht, um das Risiko auf allen Windows-Geräten zu minimieren, einschließlich Geräten, die keine Punkt- und Druck- oder Druckfunktionen verwenden.

Standardmäßig können Benutzer ohne Administratorberechtigungen die folgenden Optionen für Point and Print nicht mehr ausführen:

  • Installieren neuer Drucker mithilfe von Treibern auf einem Remotecomputer oder Server
  • Aktualisieren vorhandener Druckertreiber von Remotecomputer oder Server

Hinweis Wird Point und Print nicht verwendet, sollten Systeme von dieser Änderung nicht betroffen sein und sind nach der Installation der am 10. August 2021 veröffentlichten Updates standardmäßig geschützt.

Ändern des Installationsverhaltens für neuen Point- und Print-Treiber (CVE-2021-34481)

Ein Workaround um das Standardverhalten für die Treiberinstallation wiederherzustellen, ohne das administrative Rechte erforderlich werden, ermöglicht ein neuer Registrierungsschlüssel mit dem DWORD-Wert RestrictDriverInstallationToAdministrators=0, damit können Nichtadministratoren signierte und nicht signierte Treiber installieren. Dazu mit der Taste Win und eintippen von Eingabeaufforderung ein Command Prompt als Administrator öffnen und folgenden Befehl ausführen.

Eingabeaufforderung als Administrator öffnen
REG ADD "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows NT\Printers\PointAndPrint" /v RestrictDriverInstallationToAdministrators /t REG_DWORD /d 0 /f

  Beim Erstellen oder Ändern dieses Registrierungswertes ist kein Neustart erforderlich.

  Die Einstellungen für die Punkt- und Druckgruppenrichtlinie werden überschrieben. Daher können die Gruppenrichtlinieneinstellungen diese Registrierungsschlüsseleinstellung wieder außer Kraft setzen.

Einschränkung aufheben von Point and Print auf vertrauens­würdige Server per Gruppen­richtlinie

Mit der Gruppen­richtlinie Point-and-Print-Einschränkungen vertrauenswürdige Server festlegen, unter Computer­konfiguration => Richtlinien => Administrative Vorlagen => Drucker

Gruppen­richtlinie Point-and-Print-Einschränkunge
Gruppen­richtlinie Point-and-Print-Einschränkungen

CVE-2021-36958: Schwachstelle im Print-Spooler von Windows

Microsoft räumte eine weitere Sicherheits­lücke im Print-Spooler von Windows ein. Sie erlaubt An­greifern die Remote-Ausführung von belie­bigem Code mit den Privi­legien des SYSTEM-Account.

Netzwerkdrucker kann nicht installiert werden

Bereits im Juli wurden zwei Sicherheits­lücken im Print-Spooler bekannt, nämlich PrintNightmare (CVE-2021-34527) und CVE-2021-34481. Für beide hat Microsoft mittlerweile Patches bereitgestellt. Dennoch blieb als Lektion aus diesen Schwach­stellen, dass Anwender diese System­komponente deak­tivieren sollten, wenn sie nicht benötigt wird.

Workaround zu Fehler 0x0000011b

Ändern der Drucker-RPC-Bindung CVE-2021-1678