4

Я использую скрипт для извлечения небольшого 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)

2 ответа2

2

Только разблокированные цепочки для ключей не дадут вам отключить том, на котором они хранятся. Если вы заблокируете брелок, вы сможете без проблем размонтировать его.

Чтобы сделать это из оболочки (скрипта), используйте инструмент командной строки security:

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

Это заблокирует цепочку для ключей и позволит отключить том (если не работает Keychain Access ).

0

Я не знаю, почему эти приложения сохраняют цепочку для ключей, но вы должны попытаться принудительно извлечь USB-ключ, используя:

diskutil unmountDisk force /Volumes/Key

Без каких-либо проблем (если приложение не использует этот файл каким-либо образом).


PS: Если вы заслуживаете повторного связывания цепочки для ключей каждый раз, вы можете добавить путь цепочки для ключей к

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .