J'utilise un script pour éjecter une petite clé USB que j'utilise comme lecteur "d'identité" et qui contient des informations sécurisées. A noter qu'elle contient un fichier "keychain" OS X, qui contient certains de mes mots de passe les plus sûrs et les plus importants (ceux que je suis prêt à script dans un programme de gestion de mots de passe). à tous mais qui sont trop importantes pour être laissées sur mes ordinateurs ou synchronisées avec Dropbox).
Ce fichier Keychain est un lien symbolique entre le fichier Apple ~/Library/Keychains/
à cette clé, disons, /Volumes/Key/SECURE.keychain
. Lorsque j'éjecte le disque, ce lien symbolique disparaît, et le trousseau n'est évidemment plus accessible dans Keychain Access :
Tout cela est bien beau mais je ne peux pas éjecter ce disque, sans quitter la moitié des programmes de mon Mac. Sans que je sache pourquoi, toute application qui accède à cualquier Porte-clés pour cualquier raison, ouvre (et conserve en tant qu'ouverte) chaque .keychain
fichier dont le système a connaissance. Par exemple, dès que je branche le disque, alors que rien n'a demandé l'accès à mon trousseau secondaire et sécurisé :
> 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
Comment puis-je éjecter ce disque en toute sécurité, sans mise à mort tous les processus qui ont ce fichier ouvert ? Puis-je d'une manière ou d'une autre éjecter le fichier à partir des processus, à distance, ou quelque chose de ce genre ?
(En rapport : Voici mon approche actuelle, inacceptable : https://github.com/elliottcable/System/blob/2a5917e/Dotfiles/profile#L73-L94 )