6

OS X のデフォルトのログイン/ロック画面をオーバーライドして、ユーザーがパスワードを提供する以外の方法でログインできるようにしようとしています (指紋スキャナーまたは「ノックしてロックを解除する」方法を考えてください)。方法を探しています。今すぐ何時間もそれを行う - 役に立ちそうなのは、Authorization Plugin ADCリファレンスとこの例だけです: https://developer.apple.com/library/mac/samplecode/NameAndPassword/Introduction/Intro.html#//apple_ref /doc/uid/DTS10004022

この NameAndPassword xcode プロジェクトは少し古くなっていますが、Base SDK を指定するだけでビルドでき (ハードコードされた間違ったパスがありました)、結果の .bundle ファイルを/Library/Security/SecurityAgentPluginsディレクトリに配置しました。画面をロックしても何も変わり/etc/authorizationませんでしたが、Mavericks にはもう存在しないことを知っているファイルに承認ロールを追加する必要があることはわかっています (この auth.db ファイルと auth API 全体があります)。ここ - このデータベースに NameAndPassword を入れる方法がわかりません。

正しく行う方法を教えてください。または、目標を達成するための他の方法を知っている場合は教えてください。

4

1 に答える 1

12

データベースを編集する方法を見つけました - 最初は直接/var/private/db/auth.dbsqlite を変更しようとしましたが、うまくいきませんでした。

  1. security authorizationdb read system.login.console > outfile.plist

  2. outfile.plistこの後、NullAuthPlugin の readme に記載されているように、結果を変更する必要があります。

    <key>mechanisms</key>
      <array>
        <string>NameAndPassword:invoke</string>
    

    (最後の行は、ファイルに追加する必要がある行です)。

  3. 次に、データベースに保存するには:

    security authorizationdb write system.login.console < outfile.plist

その後、システムのログイン/ロック画面に変更が表示されるはずですが、注意してください!

現在のバージョンの NameAndPassword の例では認証できません!

データベースを変更する前に、Mac への有効な SSH 接続を確立してください。そうすれば、他のデバイスを使用して変更を元に戻すことができます (db 変更プロセスを繰り返しますが、今回は前に追加した行を削除します)。

于 2014-02-07T02:19:02.547 に答える