我正在尝试编辑auth.db中的规则,以便在登录窗口出现时调用授权插件:
这样做的理由是在没有用户手动输入登录名/密码的情况下启用解锁/登录。
修改了system.login.console规则后,我获得了1)和2)事件而不是3)和4)事件上调用的授权插件。对于3)和4)我尝试以几种方式编辑system.login.screensaver规则,例如:
<dict>
<key>class</key>
<string>user</string>
<key>mechanisms</key>
<array>
<string>NullAuthPlugin:invoke,privileged</string>
<string>builtin:authenticate</string>
<string>authinternal</string>
</array>
<key>group</key>
<string>admin</string>
<key>session-owner</key>
<true/>
<key>shared</key>
<false/>
<key>allow-root</key>
<false/>
</dict>
插件在睡眠后醒来时被调用,但在屏幕保护程序后不会在事件4)上调用。
如何在屏幕保护程序之后调用授权插件?
答案 0 :(得分:5)
我也挣扎了一段时间(你的问题帮了我很多顺便说一下,谢谢你!)
这对我有用:
<?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>allow-root</key>
<false/>
<key>authenticate-user</key>
<true/>
<key>class</key>
<string>user</string>
<key>created</key>
<real>426709293.721896</real>
<key>group</key>
<string>admin</string>
<key>mechanisms</key>
<array>
<string>NameAndPassword:invoke</string>
<string>builtin:policy-banner</string>
<string>builtin:authenticate,privileged</string>
<string>builtin:auto-login,privileged</string>
<string>builtin:forward-login,privileged</string>
<string>PKINITMechanism:auth,privileged</string>
</array>
<key>modified</key>
<real>427141220.594918</real>
<key>session-owner</key>
<true/>
<key>shared</key>
<false/>
<key>timeout</key>
<integer>2147483647</integer>
<key>tries</key>
<integer>10000</integer>
<key>version</key>
<integer>0</integer>
</dict>
</plist>
注意: 我使用了NameAndPassword Apple示例,而不是NullAuth,所以如果您在问题中使用NullAuth,那么您需要更改它。
显然,您的时间戳和内容也会有所不同。为你列出了你列出的所有4个案例。
我不确定所有这些机制是否都是必要的,所以我将来可能会对其进行清理,但现在它可行。