2

我正在使用NameAndPassword授权插件通过 OS X 锁定屏幕登录(该插件的固定版本,因为原始版本已损坏)。我需要它能够以某种方式访问​​存储的密码,目前我正试图通过使用钥匙串来实现这一点。

我设法创建了钥匙串并在其中保存了一些密码,以及在不提示用户的情况下访问密码所需的 ACL。添加到 ACL 的任何应用程序都可以正常工作,没有提示,但是当我尝试使用此 NameAndPassword 授权插件访问钥匙串-25293 The user name or passphrase you entered is not correct时,调用SecKeychainFindGenericPassword获取密码时出错。

我尝试将/Library/Security/SecurityAgentPlugins/NameAndPassword.bundle捆绑包和/Library/Security/SecurityAgentPlugins/NameAndPassword.bundle/Contents/MacOS/NameAndPassword可执行文件本身都添加到 ACL,但错误始终相同。

我相信这可能是因为这个插件是作为另一个用户(或根本没有用户)运行的。我能做些什么来摆脱这个错误?或者也许这不可能?在这种情况下,当它无法访问主目录时,我应该如何从该插件中存储和访问密码?我已经为此苦苦挣扎了好几个星期了。

4

2 回答 2

0

检查您是否将插件包的所有权更改为root:wheel 使用此命令:

sudo chown -R root:wheel /Library/Security/SecurityAgentPlugins/NameAndPassword.bundle
于 2014-11-27T10:12:41.060 回答
0

该插件可能需要配置为特权才能访问存储钥匙串的文件系统位置。

如果您需要访问主目录,您的机制可能需要在 HomeDirMechanism 之后运行。

为了从钥匙串中读取,您需要先将其解锁。对于默认登录钥匙串,您通常可以使用登录窗口中的密码解锁它,因为默认情况下该密码与登录密码保持同步。

您需要指定您正在读取的钥匙串,否则它将尝试使用可能不存在的 root 用户的默认钥匙串。

Apple 的技术说明涵盖了很多关于这个主题的内容。 https://developer.apple.com/library/content/technotes/tn2228/_index.html

于 2017-07-09T23:45:53.410 回答