Im Kurztest: Go-cs 0.9, Miniweb-avih snapshot-2017-09-17, Fpconsole 1.3, CSVQ 1.0.1, Runas 0.1.3
Go-cs 0.9
SSH-Sitzungen parallelisieren
Quelle: https://github.com/akosela/go-cs
Lizenz: BSD
Alternativen: Cluster SSH, Pssh
Administratoren, die viele Rechner mit gleicher oder ähnlicher Konfiguration betreuen, sparen mit »cs« Zeit- und Tipparbeit. Das in Go implementierte Tool setzt auf Open SSH und führt einen Befehl auf mehreren Hosts aus; die Ergebnisse schreibt es nach Stdout. Go-cs benötigt einen passwortlosen SSH-Schlüssel sowie Rootrechte per »sudo« auf den entfernten Rechnern. Den Schlüssel definieren Anwender hinter »-i«, den Accountnamen der Gegenseite hinter »-l«.
Für geläufige Abfragen bringt »cs« vordefinierte Parameter mit. So liefert »-top« beispielsweise die Prozessliste, »-vm« und »-io« die IO- und Speicherstatistiken der Rechner zurück. Letzteres setzt Sysstat auf den Hosts voraus. Der Schalter »-m« verrät, welche Partitionen gemountet sind. Für größere Netzwerke mit SAN-Anbindung ist der Parameter »-hba« interessant, der eine Liste aller HBAs inklusive der jeweiligen WWPN ausgibt.
Das Tool kann auch Daten übertragen. Anwender schicken über »-c« Dateien an mehrere entfernte Hosts; in Gegenrichtung geht es über »-d«. Go-cs legt dabei für jeden Host ein eigenes Verzeichnis mit Namen oder IP-Adresse an.
»cs« erleichtert das Administrieren vieler entfernter Rechner per SSH. Gut gefallen die vordefinierten Parameter; die Manpage listet sie alle mit entsprechenden Beispielen auf.
Miniweb-avih snapshot-2017-09-17
Plattformübergreifender Webserver
Quelle: https://github.com/avih/miniweb
Lizenz: LGPLv2
Alternativen: Xshttpd, Boa
Wer schnell ein paar statische Webseiten bereitstellen möchte, muss nicht unbedingt zu Apache & Co. greifen. Hier schlägt die Stunde von schlanken Vertretern wie Miniweb-avih. Der in C programmierte Webserver ist ein Fork des Miniweb-Servers, dessen Entwicklung schon länger ruht, und läuft unter Linux, Windows, ARM, MIPS und Posix-kompatiblen Systemen.
Eine Konfigurationsdatei existiert nicht. Stattdessen geben Anwender ihre Wünsche beim Start über Aufrufparameter an. So definieren sie hinter »-i« die Schnittstelle und über »-p« den Port, sofern er vom Standard 80 abweicht. Eine HTTPS-Unterstützung fehlt; für eine sichere Kommunikation ziehen Benutzer externe Tools wie Stunnel hinzu.
Wer den Ressourcenbedarf weiter einschränken möchte, der kann über »-m« die maximale Anzahl an Clientverbindungen festlegen (Voreinstellung: 32). Die Zahl der erlaubten Verbindungen pro IP-Adresse bestimmt »-M«. Der Schalter »-s« limitiert die Übertragungsgeschwindigkeit und »-n« deaktiviert Mehrfachdownloads.
Wer nach einem schlanken Webserver sucht, wird hier fündig. Eine verschlüsselte Kommunikation oder dynamische Inhalte sind nicht möglich. Punktabzug gibt es wegen der unzureichenden Dokumentation.
Fpconsole 1.3
Pascal-Code debuggen
Quelle: https://github.com/dungwinux/fpconsole
Lizenz: MIT
Alternativen: Free Pascal, Dbx
Pascal-Programmierer, die einen Debugger für Linux suchen, freuen sich: Fpconsole unterstützt in Version 1.3 erstmals das freie Betriebssystem. Das Tool ist in Pascal implementiert und erwartet beim Start den auszuführenden Code. Für Anwender transparent führt es alle notwendigen Schritte aus und erzeugt eine lauffähige Binärdatei. Im Hintergrund greift Fpconsole auf Free Pascal zurück, das auf dem System installiert sein muss.
Kleine Codeschnipsel geben Nutzer beim Aufruf in Anführungszeichen an; alternativ nimmt der Debugger ».pas«-Dateien über »-fs« entgegen. Fpconsole legt im »/tmp«-Verzeichnis einen neuen Unterordner an, führt dort die Compiler- und Linker-Schritte aus und erzeugt eine ausführbare Datei.
Die Entwickler bewerben Fpconsole als Debugger – leider liefert das Tool aber keine aussagekräftigen Fehlermeldungen zurück. Wer nach der Ursache forschen möchte, muss nach wie vor einen klassischen Compiler bemühen. Auch das Übergeben von Kommandozeilen-Parametern ans fertige Pascal-Programm funktionierte im Test nicht.
Die erste Linux-Ausgabe von Fpconsole kämpft noch mit einigen Kinderkrankheiten, eignet sich aber schon für Pascal-Programmierer, die schnell einzelne Codeblöcke testen möchten.
Bccrypt 1.0.0
Passwörter verschlüsseln
Quelle: https://github.com/zenreach/bcrypt
Lizenz: BSD
Alternativen: Pass, SHA256
Wer Passwörter in eigenen Skripten verschlüsselt hinterlegen möchte, kann sich Bcrypt anschauen. Das in Go geschriebene Tool nutzt dazu die gleichnamige kryptologische Hashfunktion, die auf dem Blowfish-Algorithmus basiert und wegen des aufwändig erzeugten Hashwerts eine größere Widerstandsfähigkeit gegen Brute-Force-Angriffe als MD5 oder SHA bieten soll.
Übergeben Benutzer beim Aufruf kein Kennwort, fordert das Tool dieses an. Es erfragt das Passwort jedoch nur einmal, eine Kontrolleingabe findet nicht statt. Wer sich vertippt, hat Pech gehabt. Alternativ nimmt das Tool ein Passwort über die Pipe entgegen. Den erzeugten Hashwert schreibt es nach Stdout.
Das Tool ist auf Zeichenketten von 55 Bytes begrenzt. Wer längere Passwörter verschlüsseln möchte, muss sie vorher mit einer anderen Hashfunktion kürzen. Bcrypt selbst bietet dafür den SHA256-Algorithmus an; Anwender geben dazu beim Aufruf den Parameter »-s« an. Der Schalter »-c« beeinflusst den Kostenfaktor, also die Komplexität der Hashberechnung. In der Voreinstellung setzt Bcrypt einen Kostenfaktor von 10 voraus. Benutzer können ihn auf 31 erhöhen oder auf 4 reduzieren, je nachdem, wie komplex das Ergebnis sein soll.
Damit sind die Einstellungsmöglichkeiten erschöpft. Eine Konfigurationsdatei kennt Bcrypt nicht. Im Quellarchiv und auf der Website steht eine Readme-Datei mit vielen Beispielen bereit.
Bcrypt eignet sich gut zum Integrieren in Skripte. Lediglich die fehlende Kontrolle beim Eingeben des Passworts ist etwas halbherzig umgesetzt.
CSVQ 1.0.1
CSV-Dateien in der Shell verarbeiten
Quelle: https://github.com/mithrandie/csvq
Lizenz: MIT
Alternativen: Csvdb, Xsv
CSV (Comma-separated Values) ist ein gängiges Format, um tabellarische Daten zwischen Systemen und Programmen auszutauschen. Wer diese Textdateien auswerten oder bearbeiten möchte, kann zum Editor greifen. Komfortabler und vor allem flexibler gestaltet sich die Arbeit mit CSVQ, da das in Go programmierte Tool SQL-Abfragen unterstützt.
Anwender übergeben beim Start das »select«-Statement als Parameter; die CSV-Datei benennen sie als Tabelle. Komplexere Abfragen notieren sie in einer eigenen SQL-Datei und rufen diese per »csvq -s Datei.sql« auf. Das Tool unterstützt gängige SQL-Kommandos wie »insert«, »update«, »delete«, »create« und »alter« und kommt auch mit Wildcards in den »where«-Bedingungen zurecht. Wer »csvq« ohne Angaben startet, landet in einer interaktiven Shell. Alle Befehle mit anschaulichen Beispielen listen die Github-Seite des Projekts und die Readme-Datei im Quellarchiv auf.
Seine Ergebnisse schreibt CSVQ auf die Standardausgabe. Alternativ lenkt »-o« diese in eine Datei um. In der Voreinstellung ist das ein gut strukturierter Text. Wer zum Weiterverarbeiten Json, CSV oder TSV bevorzugt, gibt das gewünschte Format hinter »-f« an. Einen Zeichensatz und den Zeilenumbruch dürfen Benutzer ebenfalls bestimmen.
Gerade bei sehr großen CSV-Dateien kann es sinnvoll sein, mehr als einen Prozessorkern mit der Verarbeitung zu beauftragen. Ist der Rechner entsprechend ausgestattet, notieren Anwender die Anzahl der Kerne hinter »-p«.
CSVQ ist ein mächtiges Tool, das SQL-Statements direkt auf CSV-Dateien anwenden kann.
Runas 0.1.3
Einfache Sudo-Alternative
Quelle: https://github.com/odedlaz/runas
Lizenz: MIT
Alternativen: Sudo, Su-exec
Sudo ist ein äußerst mächtiges Werkzeug – seine Konfiguration kann allerdings schnell unübersichtlich werden. Etwas weniger komplex ist Runas. Das Tool führt Befehle unter einer anderen Benutzer- oder Gruppenkennung in einer nicht-interaktiven Sitzung aus. Im Gegensatz zu vielen anderen Lösungen startet es dazu keinen Kindprozess und eignet sich damit zum Integrieren in eigene Filterlösungen.
Runas erwartet seine Konfiguration in der Datei »/etc/runas.conf«. Das Quellarchiv enthält eine Beispieldatei, die als Vorlage dienen kann. Die Zugriffsrechte der Datei müssen Anwender selbst auf »440« setzen, andernfalls verweigert das Tool den Dienst. In der Einrichtungsdatei beschreiben sie, welche Programme ein Benutzer mit welchen Rechten ausführen darf. Eine pauschale Freigabe ist nicht möglich. Danach rufen Nutzer »runas« zusammen mit dem Login-Namen und dem Kommando samt Parametern auf. Das Tool schaut nach, ob ein passender Eintrag in der Konfigurationsdatei vorhanden ist. Nur wenn es fündig wird, führt es das Kommando aus.
Der Aufbau der Einrichtungsdatei ist übersichtlich. Jede Befehl-Benutzerkonto-Kombination steht in einer eigenen Zeile. Sie beginnt jeweils mit dem Login-Namen, gefolgt von einem Ascii-Pfeil, der auf das Konto mit den nötigen Rechten weist. Um einer Gruppe das Recht einzuräumen, schreiben Admins deren Namen hinter ein Prozentzeichen.
Runas ist eine interessante Alternative für alle, denen »sudo« zu komplex ist. Die Konfiguration geht leicht von der Hand. Leider fehlt in der Dokumentation der Hinweis auf die Zugriffsrechte.











