2014-07-03 54 views
5

我想在auth.db編輯規則獲得授權插件被調用時登錄窗口將會出現:如何在屏幕保護程序之後調用Mac授權插件來解鎖鎖定屏幕?

  1. 重新啓動的Mac
  2. 手動註銷
  3. 後後當從睡眠
  4. 喚醒屏幕保護程序後

這樣做的原因是爲了使解鎖/登錄,而無需用戶手動鍵入她的登錄/密碼。

修改了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> 

睡眠後醒來時,該插件調用3),但事件不調用4)屏幕保護程序後。

我該如何在屏幕保護程序之後調用授權插件?

+0

你能描述一下你如何編輯system.login.screensaver規則嗎? – user3799575

回答

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種情況爲我工作。

我不確定是否所有這些機制都是必要的,所以我可能會在將來清理它,但現在它的工作。

+0

非常感謝您的回覆!我以爲沒有人會回答......但你是如何設法讓用戶不要輸入密碼並用NameAndPassword插件手動輸入的? – Kinter

+0

我修改了一下代碼。密碼必須來自某個地方,那件事實際上是特定於實施的。對我而言,我只是硬編碼了我的用戶名/密碼,因爲我原型的目的是爲了確保爲Mac設置密碼的自定義用戶界面是可能的。 你可以嘗試訪問一個帶有這些信息的本地數據庫,甚至嘗試使用存儲在服務器上的憑證進行解鎖,這只是我腦海中的一些想法。顯然,這裏有很多安全問題和需要注意的事情。 – fjlksahfob

+0

我在想沒有密碼的情況下驗證用戶的可能性(例如使用指紋掃描儀)。也許我也必須在那種情況下存儲密碼... – Kinter