Wie kann ich einen Schlüsselbund unter OS X programmatisch "auswerfen"?

882
ELLIOTTCABLE

Ich verwende ein Skript, um einen kleinen USB-Stick auszuwerfen, den ich als Identitätslaufwerk verwende, das einige sichere Informationen enthält. Zu beachten ist, hat es eine O X „Schlüsselbund“ Datei auf das, was zu einem Passwort-Management - Programm zu begehen einige meiner sicheren und wichtiger Passwörter (die, die ich bin bereit, enthält überhaupt, aber die sind zu wichtig, sitzen zu lassen auf meinen Computern oder mit Dropbox synchronisiert.)

Diese Keychain-Datei hat einen Symlink von Apples ~/Library/Keychains/Ordner zu meinem Schlüssel, sagen wir mal /Volumes/Key/SECURE.keychain. Wenn ich den Datenträger auswerfen, verschwindet dieser Symlink und der Schlüsselbund ist offensichtlich nicht mehr innerhalb von Keychain Access zugänglich:

fehlendes Schlüsselbund-Symbol

Das ist alles gut und gut… außer ich kann diese Diskette nicht auswerfen, ohne die Hälfte der Programme auf meinem Mac zu beenden. Aus keinem guten Grund, den ich feststellen kann, öffnet jede Anwendung, die aus irgendeinem Grund auf einen Schlüsselbund zugreift, jede einzelne Datei, die dem System bekannt ist. Zum Beispiel, sobald ich die Diskette einstecke, wenn überhaupt noch kein Zugriff auf diesen sekundären, sicheren Schlüsselbund von mir angefordert wurde:.keychain

> lsof '/Volumes/Key/SECURE.keychain' COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME Spotify 2801 elliottcable txt REG 1,8 89096 319 /Volumes/Key/SECURE.keychain syncdefau 4267 elliottcable txt REG 1,8 89096 319 /Volumes/Key/SECURE.keychain 

Wie kann ich dieses Laufwerk sicher auswerfen, ohne zu töten jeden Prozess, der die Datei geöffnet hat? Kann ich die Datei irgendwie aus der Ferne oder etwas Ähnlichem aus den Prozessen auswerfen ?

(Related: Hier ist mein aktueller, inakzeptabler Ansatz: https://github.com/elliottcable/System/blob/2a5917e/Dotfiles/profile#L73-L94 )

4

2 Antworten auf die Frage

2
Daniel Beck

Nur entsperrte Schlüsselanhänger verhindern, dass Sie das Volume, auf dem sie gespeichert sind, aushängen. Wenn Sie den Schlüsselbund sperren, können Sie die Bereitstellung ohne Probleme aufheben.

Verwenden Sie dazu von einer Shell (Skript) aus das Befehlszeilentool security:

security lock-keychain /Volumes/Key/SECURE.keychain 

Dadurch wird der Schlüsselbund gesperrt und Sie können den Datenträger aushängen (solange Keychain Access nicht ausgeführt wird).

0
dezzeus

I don't know why those apps retain the keychain, but you should try to force the ejection of the USB key using:

diskutil unmountDisk force /Volumes/Key 

Without any problem (as long as those application shouldn't use that file in any way).


P.S.: If you deserve from re-linking the keychain each time, you may want to add the path of the keychain to

~/Library/Preferences/com.apple.security.plist