如何从命令行删除钥匙串引用

时间:2016-09-28 22:43:42

标签: macos security command-line keychain

从Keychain应用程序中,我可以选择仅将引用删除到已解锁并通过命令行列出的列出的Keychain。 Keychain app 但是从命令行( man security )我似乎没有这个选项,只是删除文件+引用到这个钥匙串。

security command man

如何删除之前从命令行解锁的钥匙串的引用?我想用它执行一些操作后再次清理并删除(取消列表?)钥匙串(因为如果没有删除它,它仍然可以在钥匙串应用程序中看到)。

提前致谢!

2 个答案:

答案 0 :(得分:2)

使用rm命令直接删除文件。位置将是以下之一,具体取决于钥匙串是在system域还是user域。

系统域密钥链位置

$ ls -l /Library/Keychains/
total 392
-rw-r--r--  1 root  wheel  20460 Aug 21  2014 ConnectedBackup.keychain
-rw-r--r--  1 root  wheel  23732 Aug 21  2014 FileVaultMaster.keychain
-rw-r--r--  1 root  wheel  89560 Sep 19 21:37 System.keychain
-rw-r--r--  1 root  wheel  20460 Nov 10  2014 System.keychain-orig

用户域密钥链位置

$ ls -l ~/Library/Keychains/
total 1392
drwx------  8 Kevin  1437522721     272 Jul  1  2015 386EC17D-8428-522E-B9DD-CE89C60F0F10
-rw-r--r--@ 1 Kevin  1437522721   40776 Jan 25  2016 Microsoft_Entity_Certificates
-rw-r--r--@ 1 Kevin  1437522721   34368 Jan 25  2016 Microsoft_Intermediate_Certificates
-rw-r--r--@ 1 Kevin  1437522721  513136 Sep 27 20:05 login.keychain
-rw-------  1 Kevin  1437522721   87552 Sep 28 16:59 metadata.keychain

因此,如果您想从用户域中删除login钥匙串,那么

$ rm -rf ~/Library/Keychains/login.keychain

(钥匙串实用程序中显示的钥匙串名称是不带后缀.keychain的文件名)

修改

macOS Sierra及以上版本有-db个扩展名

答案 1 :(得分:1)

delete-keychain的{​​{1}}命令行选项将删除钥匙串文件,并将其从钥匙串的搜索列表中删除。要仅从搜索列表中删除钥匙串的引用,请使用security,在删除要删除的钥匙串的同时重写列表。

列表钥匙串与删除钥匙串

在命令行中,引用由list-keychains -s处理,数据库/钥匙串文件由list-keychains处理。

常规工作流程

delete-keychain