Schlagwort-Archive: Linux

Bei ssh Verbindungen werden die Kennworte lesbar dargestellt

Problem:
Wenn man beim Kunden sitzt und sich per ssh auf einen Server verbindet, möchte man in der Regel nicht, dass die eingegebenen Kennworte lesbar dargestellt werden.

Bei folgenden Beispielen ist dies aber der Fall:

Beipiel1:
ssh benutzer@server ‚mysql -u benutzer -p‘

Beispiel2:
ssh benutzer@server „sudo ls“

In der jetzt kommenden Kennwortabfrage  wird in beiden Fällen das Kennwort gut lesbar angezeigt.

Lösung:
Um die Passworteingabe wieder zu verstecken, muss man lediglich die Option ‚-t‘ mitgeben.  Also:
ssh -t benutzer@server ‚mysql -u benutzer -p‘
bzw.
ssh -t benutzer@server „sudo ls“

Dadurch wird die Kennworteingabe wieder „unsichtbar“ gemacht.

In dem Manpages zu ssh findet man folgende Beschreibung:
-t      Force pseudo-terminal allocation.  This can be used to execute arbitrary screen-based programs on a remote machine, which can be very useful, e.g. when
             implementing menu services.  Multiple -t options force tty allocation, even if ssh has no local tty.

Normalerweise wird bei einer ssh-Verbindung kein Pseudoterminal geöffnet, welche die Ein- und Ausgabe mit einem Prozess verbindet.
Daher werden die Kennworteingaben auch nicht maskiert.

Wenn man das dauerhaft haben möchte, ohne jedes Mal das ‚-t‘ eingeben zu müssen, kann man die ‚~/.ssh/config‘ entsprechend bearbeiten. Mehr dazu ist in den Manpages zu lesen:
man 5 ssh_config im Bereich RequestTTY

brace expansion: Verzeichnisse erstellen und löschen

Wenn man ein Verzeichnis mit mehreren Unterordnern erstellen will, kann man natürlich per mkdir jeden Ordner einzeln anlegen.
Das Ganze kann man allerdings auch einfacher haben.

Konkretes Beispiel: Beim Anlegen von Projektverzeichnissen kann es hilfreich sein, wenn man die benötigten Unterordner gleich mit erstellen kann:

sudo mkdir -p /Projekte/Nummer220/{Hardware,Software,Dokumentation}

Das ‚-p‘ muss mitgenommen werden, da dadurch die benötigten übergeordneten Verzeichnisse (in diesem Fall die ‚Nummer220‘) erstellt werden.
Im Verzeichnis ‚/Projekte‘ wird nun ein Ordner ‚Nummer 220‘ mit den Unterordnern ‚Hardware‘, ‚Software‘ und ‚Dokumentation‘ angelegt.

Was für das Erstellen von Verzeichnissen gilt, geht auch beim Löschen.
Will man das Projektverzeichnis behalten, aber die Unterordner löschen, kann man das mit folgendem Einzeiler tun:

 sudo rm -r /Projekte/Nummer220/{Hardware,Software,Dokumentation}

Wichtig ist dabei, dass man das ‚-r‘ für rekursiv setzt, da man ansonsten einige Fehlermeldungen bekommt, da ‚rm‘ ansonsten von Dateien ausgeht und den Dienst verweigert.

Backupdatei mit brace expansion schnell erstellen

Hat man einen längeren Dateipfad, dann kann es manchmal nervig sein, wenn man diese sichern will. Oft sieht man folgenden Ansatz:

cp /etc/meinprogramm/programmd/meineconfig.conf /etc/meinprogramm/programmd/meineconfig.conf.bak

Ist natürlich auch mit TAB-Ergänzung oder Copy&Paste recht mühselig.
In diesem Fall kann einem die ‚brace expansion‘ weiterhelfen.
Man erledigt die Kopie durch das Anfügen einer Spitzen Klammer mit Komma und der gewünschten Erweiterung:

cp /etc/meinprogramm/programmd/meineconfig.conf{,.bak}

Dadurch wird dann folgende Kopie erzeugt:

/etc/meinprogramm/programmd/meineconfig.conf.bak

Mehr Informationen dazu findet ihr z.B. im Bash Reference Manual oder bei wiki.bash-hackers.org

Demnächst gibt es einen weiteren Artikel, in dem ich beschreibe, wie man diese Funktion zum Anlegen von Dateien verwenden kann.

BIOS Update am Ubuntu PC ohne Floppy

Will man ein BIOS-Update am PC durchführen erhält man gerne den Hinweis, dass man eine DOS-formatierte Diskette verwenden soll.
Guter Scherz … ich habe weder ein Floppy-Laufwerk noch eine DOS-Diskette (oder ein WIndows).

So geht es trotzdem, wenn wir statt der Floppy einen USB-Stick verwenden:

  1. Voraussetzungen installieren:
    sudo apt-get gparted
    sudo apt-get unetbootin
  2. Jetzt erstellen wir auf dem USB-Stick eine FAT16 Partition.
    Dabei solltet ihr den Stick zunächst unmounten.
    Z.B. so:
    Unmount USB Stick GUI
    gparted FAT16 PartitionDanach muss der Stick wieder gemountet werden.
    Am einfachsten natürlich, indem man ihn zieht und wieder steckt.
  3. Jetzt startet man UNETbootin, um FreeDOS auf dem Stick zu installieren.
    Dazu wählt man in der Software „FreeDOS“ im DropDown Menü und wählt den USB-Stick aus.
    Jetzt erhält man einen bootfähigen USB-Stick mit DOS.
    UNETbootin FreeDOS
  4. Als letzten Schritt muss man noch die notwendigen Dateien, die man von der Herstellerseite runtergeladen hat, auf den Stick kopieren.
  5. Eventuell muss man noch im BIOS einstellen, dass von USB gestartet werden kann.
    Wenn der Stick bootet, wählt man „Default“ im Bootmanager von UNETbootin und danach eine der „Live CD“ Optionen.
    Z.B. „3. FreeDOS Live CD with HIMEM + EMM386“.
    Um an das Verzeichnis mit den BIOS-Updates zu kommen, muss man auf einen anderen Laufwerksbuchstaben wechseln.
    Normalerweise auf C: – also tippt man auf der Konsole C:
    Achtung – da üblicherweise ein englisches Tastaturlayout voreingestellt ist, liegt der Doppelpunkt auf dem Buchstaben „Ö“.
    Jetzt kann man sich mit dem Befehl „dir“ den Inhalt anzeigen lassen. Dort findet ihr entweder euren Ordner oder die Update-Datei.
    Um in ein Verzeichnis zu wechseln, gebt „cd Verzeichnisname“ ein. Danach einfach den Setupdateinamen eingeben und mit Enter starten.

Linux: Ein bestimmtes Wort in Dateien finden

Das Problem:
Jemand suicht auf seinem Linux-System einige Dateien, die ein bestimmtes Wort enthalten. Es geht also um die Suche nach einem Wort in verschiedenen Dateien auf dem System – nicht um Dateinamen.

Die Lösung:
Da kann mit Bordmitteln gearbeitet werden. Mit grep kommt man da ziemlich schnell ans Ziel:

grep -nrw ‚/Dateipfad/‘ -e „Suchbegriff“

Zur Erklärung:
Was macht „grep“? Hier die Erklärung aus der Ubuntu Manpage:

BESCHREIBUNG

grep sucht in den angegebenen DATEIen (oder der  Standardeingabe, wenn keine  Dateien oder ein einzelner Trenn-/Bindestrich (-) als Dateiname  angegeben  wurde) nach Zeilen, die auf das MUSTER passen. Per Voreinstellung gibt grep die passenden Zeilen aus.

Zu den Parametern:
Ich verwende ’nrw‘, weil ich mir als Eselsbrücke das Bundesland merke 🙂
-n   gibt die Zeilennummer an
-r   (oder auch -R) rekursive Sucht (alle Unterordner werden mit durchsucht)
-w   es muss das ganze Wort gefunden werden

-s   suppress – unterdrückt alle Fehlermeldungen für gescheiterte Dateizugriffe, z:B. wegen fehlender Berechtigungen
Das kann die Ausgabe eventuell sehr viel übersichtlicher machen.

Mit den Optionen ‚-include‘ und ‚-exclude‘ kann man die Suche dann noch verfeinern.

Beispiel:
Ich suche nur *.txt und *.sh Dateien, in denen sich der Autor ‚Bikerpete‘ in den Kommentaren verewigt hat:
grep -include=\*.{txt,sh} -nrw /scripts/ -e „Bikerpete“

Jetzt finde ich im Verzeichnis /scripts alle .txt und .sh files mit dem gesuchten Muster. Sind dann z.B. .h oder .doc Dateien vorhanden, werden diese bei der Ausgabe ignoriert.

Weitere Optionen findet man, wenn man sich die Manpages mit ‚man grep‘ anzeigen läßt.

 

Quelle: Stack Overflow