Erst EncFs dann Dropbox mit Script starten. Bitte um Hilfe

G

gandalf12

Aktives Mitglied
Thread Starter
Dabei seit
23.03.2011
Beiträge
472
Reaktionspunkte
62
Ich habe EncFS zusammen mit OSXFuse installiert um einen verschlüsselten Ordner in Dropbox zu erstellen.
Alles läuft einwandfrei. Auch unter Bootcamp habe ich mithilfe des Programmes BoxCryptor einwandfreien Zugriff auf meine Daten.
Alles Super soweit ?
Nicht ganz....
EncFS sollte zur Vermeidung vor Datenverlust vor Dropbox gestartet werden siehe hier:http://forums.dropbox.com/topic.php?id=15065
Ich starte mein EncFS mit Hilfe einer gescripteten Automatoraktion.
Code:
#!/bin/sh
# EncFS:DropSec admin script for Mac OS X

SOURCE=~/Dropbox/Tresor 
TARGET=~/Documents/DropSecure
VOLUME_TITLE=DropSecure
KEYCHAIN_PASSWORD=EncFS:DropSecure
ENCFS=/usr/local/bin/encfs

mount | grep $TARGET >/dev/null
[[ "$?" -eq "0" ]] && /usr/sbin/diskutil unmount $TARGET

if [ ! -d $TARGET ]; then
 echo "Create new mountpoint $TARGET"
 mkdir $TARGET
 chmod 0700 $TARGET
fi

$ENCFS $SOURCE $TARGET --extpass="security 2>&1 >/dev/null find-generic-password -gl '$KEYCHAIN_PASSWORD' |grep password|cut -d \\\" -f 2" -ovolname=$VOLUME_TITLE -oallow_root -olocal -ohard_remove -oauto_xattr -o nolocalcaches
Dies funktioniert astrein.
Jedoch ist nicht gewährleistet das EncFS vor Dropbox gestartet wird.
Nun gut das obige Problem ist schon sehr theoretisch...aber wenn man es besser machen könnte.....
Also, möchte die Autostartfunktion von Dropbox deaktivieren und dann erst EncFs und dann Dropbox mit der oberen gescripteten Automatorfunktion starten.
Irgendwelche Coder hier die mir das mit der Startreihenfolge noch in das obige reinbasteln können?
Danke.
 
warum machst du das mit automator?
starte das script doch lieber mit launchd, dann wird das direkt bei systemstart geladen...
 
Ich bin nicht der Spezialist was das betrifft.
Ich habe mir das obige aus mehren Scripten zusammengebastelt und meinen Bedürfnissen angepasst.
Wenn ich nun wüsste wie ich das ganze mit launchd beim Systemstart starte würde ich es gerne versuchen.
Bin für alles offen....
Kleine Hilfe wie es zu bewerkstelligen ist?
 
ist auch nicht weiter schwierig, den launchd job kannst du ja mit lingon sehr einfach erstellen.
dort einfach das script aufrufen...
 
Hallo,
habe nun extra Lingon gekauft und versucht einen launchd job zu erstellen.
Weder als LaunchDaemon noch als LaunchAgent funktioniert es jedoch.
Die Benutzeroberfläche von Lingon ist ja selbsterklärend. Da werde ich wohl nicht den Fehler gemacht haben.
Ich vermute es liegt am Skript mit der Endung .sh das ich nochmal dafür gebastelt habe.
Bei Doppelklick darauf funktioniert es aber nicht im Zusammenspiel mit Lingon.
Ich komme momentan nicht weiter.
Vielleicht kann mir ja einer ein funktionierendes Script basteln das ich mit Lingon verwenden kann.
Hier mein Script zum bearbeiten.
 
als launchdaemon wirst du ~ auch nicht nutzen können, da das nicht dein user home sein wird...
 
Heißt im Klartext?
Danke für die Hilfe, aber mit solchen kryptischen Antworten kann leider nichts anfangen.
Sollte ich das Script nun an eine bestimmte Stelle kopieren. (Nicht irgendwo unter /user.....) oder was ist damit gemeint?
Es läuft auch nicht als LaunchAgent...
Gebt mir doch bitte einfach kurz einen Vierzeiler wo das Script hin soll und ob mit Lingon dann das ganze unter /Library/LaunchDaemons oder /Library/LaunchAgents abgespeichert werden soll.
Habe Lingon Version 2.2.1 und nicht die 3
Aber das sollte ja egal sein

oder hängt es evtl. damit zusammen....

Can I run a job as root?
No, there is no way to run it as root by using Lingon to comply with the Mac App Store rules. But what you can do is create a new but before you save it you choose “Copy Plist to Clipboard” in the Job menu and the press Cancel.
Then open Terminal and make sure that you are an administrator. Write:
sudo pico /Library/LaunchDaemons/<your chosen name>.plist
and then enter and then paste the contents from Lingon. Then press ctrl-x and choose to save it. Then you need to load it manually with this command:
sudo launchctl load /Library/LaunchDaemons/<your chosen name>.plist
 
Habe es nun über Umwege zum Laufen gebracht.
Erstmal statt Lingon 2.2.1 zu benutzten die Version 3 aus dem App Store gekauft.
Leider ließ sich das Shell Script ums verrecken nicht zusammen mit launchd zur Arbeit überreden.
Nun in letzter Not und mit Geistesblitz ein Apple Script erstellt das mit der Funktion "do shell script" das eigene Script startet.
Mit diesem Apple Script habe ich nun mit Lingon 3 einen Lauchnd Job erstellt.
Funktioniert nun...
Zwar nicht die feine Art aber was solls.
Wenn jemand noch dahinter kommt warum mein Shell Script nicht ohne diesen Umweg alleine funktioniert, möge er das Bitte noch posten.
Ich würde es dann natürlich noch mal anders ausprobieren.
 
1. siehe #6
2. Du musst absolute Pfade angeben, wie bei /usr/sbin/diskutil oder am Scriptanfang Suchpfade einbinden.
 
Hallo,
habe jetzt versucht die ~in den Pfaden durch die volle Pfadbezeichnung zu ersetzen.
Geht leider immer noch nicht.
Wie ich einen Suchpfad einbinde ??????
Bitte nochmals um Hilfe.
Im Anhang noch mal das von mir geänderte Skript nun mit absoluten Pfaden.
Habe ich was übersehen??
Code:
#!/bin/sh
# EncFS:DropSec admin script for Mac OS X

SOURCE=/Users/Harald/Dropbox/Tresor
TARGET=/Users/Harald/Documents/DropSecure
VOLUME_TITLE=DropSecure
KEYCHAIN_PASSWORD=EncFS:DropSecure
ENCFS=/usr/local/bin/encfs

mount | grep $TARGET >/dev/null
[[ "$?" -eq "0" ]] && /usr/sbin/diskutil unmount $TARGET

if [ ! -d $TARGET ]; then
 echo "Create new mountpoint $TARGET"
 mkdir $TARGET
 chmod 0700 $TARGET
fi

$ENCFS $SOURCE $TARGET --extpass="security 2>&1 >/dev/null find-generic-password -gl '$KEYCHAIN_PASSWORD' |grep password|cut -d \\\" -f 2" -ovolname=$VOLUME_TITLE -oallow_root -olocal -ohard_remove -oauto_xattr -o nolocalcaches
 
Du musst überall wo so Kommandos wie diskutil stehen, den vollen Pfad angeben.

Rauszufinden mit:
which mount
which grep
which mkdir usw.

Soll das als User oder root Launchdings laufen?
Dann wirst du den "chmod 0700 ..." evtl. auch anpassen müssen, oder einen passenden "chown ..." davor setzen.
 
Soderle,
habe nun Befehle wie which mount, which grep usw. laufen lassen.

Antwort im Terminal:
/sbin/mount
/usr/bin/grep
/bin/mkdir

da ich nun nicht weiß wie ich diese Informationen in meinem Script verwerten soll, glaube ich, ich lasse die Geschichte gut sein.
Das Script sollte als User laufen.
Funktioniert ja auch.
Eben nur über den Umweg, das der launchd ein Apple Script startet und dieses dann das Bash Skript zum mounten des EncFS verschlüsselten Dropbox Volume.

Wenn ihr nicht die Geduld verliert könnte ja jemand das Script so umbasteln das es laufen sollte und die Stellen die geändert werden müssen z.B. Fett markieren.
Dann wüsste ich wo es genau hakt und ich könnte die Pfade gemäß meinen anpassen.
 
Zurück
Oben Unten