首先: 從不,EVER,EVER開始通過將其放置在控制檯登錄權限內來調試登錄插件。您需要在auth數據庫中創建一個特殊的測試「虛擬」,完全獨立於操作系統在操作期間可能需要調用的任何其他權限。稱之爲「MyTestRight-RemoveMeAfterTest」。
創建一個plist文件看起來是這樣的:
「安全authorizationdb寫MyTestRight-RemoveMeAfterTest < MyTestRight-RemoveMeAfterTest_plist_file」
:
<?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>
與來自終端的 「安全性」 命令來安裝它
即使您仍然可以這樣做,即使您仍然可以手動編輯auth db,這在10.9之前的osx上也是如此。如果你犯了一個錯誤,而操作系統無法解析文件,你將會處於一個受到傷害的世界。我去過那裏。我一直在做這些插件多年。如果操作系統無法讀取文件,如果您的插件在登錄時掛起 - 如果沒有槳,則會出現同樣的情況。如果您沒有先見之明來啓用SSH,則必須啓動到另一個分區或從時間機器備份啓動。在後一種情況下,您最好將最近的編輯保存在某個外部驅動器上。
在db中安裝好以後,您應該從外部程序對其進行測試。
您需要像名稱和密碼示例中包含的自述文件中演示的那樣調用安全基礎結構,並請求您的權利,就像操作系統所做的那樣。
使用任何蘋果樣品時要小心。僅將它們用作指導。 NameAndPassword有錯誤,永遠無法運行。它最後在2006年更新並使用了許多現在已經過時的功能。它實際上什麼都不做,但只是一個殼。
我有一個基於NameAndPassword示例的插件,它適用於Mavericks,但在Mountain Lion下編譯。在小牛下編譯的問題是什麼? – TheDarkKnight
在構建選項菜單(NameAndPassword中的路徑被硬編碼爲10.9中不存在的10.5 sdk)中將SDK指定爲當前(10.9)後,它是可構建的。您還需要使用默認平臺列表執行某些操作,然後構建它們而不會出現問題。但是,有什麼問題是我無法獲得NameAndPassword示例進行身份驗證 - 輸入我的密碼並按下按鈕或返回沒有任何反應,我必須通過SSH停用它。 @ Merlin069你認爲你可以幫忙嗎?我知道使用Xcode進行調試,但我附近沒有其他Mac。 –
@MichałSiwek,你可以把它作爲一個新的問題添加到SO,提供任何代碼的例子,如果它不同於這個例子? – TheDarkKnight