首先:永远,永远,永远都不会通过将登录插件放在控制台登录权中来开始调试登录插件。您需要在身份验证数据库中创建一个特殊的测试“虚拟”权限,完全独立于操作系统在其操作期间可能需要调用的任何其他权限。称它为“MyTestRight-RemoveMeAfterTest”。
创建一个类似于以下内容的 plist 文件:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>class</key>
<string>evaluate-mechanisms</string>
<key>comment</key>
<string>Used to validate a terminal user.</string>
<key>mechanisms</key>
<array>
<string>NameAndPassword:invoke</string>
</array>
</dict>
</plist>
使用终端中的“security”命令安装它:
“安全授权数据库写入 MyTestRight-RemoveMeAfterTest < MyTestRight-RemoveMeAfterTest_plist_file”
永远不要手动编辑 auth db,即使您仍然可以这样做,在 10.9 之前的 osx 上就是这种情况。如果你犯了一个错误,操作系统无法解析文件,你将陷入痛苦的世界。我去过那里。我多年来一直在做这些插件。如果操作系统无法读取文件,如果您的插件在登录时挂起,您将处于相同的情况 - 在没有桨的情况下沿着小溪前进。如果您没有远见启用 SSH,您将不得不启动到另一个分区或从时间机器备份启动。在后一种情况下,您最好将最近的编辑保存在某个外部驱动器上。
在数据库中安装正确后,您应该从外部程序对其进行测试。
您需要调用安全基础设施,如名称和密码示例中包含的自述文件中所示,并请求您的权利,就像操作系统一样。
使用任何苹果样品时要小心。仅将它们用作指南。NameAndPassword 有错误并且永远无法运行。它最后一次更新是在 2006 年,并使用了许多现已过时的功能。它实际上并没有做任何事情,而只是一个外壳。