Airport lässt sich nicht mehr aktivieren

Ich habe heute über eine Stunde damit verbracht die Ursache dafür zu finden, dass sich die Wlan-Verbindung meines Macbook Pro (early 2008) nicht mehr aktivieren ließ. Den Grund hierfür habe ich nicht gefunden. Morgens beim Anmachen ging es einfach nicht mehr.

Glücklicherweise war die Lösung dann doch einfach und es war kein Hardwaredefekt: PRAM resetten. Vor der Anzeige des grauen Bildschirms beim Starten des Macs folgende Tastenkombination gedrückt halten bis der Mac nochmals neustartet:

command + option + p + r

EncFS in Verbindung mit Dropbox nutzen

In diesem Beitrag möchte ich kurz festhalten, wie man auf Mac OS X ein verschlüsseltes EncFS-Volume in der Dropbox nutzt und dies beim Login mittels launchd einbindet.

Installation von Fuse4X und EncFS
Da das Projekt MacFuse aufgegeben worden ist, werden wir für diesen Ansatz Fuse4X nutzen. Auf der Homepage des Projektes findet man ein Diskimage, aus dem man Fuse4X (zum Zeitpunkt des Schreibens Version 0.9) installieren kann. Weiterhin benötigen wir natürlich EncFS. Ein vorkompiliertes Paket für Snow Leopard ist dankenswerter Weise erhältlich. Das Paket ist nicht explizit Lion-kompatibel. Jedoch scheint es positive Erfahrungen gegeben zu haben (siehe Kommentare). Beides wird installiert und anschließend kann EncFS genutzt werden.

EncFS-Volume erstellen
Zunächst muss ein neues EncFS-Volume erzeugt werden. Dazu starten wir den Terminal unserer Wahl. Mit folgendem Befehl wird ein Volume erstellt, dessen verschlüsselter Teil in ~/Dropbox/.crypted liegt und, wenn gemounted, über ~/encrypted zugreifbar ist:

encfs ~/Dropbox/.crypted ~/encrypted

Bei Bedarf werden beide Ordner erstellt. Anschließend kann der Erstellungsmodus des Volumes angegeben werden. Siehe dazu die Dokumentation von EncFS bzw. die Manpage. Dann muss ein Passwort für das Volume gewählt werden. Dieses muss bei jedem Mounten des Volumes eingegeben werden. Wie wir das umgehen, steht weiter unten.

Das verschlüsselte Volume liegt nun in der Dropbox. Jetzt möchten wir das Volume beim Login einbinden und anschließend die Dropbox starten. Laut verschiedener Aussagen kann es zu Datenverlusten kommen, wenn erst Dropbox gestartet und dann das EncFS-Volume eingebunden wird. Daher unterbinden wir das automatische Starten der Dropbox beim Systemstart in den Einstellungen der Dropbox. Damit sollte das Anmeldeobjekt für den Benutzer gelöscht werden.

Passwort des EncFS-Volumes aus dem Schlüsselbund beziehen
Um nicht bei jedem Mounten des EncFS-Volumes das Passwort für selbiges eingeben zu müssen, werden wir das Passwort im Schlüsselbund ablegen und von dort beziehen. Dazu öffnen wir die Schlüsselbundverwaltung und erstellen einen neuen Schlüssel (s. Bild). Mit dem Eintrag im Feld „Account-Name“ werden wir im nächsten Schritt auf das Passwort zugreifen.

add_key_to_keychain.png

Skripte erstellen
Wir benutzen die folgenden zwei Shell-Skripte (vielen Dank an die Erdenker12) um das EncFS-Volume einzubinden und anschließend Dropbox zu starten. Beide liegen im Verzeichnis ~/encfs.

Skript 1 - fs-cryptmount: (Un-)Mounten des EncFS-Volumes

# Return code of script
errorCode=0

# Path to raw encfs volume
raw_encfs=~/Dropbox/.crypted

# Path to decrypted encfs volume
decrypt_encfs=~/encrypted

# Name of the mounted volume
vol_name=EncryptedDropbox

# Get password line out of keychain
password_line=$(security 2>&1 >/dev/null find-generic-password -ga encfs_volume)

# Retrieve raw password out of password line
password=$( echo "$password_line" | perl -n -e '/^password: "(.*)"$/ && print "$1n"')

# umount
if [ "$(basename $0)" = "fs-cryptumount.command" ]; then
  umount $decrypt_encfs
  if [ $? -eq 0 ]; then
    echo "EncFS volume $vol_name unmounted."
  else
    errorCode=$?
    echo "Error while unmounting volume $vol_name ."
  fi
  exit $errorCode
fi

# mount
echo -n "Mounting encfs volume $vol_name... "

mount | grep encfs >/dev/null 2>&1
if [ $? -ne 0 ]; then
  echo "${password}" | /usr/local/bin/encfs -o volname=$vol_name -S $raw_encfs $decrypt_encfs
  if [ $? -ne 0 ]; then
    errorCode=$?
    echo "Error while mounting volume $vol_name."
  else
    echo "Succesfully mounted volume $vol_name ."
    fi
else
  echo "Encfs volume $vol_name is already mounted."
fi

exit $errorCode

Wenn das EncFS-Volume einfach über die Kommandozeile ausgehangen werden soll, kann hier optional ein Link angelegt werden:

cd ~/encfs
ln -s fs-cryptmount.command fs-cryptumount.command

Nun kann mit dem Aufruf ~/encfs/fs-cryptumount.command das Volume ausgehangen werden. Das kann aber auch wie mit jedem anderen Volume direkt über den Finder geschehen.

Skript 2 - fs-secure-dropbox-start: Starten von Dropbox erst nach Einbindung des EncFS-Volumes


# Path to script
encfs_mount_script_path=~/encfs/fs-cryptmount.command

# Is the crypted directory (encfs process) already mounted?
ps ax | grep encfs | grep Dropbox >/dev/null
if [ $? -ne 0 ]; then
  # We have to mount EncFS
  $encfs_mount_script_path
  if [ $? -ne 0 ]; then
    exit $?
  fi
fi

# EncFS is mounted, now start Dropbox
open /Applications/Dropbox.app

LaunchAgent einrichten
Zum Schluss muss ein LaunchAgent für den aktuellen Benutzer eingerichtet werden, der die Skripte aufruft. Alternativ kann ein Anmeldeobjekt erstellt werden, welches das Skript fs-secure-dropbox-start ausführt. Dabei wird jedoch nach dem Einloggen ein Terminal-Fenster geöffnet, was nicht so schick ist.

Der LaunchAgent kann entweder mittels GUI (Lingon) oder per Hand mit einem Texteditor erstellt werden. Der Inhalt der Datei sollte ungefähr so aussehen:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Label</key>
	<string>local.username.EncryptedDropbox</string>
	<key>ProgramArguments</key>
	<array>
		<string>/Users/username/encfs/fs-secure-dropbox-start.command</string>
	</array>
	<key>RunAtLoad</key>
	<true/>
	<key>ServiceDescription</key>
	<string>Securely start Dropbox after an encrypted encfs volume was mounted.</string>
</dict>
</plist>

Dieser LauchAgent wird immer beim Einloggen ausgeführt; also genau, was wir möchten. Dabei wird das Skript fs-secure-dropbox-start gestartet.

Die erstellte Datei wird im Verzeichnis ~/Library/LaunchAgents/local.username.EncryptedDropbox.plist abgelegt. Der Dateiname kann frei gewählt werden. Wer Lingon genutzt hat, kann nun den aktuellen Benutzer abmelden und sich wieder neu anmelden. Dann sollte der Ordner ~/encrypted als Volume angezeigt werden. Er kann im Finder zur Sektion „Geräte“ gezogen werden und erscheint nun immer dort, wenn das Volume gemounted wird.

Wer den LaunchAgent manuell erstellt hat, muss sich eventuell noch mit launchctl auseinandersetzen und den LaunchAgent manuell laden.

Thunderbird: Alternativer Mail-Client für Mac OS X

Solange ich denken kann, benutze ich als E-Mail-Client Thunderbird. Mit einer Version vor dem ersten Release habe ich angefangen. Zuvor mit Windows konnte ich mich nie recht mit Outlook anfreunden. Thunderbrid stellte eine gelungene und vor allem freie Alternative bereit. Außerdem mochte ich die Möglichkeit, wie bei Firefox, Addons zu nutzen und die Anwendung an meine Bedürfnisse anzupassen.

Mit dem Wechsel von Windows auf Mac OS X Ende letzten Jahres stellte ich zunächst eine Liste mit Programmen auf, die ich auf dem Mac vermissen würde. Nicht viele sind mir eingefallen und die meisten gab es für die drei großen Plattformen (Windows, Mac OS X, Linux). Für alle anderen habe ich gute Alternativen gefunden. Auch wenn Mac OS X mit einem Mail-Client ausgeliefert wird, wollte ich ihn bis heute nicht nutzen. Das liegt insbesondere an der Verteilung der eigentlichen Funktionen auf mehrere Programme.

Für mich muss ein Mail-Client mehr als nur E-Mails verwalten, senden und empfangen können. Ich hätte gerne ein integriertes Adressbuch sowie einen Kalender, der nicht nur lokale, sondern auch im Netzwerk befindliche Kalender einbindet. Klar kann ich das in OS X mit Mail, dem Adressbuch und iCal machen. Den Gedanken drei Applikationen für diese Aufgaben zu verwenden, möchte ich aber nicht verschwenden. So kam es, dass ich nach einem Tag Mail, Adressbuch und iCal schnell wieder zu Thunderbird wechselte. Vielleicht auch, weil ich nicht einsehe ein gutes, funktionierendes Prinzip zu ändern.

Mittlerweile hat Version 2 von Thunderbird einige Tage auf ihrem Buckel und die von mir lang ersehnte Version 3 lässt auf sich warten. Ab und zu werden Beta-Versionen in die Öffentlichkeit geworfen. So auch gestern: Version 3 Beta 4 ist nun aktuell. Neben einer dem System gut angepassten Benutzeroberfläche sind Tabs mit dabei. Ein sehr schönes Feature, was heutzutage selbstverständlich sein sollte.

Ansonsten hat sich auf den ersten Blick nicht viel verändert. Auf den zweiten Blick fällt die große Suchleiste auf. Dort eingegebene Begriffe werden nun auto-vervollständigt. Bestätigt man den Suchbegriff öffnet sich ein neuer Tab, in dem alle gefundenen E-Mails, die den Suchbegriff enthalten, aufgeführt werden. Zudem kann dann übersichtlich nach Kontakten und Ordnern gefiltert werden. Ein besonders hervorzuhebendes Feature ist die Zeitleiste. Diese visualisiert die Verteilung der gefunden E-Mails in den letzten Jahren mittels eines Balkendiagramms. Jeder Balken kann angewählt werden und somit die Suche zeitlich weiter eingeschränkt werden.

calendar.pngmain_window.pngsmart_search.png

Das Addon Lightning ist für die Kalenderfunktionen zuständig. In seiner aktuellen Version 0.9 ist es nicht kompatibel mit Thunderbird 3. Aus diesem Grund muss auf die aktuellen Nightly-Builds zurückgegriffen werden. Wem das manuelle Installieren zu aufwändig ist, kann sich mit dem Addon Lightning Nightly Updater behelfen. Dieses wird in Thunderbird eingebunden. Nach einem Neustart der Applikation wird im Hilfe-Menü von Thunderbird der Eintrag „Check for latest Lightning Nightly Builds…“ angezeigt. Diese Funktion lädt das aktuelle Nightly-Build von Lightning herunter und installiert es. Anschließend ist Lightning auch mit der Beta-Version von Thunderbird 3 lauffähig.

Daneben wird nun eine Zusammenfassung angezeigt, wenn mehr als eine E-Mail ausgewählt wurde. Außerdem ist der aus Firefox bekannte Addon-Manager integriert worden, mit dem aus Thunderbird heraus Addons gesucht und installiert werden können. Das Adressbuch wurde aufgemöbelt und kann in Mac OS X auf das hauseigene Adressbuch zugreifen. Growl-Nachrichten werden bei neu ankommenden E-Mails angezeigt. Per Spotlight kann nach Thunderbird-E-Mail gesucht werden.

Für mich ist Thunderbird 3 ein rundum gelungenes Paket mit vielen nützlichen Features, die es von seiner Vorgängerversion unterscheiden. Nicht zu kurz gekommen ist ebenso die Integration für Mac OS X. Ich warte jedenfalls gespannt auf die hoffentlich bald erscheinende finale Version und bleibe Thunderbird treu. :)