thinkretro.de

Dez 11, 2014

Dropbox-Verzeichnis verschlüsseln mit encfs

Für das einfache Synchronisieren von Dateien verwende ich seit einiger Zeit gerne Dropbox. Es ist schnell eingerichtet und läuft auf allen Oberflächen gleich. Obwohl in meiner Dropbox keine sensiblen Daten liegen, bleibt jedoch immer ein etwas schaler Beigeschmack wenn ich dort einfach meine - überwiegend - Textdateien ablege. Damit diese wenigstens nicht von jedem dahergelaufenen Sysadmin oder sonst wem gelesen werden können sollten sie also verschlüsselt werden. Eine Möglichkeit hierzu bietet encfs, das sich zumindest bei Arch, Debian und Ubuntu in den Standardrepositorien befindet.

Mit EncFs kann man einfach und bequem den kompletten Inhalt eines Ordners auf Dateiebene verschlüsseln. Dazu wird mit folgendem Befehl ein verstecktes Verzeichnis (im folgenden “Verschlüsselungsverzeichnis”) \~/Dropbox/.encfs im Dropboxordner erstellt sowie ein Verzeichnis \~/encfs (im folgenden “Arbeitsverzeichnis”) im Homeordner des Benutzers erstellt und ein Passwort vergeben:

$ encfs ~/Dropbox/.encfs ~/encfs

Anschließend kann mit folgenden Befehlen das Verzeichnis gemounted bzw. wieder unmounted werden:

$ encfs ~/Dropbox/.encfs ~/encfs

$ fusermount -u ~/encfs

Schaut man sich die zwei Verzeichnisse (angereichert mit zwei Testdateien) einmal an ergibt sich folgendes Bild:

ls -la \~/encfs ergibt dabei für das Arbeitsverzeichnis:

insgesamt 16
drwx------  2 user user 4096 11. Dez 19:19 .
drwx------ 25 user user 4096 11. Dez 19:23 ..
-rw-r--r--  1 user user   25 11. Dez 19:19 testdatei2.txt
-rw-r--r--  1 user user   17 10. Dez 19:42 test.txt

ls -la \~/Dropbox/.encfs ergibt dabei für das Verschlüsselungsverzeichnis:

insgesamt 20
drwx------ 2 user user 4096 11. Dez 19:24 .
drwx------ 7 user user 4096 11. Dez 19:09 ..
-rw-r--r-- 1 user user   33 10. Dez 19:42 DHF-zL8RLcUNw0Jo3G4T,Ndy
-rw-r--r-- 1 user user 1091 11. Dez 19:24 .encfs6.xml
-rw-r--r-- 1 user user   41 11. Dez 19:19 ,XFCVJVAcNWwxvyghRPKfICa

Was auffällt ist, dass sich im verschlüsselten Verzeichnis neben den eigentlichen, verschlüsselten Dateien auch eine unverschlüsselte xml-Datei .encfs6.mxl befindet. In dieser Datei befinden sich die Metadaten für encfs mit Angaben zur Verschlüsselungsart sowie einem Passworthash. Diese Datei dort zu belassen ist auf jeden Fall riskant, gibt sie einem potentiellen Angreifer doch wertvolle Hinweise. Leider bietet encfs keine Option um beim Mount den Pfad zur Metadatendatei als Argument zu übergeben. Man kann sich aber behelfen durch setzen der Umgebungsvariable \$ENCFS6_CONFIG. Dazu kopiert man die .encfs6.xml in das Homeverzeichnis (oder jeden anderen beliebigen Ort) und trägt in der Datei \~/.bashrc ein:

export ENCFS6_CONFIG='~/.encfs6.xml'

und schon funktioniert das mounten wieder wie gewohnt. Ein wenig Vorsicht ist allerdings angebracht. Ist die Datei weg z.B. durch einen Festplattencrash oder Diebstahl des Notebooks kommt man auch an die Daten so einfach nicht mehr dran.

Fazit

Mit encfs hat man eine praktische und komfortable Möglichkeit Dateien in einem Verzeichnis zu verschlüsseln. In Kombination mit einem Clouddienst bekommt man so wenigstens ein wenig Sicherheit, dass die privaten Daten zumindest mit herkömmlichen Mitteln nicht ganz so einfach einsehbar sind. Vollkommene Sicherheit bietet leider keine Verschlüsselungssoftware, daher bin ich auch weiterhin der Meinung, dass wirklich private Daten auf fremden Servern nichts zu suchen haben.

Dez 09, 2014

ArchLinux und i3 auf dem Thinkpad x200s

Vor ein paar Tagen habe ich mich dazu entschlossen, mein Thinkpad X60s durch ein x200s auszutauschen. Im Prinzip war ich immer sehr zufrieden gewesen mit meinem kleinen Begleiter. Was mich in letzter Zeit allerdings tierisch störte, war der Umstand, dass die rechte Handballenauflage sehr heiß wird. Leider ist das konstruktionsbedingt und auch nicht vermeidbar und gerade wenn man längere Zeit an dem guten Stück arbeiten will - und wie ich sowieso schon immer warme Hände hat - wird es echt unangenehm. IBM/Lenovo hat übrigens aus diesem Grund beim X61 einen kleinen Luftauslass an genau dieser Stelle eingebaut, um so die übermäßige Wärme abzuführen. Jedenfalls macht längeres Arbeiten oder Surfen auf der Couch so nur mäßig Spaß…

Es traf sich daher ganz gut, dass ich beim Händler meines Vertrauens ein gut erhaltenes Thinkpad x200s für relativ günstig Geld erstehen konnte. Da bereits das X60s mit ArchLinux lief und ich damit sehr zufrieden war, brauchte ich mir um die Frage des passenden OS - zumindest diesmal - keine Gedanken machen :-)

Archlinux installieren

Die Installation von Archlinux unterscheidet sich schon stark von der eines Debian. Nach dem Boot des Iso-Images landet man direkt in der Shell und sonst nix. Von da an ist man (fast) völlig auf sich allein gestellt. Hilfe bekommt man allerdings in Form einer kleinen Textdatei, die die wichtigesten Installationsschritte aufführt. Alternativ kann man auch mit einem zweiten Rechner oder dem Smartphone die Installationsanleitung im Arch-Wiki nehmen. Mit beiden Anleitungen ist die Installation wirklich ein Kinderspiel, man sollte sich da auf jeden Fall nicht abschrecken lassen sondern das Ganze einfach mal durch exerzieren; es lohnt sich :-)

Nach der Grundinstallation

Hat man die Grundinstallation erfolgreich durchgeführt, hat man schon ein minimales ArchLinux auf der Festplatte. Was fehlt sind aber noch ein paar Anpassungen, wie etwas die Konfiguration des Soundsystems oder eine grafische Oberfläche. Ebenso fehlen noch eine ganze Reihe an Programmen; während der Installation wurden ja nur die Pakete aus der Gruppe base und base-devel installiert. Puristen mag das ja genügen, ich bin da etwas verwöhnter :-)

Xserver und i3 installieren

Zunächst installiere ich den Xserver samt den passenden Treibern für die integrierte Intel Grafikkarte sowie die Sound-Umgebung:

# pacman -S xorg-server xorg-xinit xorg-utils xorg-server-utils xf86-video-intel alsa-utils

Als nächstes kommt der ‘i3-Fentstermanager’, die ‘i3-Statusleiste’ sowie ‘dmenu’ als Softwaremenü hinzu:

# pacman -S i3-wm i3status dmenu

Als nächsten Schritt kopiert man die Beispiel-xinitrc-Datei in das Home-Verzeichnis und trägt dort i3 als zu startenden Fenstermanager ein:

$ cp /etc/skel/.xinitrc ~
$ echo 'exec i3' >> ~/.xinitrc

Damit nach dem Booten automatisch der Xserver mit dem i3-Fenstermaager gestartet wird, muss noch ein passender Login-Manager her. Ich verwende gerne slim, da er schlank und einfach zu konfigurieren ist:

# pacman -S slim && systemctl enable slim

Nach diesen Schritten hat man bereits ein gut funktionierendes ArchLinux mit i3 als Fenstermanager. Allerdings fehlt noch einiges an Software sowie ein paar Kleinigkeiten.

Schriften

Für ein paar schönere Schriftarten kann man das Paket ‘ttf-dejavu’ installieren:

# pacman -S ttf-dejavu

Ein noch besseres Schriftbild erhält man, wenn man noch die Kantenglättung ein wenig anpasst. Dazu erstellt man unter \~/.config/fontconfig/ die Datei fonts.conf und trägt Folgendes dort ein:

    <!DOCTYPE fontconfig SYSTEM "fonts.dtd">
    <fontconfig>
      <match target="font">
        <edit name="antialias" mode="assign"><bool>true</bool></edit>
        <edit name="hinting" mode="assign"><bool>true</bool></edit>
        <edit name="hintstyle" mode="assign"><const>hintslight</const></edit>
        <edit name="lcdfilter" mode="assign"><const>lcddefault</const></edit>
        <edit name="rgba" mode="assign"><const>rgb</const></edit>
      </match>
    </fontconfig>

Networkmanager

Für die Netzwerkkonfiguration nutze ich gern den Network Manager. Darüber hinaus gibt es für diesen noch ein nettes Applet für die Statusleiste:

# pacman -S networkmanager network-manager-applet && systemctl enable NetworkManager.service

Damit das Applet bei jedem Start automatisch mitgestartet wird, muss man dieses noch in die \~/.xinitrc eintragen. Das Ganze sieht dann so aus:

    #!/bin/sh

    nm-applet &
    exec i3

Programme

Da nun das Grundsystem steht, fehlen nur noch ein paar grundsätzliche Programme um etwa Mails abzurufen oder im Internet zu surfen. Standardmäßig installiere ich gern folgendes:

# pacman -S firefox firefox-i18n-de thunderbird thunderbird-i18n-de vlc audacious leafpad thunar evince

Danach stehen einem der Firefox sowie Thunderbird nebst den deutschen Sprachpaketen sowie der VLC-Player und Audacious für Video- bzw. Audio-Dateien zur Verfügung. Als grafischen Editor benutze ich neben ‘gvim’ auch mal gerne den ‘leafpad’. Fehlen nur noch ein Dateimanager und ein Pdf-Reader. Hier benutze ich gerne zum einen den Thunar, welcher als Standard beim Xfce-Desktop ist, und zum anderen ‘evince’ aus der GNOME-Umgebung.

Dez 01, 2014

Blogartikel mit Vim, Markdown und Pandoc erstellen

Seitdem mich ein Freund auf das Konvertierungstool Pandoc aufmerksam gemacht hat, mit dem man bspw. Markdown-Dokumente ganz einfach nach Html konvertieren kann, schreibe ich meine Blogartikel komplett in Markdown.

Markdown - die Basics

Markdown ist eine von vielen Auszeichnungssprachen, die es ermöglichen mit einer überschaubaren Anzahl an Elementen Text zu formatieren. Ziel ist hierbei, dass schon das Markdown-Dokument ohne weitere Konvertierung leicht lesbar und verständlich ist. Dabei ist die Syntax relativ leicht zu lernen und nicht wirklich kompliziert. Hier gibt es einen guten Überblick. Darüber hinaus findet man auch über die Google Suche das ein oder andere Cheatsheet, das die wichtigsten Elemente kurz zusammenfasst.

Vim Markdown

Für meinen momentanen Lieblingseditor Vim gibt es ein nettes Plugin, welches den Umgang mit Markdown-Texten ziemlich vereinfacht. Hier gibt es das Plugin

Pandoc

Um aus meinem zuvor erstellten Markdown-Dokument ein gültiges Html-Dokument zu machen, bedarf es noch einer Umwandlung mittels pandoc. Pandoc selbst ist in den Debian Paketquellen vorhanden und lässt sich mittels #apt-get install pandoc installieren. Um das vorhandene Markdown-Dokument in ein Html-Dokument umzuwandeln genügt ein $pandoc -o testseite.html markdown-dokument.md.

Fazit

Mit der Kombination aus Vim + Markdown + Pandoc ist es mir relativ leicht möglich Artikel für meine Website zu schreiben. So kann ich das Ergebnis als Html-Quelltext im Anschluss in meinen Wordpress-Editor laden und dort den letzten Feinschliff vornehmen. Dadurch, dass Markdown-Dateien im Prinzip nur Textdateien sind, lassen sie sich zudem wunderbar mit Tools wie bspw. 'grep' auf Kommandozeilenebene durchsuchen.

Nov 29, 2014

Bonjour Banana Pi

Seit etwa zwei Monaten fristet mein kleiner Raspberry Pi, den ich bis dahin immer als Homeserver eingesetzt habe, sein Dasein als Entertainment-Center an meinem Fernseher. Da ich auf einen immer laufenden, stromsparenden Server-PC nicht gerne verzichten möchte musste also Ersatz her.

Mein erster Gedanke war die Anschaffung eines zweiten Raspberry Pi, da ich bis dahin mit dem Gerät durchweg positive Erfahrungen gemacht habe. Einzig die relativ bescheidene Leistung des Rapi bewog mich dazu mich einmal ein wenig nach Alternativen umzusehen. Und deren gibt es zahlreiche.
Angefangen vom Cubieboard, über Pogoplug (n.b. was für ein dämlicher Name :-) ) bis hin zum Beaglebone gibt es zahlreiche Alternativen, die preislich (bis auf den Pogoplug) sämtlich jenseits dessen waren, was ich bereit war auszugeben. Lediglich ein Kandidat schaffte es mich vom Preis und von den Leistungsdaten her neugierig zu machen, der Banana Pi.

Die Ähnlichkeit mit dem Raspberry Pi ist frappierend aber durchaus gewollt. Zum einen sollen (angeblich) die Erweiterungsplatinen für den Raspberry Pi auch für den Banana Pi nutzbar sein, zum anderen möchten die Entwickler gerne ein wenig von dem PR-Kuchen des Raspberry Pi abhaben :-)

Vergleicht man die Hardwareausstattung direkt mit der des Raspberry, so merkt man sehr deutlich, dass der Banana Pi wesentlich mehr Dampf unter der Haube hat:

  • Dual Core Arm Cortex A7
  • Mali G400MP2 Grafikchip
  • 1 GB DDR3-RAM
  • Gigabit Ethernet
  • SATA Port

Damit hat dieser Winzling schon mal deutlich mehr Pfeffer als ein Großteil der übrigen, hier vorhandenen Rechner. Darüber hinaus ermöglicht der eingebaute SATA-Port einen direkten Anschluss einer 2.5 Zoll Festplatte.

OS

Etwas, wo ich diesmal gar nicht so lange nachdenken musste, war die Wahl des Betriebssystems. Mittlerweile haben alle "großen" Distributionen einen eigenen ARM Port und sind somit auf dem Banana Pi lauffähig. Ich habe mich letztlich für eine an die Hardware des Banana Pi angepasste Version von Raspbian entschieden, einfach weil ich damit bereits recht gute Erfahrungen mit dem Raspberry Pi gemacht habe. Kurz überlegt habe ich noch, ob ich nicht vielleicht ArchLinux ausprobieren sollte, aber da der Banana Pi in erster Linie als Server laufen sollte und es mir da nicht so sehr auf Bleeding-Edge und das allerneueste vom Neuesten ankommt, habe ich das wieder verworfen.

Auf der Herstellerseite findet man eine ganze Reihe an angepassten Iso-Images, die auf dem Banana Pi laufen. Die Installation geht, wie auch beim Raspberry Pi, ganz locker von der Hand. Einfach das Iso-Image mittels dd auf die SD-Card schreiben und fertig:

    # dd if=/pfad/zur/iso of=/pfad/zur/sdcard bs=1M && sync 

Nach dem Start führt man noch 'raspi-config' aus und passt den Banana Pi an seine Bedürfnisse an. Dort kann man übrigens auch recht simpel einstellen, dass die grafische Oberfläche nicht mit gestartet werden soll, was noch einmal wertvolle Ressourcen frei macht.

Okt 25, 2014

Qemu spart Zeit

Es gibt manche Dinge, die bekommt ich erst nach Jahren mit und wenn man es dann mal ausprobiert frage ich mich regelmäßig "warum habe ich das nicht schon vor langer Zeit so gemacht?". Eine solche Sache ist Qemu. Damit lässt sich nämlich unter anderem sehr bequem eine virtuelle Linux Umgebung aufsetzen, die dann z.B mit 'dd' auf eine beliebigen Datenträger kopiert werden kann. Gerade auf älteren Maschinen dauert so eine Installation ja gerne mal ein bißchen länger...

Qemu ist in den offiziellen Paketquellen von Debian und ArchLinux verfügbar und lässt sich wie gewohnt bequem installieren:

Debian

#apt-get install qemu

ArchLinux

#pacman -S qemu

Die Bedienung geschieht vollständig über die Kommandozeile, wer möchte kann sich aber eines der vielen grafischen Frotends für QEMU installieren.

1. Festplattenimage erzeugen

qemu-img create debian.img 10G

2. Qemu starten und ISO-Image booten

qemu-system-i386 -enable-kvm -hda debian.img -cdrom debian_install.iso -boot d -m 512

Damit wird qemu gestartet. Neben der Architektur (hier i386) bietet qemu eine bermerkenswerte Ausdwahl verschiedener Prozessorarchitekturen, darunter auch bspw. die ARM-Architektur. "enable-kvm" aktiviert die Kernel-Virtualisierung, was für eine spürbare Beschleunigung der VM sorgt. Mit 'hda' gibt man das Festplattenimage an, mit 'cdrom' das Installationsimage. Damit die VM beim Start dieses Image (standardmäßig wird von 'hda' gebootet) bootet, wählt man die Option '-d boot'. Letztendlich weist man mit der Option '-m 512' der VM noch 512 MB Arbeitsspeicher zu. Hat man die Installation abgeschlossen, kann man beim nächsten Mal das Iso-Image weglassen:

qemu-system-i386 -enable-kvm -hda debian.img -m 512

weitere nützliche Optionen

Im Prinzip reichen die oben angeführten Befehle völlig, um eine VM aufzusetzen und diese zu starten. Wenn man sich die Manpage zu qemu anschaut, gibt es dort aber noch eine ganze Fülle von zusätzlichen Optionen, mit deren Hilfe man seine VM konkret auf die aktuellen Bedürfnisse anpassen kann. Die für mich wichtigen und interessanten Optionen habe ich mal herausgeschrieben:

  • cpu 486, sagt der VM, dass man hier einen 486-er-Prozessor emulieren möchte. Leider bezieht sich das wohl nur auf die integrierten Befehlssätze der CPU. Die Taktrate orientiert sich dabei (leider) an der physisch im Rechner verbauten CPU. Wünschenswert wäre hier noch eine Option zur Regelung der Taktrate. Mit 'cpu help' kann man sich darüber hinaus alle zur Verfügung stehenden Prozessoren anzeigen lassen.
  • boot gibt an von welchem Device man booten möchte. Standardmäßig wird von hda gebootet, man kann aber auch von Floppy a oder Floppy b oder eben von CD-Rom d booten.
  • soundhw spezifiziert die Soundkarte. Neben der SoundBlaster 16 stehen noch weitere Emulationen zur Verfügung, mit soundhw help lassen sich diese anzeigen.
  • name, hier kann man der VM einen Namen geben.
  • usb, schaltet die USB-Unterstützung ein
  • vga, weist der VM eine bestimmte Grafikkarte zu.
  • full-screen, startet die VM im Vollbildmodus

QEMU-Management-Konsole

Mit Strg+Alt+2 gelangt man auf die QEMU-Management-Konsole (auf Strg+Alt+1 läuft die VM). Dort kann man die VM jederzeit verlassen quit (was einem 'Stecker ziehen' gleich kommt). Mit help kann man sich sämtliche verfügbaren Kommandos anzeigen lassen. Da das ziemlich viele sind, rauschen die in einem Rutsch durch. Durch die Ausgabe kann man mit Strg+Pfeil nach oben bzw. unten scrollen.

Fazit

Mit QEMU hat man ein mächtiges Werkzeug zur Emulation verschiedenster Hardware. Es lohnt sich auf jeden Fall, wenn man mal kurz ein 'Iso-Image' ausprobieren möchte ohne gleich einen ganzen Rechner neu aufzusetzen. Besonders die Möglichkeit das erstellte Image per dd auf einen physischen Datenträger zu schreiben, gefällt mir sehr.

Okt 22, 2014

Tudu - Aufgabenverwaltung für die Konsole

Es gab mal eine Zeit, da hatte ich angenommen mit zunehmenden Alter würde es ruhiger und man hätte mehr Zeit für sich. Aber scheinbar (und da bin ich bei weitem nicht der einzige) verhält es sich genau anders herum. Neben den Verpflichtungen, die eine regelmäßig ausgeübte, berufliche Tätigkeit so mit sich bringt, kommen auch allerhand Termine und Aufgaben im privaten Bereich dazu. Bisher war es mir immer gelungen, alles im Kopf zu managen und den Überblick zu behalten, doch es häufen sich die Fälle, dass ich bestimmte Dinge einfach vergesse. Zum Beispiel vergesse ich mit bewundernswerter Regelmäßigkeit schon seit Jahresanfang endlich einen Freistellungsauftrag für meinen Bausparvertrag bei der Bank einzureichen ;-)

Aber für jedes Problem gibt es auch eine passende Lösung. Also habe ich mich mal in den Repositories meiner Lieblingsdistributionen nach einem kleinen Programm zur Aufgabenverwaltung gemacht. Das Angebot ist - wie so oft - ziemlich üppig. Angefangen von riesigen Groupwarelösungen wie etwa Evolution oder Thunderbird mit Lightning-Addon hin zu schlanken ncurses-basierten Programmen wie z.B. tudu, für das ich mich letztendlich entschieden habe. Zum einen kenne ich es noch nicht und zum anderen  tendiere ich schon seit geraumer Zeit immer mehr zu schlanken und schlichten Programmen.

Tudu ist ein Kommandozeilenprogramm um hierarchische To-Do Listen zu verwalten. Man kann die Aufgaben in Kategorien einteilen, Beschreibungen hinzufügen und auch eine Deadline vergeben. Darüber hinaus lässt sich das ganze vim-ähnlich steuern. Ein weiterer Pluspukt ist, dass die wichtigsten Befehle am oberen Rand angezeigt werden und man so schnell einen Eintrag hinzufügen kann, ohne die Hilfe-Seiten zu wälzen. Wer sagt da noch Kommandozeilenprogramme seien nicht Nutzer-freundlich :-)

Tudu installieren

Tudu ist sowohl unter Debian als auch unter Arch in den offiziellen Repositories verfügbar und lässt sich simpel mittels folgender Befehle installieren:

Debian

# apt-get install tudu

Arch

# pacman -S tudu

Aufgabensynchronisation, the simple way

Was mir persönlich, der ich mehrere Rechner mein eigen nenne, noch fehlt ist eine Synchronisation meiner Aufgabenliste. Da ich noch einen schon etwas verwaisten Dropbox-Account habe, kam mir der Gedanke meine Aufgabenliste dort einfach zu deponieren und die Synchronisation eben Dropbox zu überlassen. Das einzige was ich tun musste, war die '\~/.tudu.xml' im Home-Verzeichnis in den Dropbox-Ordner zu verschieben und in der '\~/.tudurc' den Pfad dorthin anpassen. Standardmäßig nutzt tudu die globale Config-Datei '/etc/tudurc'. Diese kopiert man einfach in sein Homeverzeichnis und gibt dort an der Stelle

tudu_file = /home/foobar/Dropbox/tudu.xml

den letztendlichen Speicherort im Dropboxordner ein. Und schon sollte das ganze funktionieren. Problematisch wird das Ganze wohl nur sobald man mehr als zwei Rechner einsetzt und diese nicht permanent im Netz hängen. Aber im Moment ist das bei mir eher selten der Fall, und wenn gibts dafür sicherlich auch ne nette Lösung :-)

Sep 19, 2014

Congstar Guthaben via Conky anzeigen

Ich habe schon seit langer Zeit einen Umts-Stick (und zwar den Huawei Surf Stick E 3131, der problemlos unter Linux funktioniert), der mich auf Reisen mit Internet versorgt. Dazu bin ich Kunde bei Congstar, ein Tochterunternehmen der Telekom AG. Das hat den Vorteil, dass man das sehr gut ausgebaute D1-Netz nutzen kann und so auch in den entlegensten Teilen Deutschlands noch eine recht gute Netzanbindung bekommt.

Hat man den Stick am Rechner angeschlossen, kann man das aktuelle Verbrauchsguthaben relativ tagesaktuell über die Seite "http://datapass.de" abrufen.

Jetzt wollte ich das Ganze gern automatisiert von einem Script erledigen lassen, dass mir entweder "not connected" anzeigt, wenn der Stick nicht angeschlossen ist oder aber eben das aktuell verbrauchte Datenvolumen. Dazu habe ich mit meinen rudimentären Python-Kenntnissen dieses kleine Script geschrieben (einfach kopieren und als xy.py abspeichern; über Anregungen und Kommentare würde ich mich freuen :-) ).

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#!/usr/bin/env python
# -*- coding: utf-8 -*-

# Author:   Marcel Werner
# Mail:     kontakt(at)kaffeejunkie.eu
# Web:      http://www.kaffeejunkie.eu
# Date:     14.08.2014


# This little script gets the amount of used traffic-volume
# from the Telekom-Service-Website 'www.datapass.de'. It seems to be 
# functional in combination with a Congstar/Telekom SIM-Card only.

# Begin

import os
import sys
import lxml.etree as et
import urllib2

# run 'lsusb' in terminal to determine vendor_id
vendor_id = "12d1"
usb_device_path = "/sys/bus/usb/devices/"

def check_usb_connection():
    for subdirectory in os.listdir(usb_device_path):
        cwd = os.path.join(usb_device_path, subdirectory) 
        try:
            with open(cwd+"/idVendor", "r") as f:
                for line in f:
                    if line.replace("\n","") == vendor_id:
                        return True
        except IOError:
            break


while check_usb_connection() == True:
    try:
        opener = urllib2.build_opener()
        opener.addheaders =[('User-agent', 'Mozilla/5.0')]
        url = opener.open('http://datapass.de')
        root = et.fromstring(url.read())

        used_traffic = root.find('.//span[@class="colored"]')  
      .text.encode('utf-8')

        print used_traffic+" von 1 GB verbraucht"
        break
    except AttributeError:
        break
    except IOError:
        break
else:
    print "not connected"

Einbinden in Conky

Der Aufruf des Scripts aus Conky heraus geschieht über folgenden Parameter, den man in die Datei .conkyrc im Home-Verzeichnis einträgt:

${execi 600 python ~/pfad_zum_script.py}

Die 600 ist der Wert in Sekunden, wann dieses Script immer wieder ausgeführt wird; also alle 10 Minuten. Man sollte hier nicht einen zu niedrigen Wert wählen, da ja jeder Seitenaufruf Traffic (wenn auch nur ein paar KB) verursacht.

Aug 12, 2014

Back to the roots

Momentan nutze ich als Hauptrechner ein Thinkpad T500 mit Centrino2 Prozessor und 2GB RAM sowie einer 120GB SSD. Das ganze läuft unter Debian. Das Problem es läuft so gut, dass es schon langweilig ist (ja ja ich weiß Wohlstandsprobleme) ;-) Nein im Ernst, es gibt keine Anwendung die ich momentan nutze, die auch nur annähernd das Thinkpad ins Schwitzen bringen würde. Alles läuft flüssig und stabil und dazu ohne nennenswerte Wartezeiten (dank SSD); selbst Flash ;-) Das Problem mit soviel Leistung ist, man weiß am Ende gar nicht mehr, welche Software wirklich leichtgewichtig ist, denn es startet eh alles in Sekundenschnelle.

Also dachte ich mir, wie würde das Ganze denn wohl auf einem System aus den 2000er Jahren aussehen. Ist es ein 14 Jahre altes System wirklich noch Alltagstauglich oder eignet es sich nur noch als Spielerei für Konsolenjunkies :-)

Das hierbei einige meiner in den letzten Jahren liebgewonnenen Anwendungen zwangsläufig leichtgewichtigeren weichen müssen versteht sich fast von selbst. Aber dafür ist nun Platz für neue (unbekannte?) Anwendungen, die ich sonst vielleicht nie ausprobiert hätte.

Die Hardware

Als Setup nehme ich den guten alten Medion PC aus dem Jahre 2000. Ich mochte den Rechner damals schon als er auf den Markt kam, nicht zuletzt wegen des Midi-Tower-Designs. An Hardware steckt folgendes drin:

  • Pentium III @ 900 Mhz
  • 128 MB PC-100 SDRAM
  • 80 GB Hitachi Festplatte
  • Geforce 5600 GT
  • Soundblaster Live

Bis auf die Grafikkarte (die ich wegen ihres digitalen Ausgangs wählte) also ein klassisches System aus dem Jahr 2000.

OS

Die Gretchenfrage wieder einmal. Debian ist momentan immer noch meine Lieblingsdistribution, aber hier wollte ich die Chance einmal nutzen und über den Tellerrand dieser 'Rundum-Sorglos-Distribution' blicken und auch mal etwas anderes ausprobieren. Momentan bin ich noch etwas unentschieden, ob ich eine vorgefertigte Distribution (wie etwa ArchBang oder Slitaz) oder aber mir die einzelnen Komponenten selbst zusammen stelle. Mal schauen, je nach Bastellaune am Wochenende :-)

Jul 21, 2014

Wordpress verrät Login

Seit letzter Zeit sehe ich in den WP-Logs vermehrt fehlgeschlagene Loginversuche, zumeist mit einer IP aus Russland oder der Ukraine. Das an sich ist noch nicht das beängstigende. Was mich vielmehr stutzig gemacht hat, war die Tatsache, dass die Angreifer zum Teil meinen richtigen Login-Namen kannten (nein, es ist nicht 'admin' :-)).

Meine erste Frage war natürlich woher? Und siehe da, wenn man auf den Autor-Link in den Beiträgen klickt, steht in der Adressleiste der wahre Login-Name obwohl als Autor-Alias eigentlich ein anderer Name vergeben wurde. Das ist unschön...

Nach ein wenig googeln fand ich diese Lösung. Ich habe es entsprechend geändert und nun wird lediglich mein Alias wieder angezeigt. So müssen Angreifer nun wieder zwei Faktoren (Loginname und Passwort) erraten :-)

Am Beliebtesten scheinen übrigens Logins wie 'root', 'test' oder 'admin' zu sein :-)

Jul 19, 2014

dvtm - Fenstermanager für die Shell

Ein großer Nachteil beim Arbeiten auf der Kommandozeile ist, dass man normalerweise nur einen Bildschirm zum arbeiten hat. Man kann zwar ein Programm mit Strg+z in den Hintergrund schicken und mit fg wieder in den Vordergrund holen aber zwei Anwendungen gleichzeitig auf einem Bildschirm zu beobachten ist so ohne Weiteres nicht möglich. Aber wozu gibt es Terminalmultiplexer, die das von einer X-Window-Umgebung gewohnte mehrfache Nebeneinander von Fenstern auch auf der Kommandozeile ermöglichen. Einer dieser Vertreter ist dvtm.

Installation

Der 'dynamic virtual terminal manager' ist in den offiziellen Paketquellen von Debian enthalten und lässt sich von dort bequem installieren:

# apt-get install dvtm

Einmal installiert lässt er sich bequem mittels

$ dvtm

starten.

Bedienung

Sämtliche Aktionen in dvtm bestehen aus der Mod-Taste (standardmäßig Strg+g) und der Taste für die gewünschte Aktion. Die (für mich) wichtigsten sind:

  • Mod+c: neue Shell
  • Mod+x: aktives Fenster schließen
  • Mod+j: zum nächsten Fenster wechseln
  • Mod+k: zum vorherigen Fenster wechseln
  • Mod+1: zum Fenster Nr. 1 wechseln
  • Mod+m: aktuelles Fenster maximieren
  • Mod+t: Vertikaler Split Modus
  • Mod+b: Horizontaler Split Modus
  • Mod+x: Sperrt den Bildschirm (man wird nach einem Passwort gefragt; dieses muss man danach eintippen um den Bildschirm wieder zu entsperren)
  • Mod+q: Exit

Daneben gibt es noch eine Menge weiterer Kommandos (z.B. um die Fenstergröße zu ändern). Man findet diese indem man

$ man dvtm

aufruft. Darüber hinaus kann man dvtm beim Start noch einige Optionen übergeben (z.B. -m um die Mod-Taste zu ändern).

Fazit

dvtm lohnt sich wirklich. Getreu der Unix-Philosophie "Do one thing but do it well" erledigt dvtm genau diese eine Aufgabe und das ohne zu murren und ohne zusätzlichen Schnickschnack. dvtm bringt von Haus aus kein session-management mit (wie es etwa tmux oder screen tun). Abhilfe schafft aber hier abduco. Wer also möchte, dass einmal gestartete Anwendungen nach dem Logout auch weiter laufen, der möge hier zuschlagen :-)

← Previous Next → Page 2 of 4