Shares automatisch einhängen

Mit OS X LaunchAgents

Mounty macht's möglich!

Sei es, dass die Daten eines jeden Projektes auf einem eigens angelegten Share residieren oder ihre IT ihr Netzwerklabyrinth stolz mit kryptischen, nahezu identischen Servernamen garniert, so bedarf es einer Extra-Portion Motivation um in den richtigen Flow für die eigentliche Arbeit zu kommen. Mit Mounty haben Sie Freigaben im Griff.

Features

  • Automatisches Verbinden zu Freigaben auf verschiedenen Servern beim lokalen Anmelden am Mac (SMB/CIFS, AFP, FTP, NFS)
  • Beziehen der Server-Zugangsdaten aus dem OS X Schlüsselbund
  • Unterstützung für OS X Notification-Center
  • Leicht zu konfigurieren
  • Benutzt ausschließlich Bordmittel von OS X

Systemvoraussetzungen

  • Mac OS X 10.8 oder neuer empfohlen
  • Im Netzwerk verfügbare Datei-Freigaben (AFP, SMB/CIFS, FTP oder NFS)
  • Gültigen Logindaten (Benutzername und Passwort) für eben diesse

Mounty 0.15.1.29 herunterladen19 KiB

Benutzung auf eigenes Risiko (siehe Impressum).

Mounty installieren

Doppelklicken Sie das Paket Mounty.pkg im heruntergeladenen Disk-Image und folgen Sie den Anweisungen des Installationsassistenten. Im Anschluss an die Installation wird die Konfigurationsdatei ~/Scripts/mounty/mounty.conf geöffnet. Fügen Sie hier die Daten der Freigaben hinzu, zu welchen sie beim lokalen Anmelden verbinden möchten. Mehr Informationen hierzu finden Sie im folgenden Kapitel.

Wie Funktioniert's?

Mounty konfigurieren

Um Mounty mitzuteilen, welche Freigaben es einhängen soll, trägt man deren Details in eine Konfigurationsdatei (standardmäßig ~/Scripts/mounty/mounty.conf) ein. Die Einträge sind durch Semikola getrennt und werden als Zeichenfolge der Variablen mounty_shares zugewiesen. Jeder Eintrag folgt dieser Syntax:

protocol://user@server/share

Um zur Windows-Freigabe Documents des Servers mit der IP 192.168.0.100 als Benutzer bill zu verbinden, bedarf es also:

smb://bill@192.168.0.100/Documents

Eine Beispielkonfiguration sieht wiefolgt aus:

mounty_shares="smb://$USER@192.168.0.100/$USER;smb://$USER@192.168.0.100/Public;smb://$USER@192.168.0.100/Documents";

Benutzername und Server können pro Freigabe individuell gesetzt werden. Im obigen Beispiel ist der Kurzname des Benutzers auf Mac-Client und Freigaben-Server identisch und kann mittels $USER zur Laufzeit bestimmt werden.

Mounty starten

Mounty lässt sich manuell mit dem folgenden Befehl ausführen. Wird wie beim Anmeldevorgang keine Konfigurationsdatei angegeben, verwendet Mounty die Datei ~/Scripts/mounty/mounty.conf.

mounty.sh <config file>

Mounty und die Passwörter

Da in der Regel beim Anmelden eines lokalen Benutzers auf dem Mac dessen Schlüsselbund freigegeben wird, kann man mittels Komandozeilen-Programm security auch von Skriptseite auf im Schlüsselbund hinterlegte Passwörter zugreifen. Mounty macht hiervon Gebrauch, unter der Prämisse, daß die benötigten Passwörter bereits im Schlüsselbund gespeichert sind. Es ist also erforderlich, daß man alle Shares zuvor einmal über Finder mountet und dabei die Checkbox Zum Schlüselbund hinzufügen antickt. Wer möchte, kann security im Terminal gerne selbst ausprobieren. Das von Mounty verwendete Kommando sieht im Kern wiefolgt aus:

security find-internet-password -w -s "$server" -a "$user"

Bei Anmeldung los!

Die in OS X integrierten LaunchAgents erlauben das ereignisgesteuerte Ausführen von eigenen Skripten. Ich verwenden das Login-Ereignis RunAtLoad um Mounty anzustossen.

Der zu diesem Zweck erstellte LaunchAgent in ~/Library/LaunchAgents sieht wiefolgt aus:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	...
	<key>ProgramArguments</key>
	<array>
		<string>bash</string>
		<string>-c</string>
		<string>~/Scripts/LaunchAgents/runatload.sh</string>
	</array>
	<key>RunAtLoad</key>
	<true/>
</dict>
</plist>

Man beachte das Array ProgramArguments, in welchem die Shell bash instruiert wird, das benutzereigene Sklript ~/Scripts/LaunchAgents/runatload.sh für dieses Ereignis auszuführen. Bash unterstützt Pfadnamen-Erweiterung (Globbing), welches den komfortablen Einsatz von Platzhaltern wie ~ (Tilde = Benutzer-Ordner) erlaubt und damit auf die Bedürfnisse eines jeden Benutzers zugeschnittene Lösungen ermöglicht. Das Skript ~/Scripts/LaunchAgents/runatload.sh kann vom Benutzer bei Bedarf um weitere Einträge ergänzt werden. Möchte man den Agenten ausschließlich für Mounty nutzen, kann man stattdessen direkt zu Mounty verweisen.

Der neu erstellte Agent wird beim Anmelden ausgeführt. Er kann aber auch zu Testzwecken mit den folgenden Kommando in Terminal manuell gestartet bzw. beendet werden, wobei <plist> der Dateipfad der PLIST-Datei ist:

launchctl load|unload <plist>