Я использую скрипт для извлечения небольшого USB-ключа, который я использую в качестве «идентификационного» диска, который содержит некоторую защищенную информацию. Следует отметить, что в нем есть файл «связки ключей» OS X, в котором содержатся некоторые из моих более безопасных и важных паролей (те, которые я готов посвятить программе управления паролями вообще, но которые слишком важны, чтобы оставлять их в покое). на моих компьютерах или синхронизированы с Dropbox.)
Этот файл цепочки ключей является символической ссылкой из папки Apple ~/Library/Keychains/
на этот мой ключ, скажем, /Volumes/Key/SECURE.keychain
. Когда я извлекаю диск, эта символическая ссылка исчезает, и цепочка для ключей, очевидно, перестает быть доступной в рамках Keychain Access:
Это все хорошо… за исключением того, что я не могу извлечь этот диск, не закрыв половину программ на моем Mac. Я не могу сказать, что по какой- либо веской причине любое приложение, которое по какой- либо причине обращается к любому брелку, открывает (и сохраняет как открытый) каждый файл .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
Как можно безопасно извлечь этот диск, не убивая каждый процесс, в котором этот файл открыт? Можно ли каким-то образом извлечь файл из процессов удаленно или что-то в этом роде?
(Связанный: Вот мой текущий, неприемлемый подход: https://github.com/elliottcable/System/blob/2a5917e/Dotfiles/profile#L73-L94)