Tag 21/2016: Service-Roboter der Klasse W1

Service-Robotern der Klasse W1 begegnet man nicht täglich auf dem Weg in die Arbeitsstation. Klasse-W1-Roboter sind farblich perfekt an ihre Umgebung angepasst. Sie verfügen über die Eigenschaft, völlig lautlos auf ihren Einsatz warten zu können.

Der hier verharrte schon seit Stunden am gleichen Platz, es sind keinerlei Fortbewegungsspuren zu erkennen. Als ich mich ihm näherte, leuchteten seine Umgebungssensoren nicht auf. Vermutlich war sein Energy-Pack eingefroren.

Tag 20/2016: Unerwartete Hilfsbereitschaft, reziprok

Es muss ein interessanter Anblick gewesen sein, wie dieser Mann in der Dunkelheit mit seinem Rad herumgehopst ist, in schwarzer beinahe-Kylo-Ren™-Montur, Mütze, Fahrradhelm, Reflektorband mit 4 roten LED. Gehopst, weil der Vorderreifen plötzlich Luft verlor und er testen wollte, ob noch genug Luft im Schlauch ist. Dazu kam ein etwas grobmotorischer Abstieg, weil Herrenräder (Räder mit Oberrohr, ohne tiefen Einstieg) in Kombination mit einem Kindersitz mit Rückenlehne sowieso eine Herausforderung darstellen, erst recht bergauf.

Frustriert steht er also neben dem Rad und hantiert mit der Luftpumpe herum, als er ein Auto wahrnimmt, das langsamer wird und dann neben ihm anhält. Fensterkurbeln. Will jemand nach dem Weg fragen?

Nein. Eine Frau blickt aus dem Fenster und fragt besorgt: „Kann ich ihnen helfen? Ist alles ok?“ – Ha! Sowas! So volltrunken hat die Ist-noch-Luft-im-Reifen-Aktion also gewirkt. Sie hat den prüfenden Blick einer Ärztin, die jede Antwort auf mögliche Ausflüchte und Ausreden überprüft.

Die Schilderung des Mannes wirkt schließlich glaubwürdig, die Frau ist zufrieden, er bedankt sich für Ihre Fürsorge.

Und ich schiebe also nach Hause.

Tag 19/2016: ssh-Dämon-Konfiguration mit erweiterten Regeln

In vielen Konfigurationsbeispielen für die  sshd_config, der Konfigurationsdatei für den ssh-Dämon, wird mit der AllowUsers-Direktive explizit festgelegt, mit welchen Benutzernamen (und damit Benutzern) man sich überhaupt anmelden darf. Kombiniert mit @HOST gilt der Login eines Benutzers dann sogar nur für den angegebenen Host.

AllowUsers foo bar baz@192.168.1.100

Loginversuche von Unbefugten mit dort nicht aufgeführten Benutzerkonten lassen sich damit, dank eindeutiger Fehlermeldung im Logfile, noch einfacher mit Tools wie fail2ban aufspüren.

sshd[9140]: User system from host.example.com not allowed because not listed in AllowUsers

Hat man den Login so konfiguriert, dass nur das Public-Key-Verfahren erlaubt ist und muss einem Benutzerkonto trotzdem den Login mit Passwort erlauben, kann man sich mit konditionalen Blöcken behelfen, die man mit der Match-Direktive einleitet.

An das Ende der sshd_config kann man beispielsweise ergänzen:

Match Address 192.168.1.100 User bolo
   AllowUsers bolo
   PasswordAuthentication yes

Hier werden zwei Kriterien geprüft, nämlich ob der Login von einer bestimmten IP-Adresse aus erfolgt („Address 192.168.1.100“) und ob es der zu erlaubende Benutzer ist („User bolo“). Wenn ja, wird diesem Benutzer explizit auch der Login („AllowUsers bolo“) und die Anmeldung via Passwort erlaubt („PasswordAuthentication yes“).  Die im konditionalen Block gelisteten Einstellungen überschreiben die globalen.

Genauso gut kann man also auch schreiben:

# in der "globalen" AllowUsers Liste
AllowUsers foo bar baz@192.168.1.100 bolo@192.168.1.100

PasswordAuthentication no
PubkeyAuthentication yes
PermitEmptyPasswords no

Match User bolo
PasswordAuthentication yes

Tag 18/2016: Python-Repräsentation einer YAML-Datei ausgeben

Zur Zeit kodifiziere ich das Setup einiger alter Server in Ansible-Skripte. Dank Virtualisierung und Cloud ist es mittlerweile einfach, Migrationen auf neue Betriebssysteme und Versionsstände im Vorfeld durchzuspielen. Die neuen Setups profitieren auch vom Know-how aus zahlreichen anderen Ansible-Scripten, z.B. auf Github, weil man immer wieder auf nützliche Vorgehensweisen und Module stößt.

Bei den Core-Modulen copy, file, lineinfile und template setze ich nach Möglichkeit immer explizit group, owner und mode so restriktiv wie möglich – der SuSE-Paranoid-Mode bei den Dateirechten fehlt mir bei Debian/Ubuntu einfach 🙂 Ansonsten Tags setzen mindestens für Packages und Services. Und vor dem Schreiben eigener Rollen lohnt es sich immer, nach bereits erprobten und universellen Rollen Ausschau zu halten.

Zwar ist die Struktur eines YAML-Dokuments leicht zu verstehen, aber trotzdem ist manchmal ein schneller Blick auf die Python-Repräsentation hilfreich. Das kann man beispielsweise mit ein paar Zeilen Python selbst erledigen. „Tag 18/2016: Python-Repräsentation einer YAML-Datei ausgeben“ weiterlesen

Tag 17/2016: Unter OS X ist der launchd die Alternative zu Cron

launchd ist der erste Prozess den der Kernel startet und der dann die Prozesskontrolle übernimmt. Die Konfiguration der Jobs erfolgt dateibasiert im XML-Format und wird unter man 5 launchd.plist erklärt.

Wer es gewohnt ist (und wer ist es nicht) schnell eine Cron-Tabelle zu bearbeiten (man 5 crontab) und den Job dort zu hinterlegen, muss mit der dateibasierten Definition umdenken. Zwar ist es nach wie vor möglich und erlaubt, Cronjobs unter OS X zu verwenden, das wäre dann aber eine unnötige Parallelwelt zum bereits vorhandenen launchd.

Eine wesentliche Hilfe ist dieses Projekt: „A launchd.plist generator„, eine Art Komplettlösung zur Definition aller wesentlichen Merkmale für die Prozessdatei (Source ist auf Github).  Nathan, der Autor, liefert nach dem Submit sogar alle Befehle zum Anlegen des Jobs via Shell mit. Wer keine Shellscripte über das Netz curl-en und in der Shell pip-en will (und wer will das schon), bekommt die Befehle auch angezeigt und kann sie manuell ausführen.

Screenshot der Seite des launchd.plist Generators

Perfekt.

Tag 16/2016: Eine Vorstellung von der Welt aus Überschriften, Teil 2

Weiter gehts mit Schlüsselbegriffen und Satzfragmenten aus Überschriften, heute mit einem Schnappschuss aus der taz (ca. 18:50 Uhr):

Zwischen Schlamm und Tränengas, Kulturschock, Breiter Protest, ratloser Präsident, Obsessive Angst, Rassistischer AfD-Politiker, Gabriel fordert Kontingente, Flüchtlingshilfe, Flüchtlingspolitik, Das Problem wird immer größer, Sexuelle Gewalt, Debatte Rechtspopulismus, Widerstand gegen Rechtsruck, Abschiebungen, Verfassungsklage, Terror-Verdächtige, Dunkle Mächte, Anschlag, Digitalisierung der Landwirtschaft, Demo, Schlechte Stimmung zur Grünen Woche, Trennung zwischen Schichten, Hintertür einbauen, Was Obama über Tampons lernte, Verlorene Zeit, Krieg singen, Brandanschlag, Angst und Angst, Es brennt, Übergriffe.

Uff. Genauso förderlich für Depressionen wie SPON. Wenigstens ist am Ende der Seite ein schönes großes Bild schmackhafter Oliven aus Griechenland („Lecker! Bio-Olivenöl vom Peloponnes“), den es im taz.shop zu kaufen gibt.

Tag 14/2016: YNAB goes Cloud

Die beliebte Budgetierungssoftware „YNAB“ ist in der neuen Version 5 nur noch in einer Cloud-Variante mit Abo-Modell verfügbar. Version 4 wird offiziell bis Ende des Jahres gepflegt. Schade. Bisher war es möglich, die Daten nur lokal vorzuhalten. Eine Dropbox-Synchronisation konnte man, zumindest mit der Android-App, auch umgehen. Das sagt die Firma zu den Sicherheitsvorkehrungen.

Tag 13/2016: Eine Vorstellung von der Welt aus Überschriften, Teil 1

Schlüsselbegriffe und Satzfragmente aus Überschriften, heute mit einem aktuellen Schnappschuss von SPON (ca. 21:25 Uhr):

Ölpreis-Einbruch, Russland-Crash, Attentäter, Terroranschlag, Antragsflut, Übergriffe, schärferes Sexualstrafrecht, Umstrittenes Mediengesetz, Anklage nach Brandanschlag, Verachtenswert, Neonazi-Terroristen, Gerüchte anheizen, Masturbations-Charts, Rundflug über Ruinen, Katastrophenschiff, Eskalation, Wolf verletzt Jogger, Festnahme, Abgrund, Gewissenskonflikt, Zerstörungsvideo, hilfsbereiter Rassist, Ölpreisverfall, Drecksäcke, Schwerer Sturz, Sexismus, Krank zur Arbeit, Tödliches Bakterium, tote Pottwale, Masern hoch ansteckend, Attentat, Fremdgehen, verpestete Luft, begafft wie ein Tier.

Gut informiert, positiv bestärkt, schnell zur Haustür gehen und rausgucken, ob der Weltuntergang wirklich schon da ist.

Tag 12/2016: Chrome Extension THE GREAT SUSPENDER

Der große Strumpfhalter „automatically suspends unused tabs to free system resources“. Eine Chrome-Extension, ohne die es für Tab-Junkies eigentlich nicht geht. Sie funktioniert recht stabil. Kleiner Nachteil: Wer den Verlauf über die Browser und Geräte in der Cloud synchronisiert, sieht die Titel der offenen Seiten nicht mehr. Lässt sich aber verschmerzen, meiner Meinung nach.

Teil eines Screenshots der Chrome-Erweiterung THE GREAT SUSPENDER

Ein Blick in den Chrome-Speicher verrät mehr. Am Besten einen vorher/nacher-Vergleich machen.

Update: Wer Chrome beenden muss, z.B. wegen einem Betriebssystem-Update mit Neustart, kann in Kombination mit einer weiteren Extension wie Session Buddy seine 40+ offenen Tabs in zwei Sekunden „wiederherstellen“. Jeder Tab hat nur den „suspendierten“ Zustand und lädt nicht parallel die jeweilige Seite neu nach.