4

MacOSX 10.9.1 (Mavericks) でログイン画面を拡張しようとしています。私が見つけたように、これは新しい認証プラグインを実装し、それを認証データベースにインストールすることで可能になります。

インターフェイスを実装し、 SFAuthorizationPluginViewを上書き/拡張する方法を示す NameAndPassword の例をダウンロードしました。しかし問題は、Mavericks でビルドできないことです。そこで、NullAuthPlugin と呼ばれる 2 番目の例をダウンロードすることにしました。これはコンパイルされますが、インストール方法がわかりませんでした。

私の質問の 1 つは、これに関する適切で更新されたチュートリアルがあるかどうかです (TechNotes は 2008-09-16 の形式です)。

質問 2 は、Objective-C / C / C++ の開発があまり得意ではないため、これを C# (Xamarin.Mac / MonoMac) で開発できるかどうかです。

ありがとうございました!

4

2 に答える 2

6

まあ、バグはAppleに何度も報告されていますが、今のところ何もしていません。最も簡単な答えは、NameAndPassword プラグインのパッチを適用したバージョンが必要です。公式のものは壊れています。修正したプラグインを GitHub に置きました: https://github.com/skycocker/NameAndPassword

を交換することが重要です。

<string>loginwindow:login</string>

承認ポリシーデータベースの行

<string>NameAndPassword:invoke</string>

そうしないと、ログインできません。Merlin69 の助けがなければ、これを理解することはできません。

于 2014-02-26T19:02:20.703 に答える
-1

まず第一に、ログインプラグインをコンソールのログイン権限内に配置して、ログインプラグインのデバッグを開始しないでください。OSが操作中に呼び出す必要がある可能性のある他の権利とは完全に独立して、auth dbに特別なテスト「ダミー」権利を作成する必要があります。「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」

たとえ 10.9 より前の osx の場合であっても、認証データベースを手動で編集しないでください。間違えた場合、OS がファイルを解析できず、大惨事になります。私はそこに行ったことがあります。私はこれらのプラグインを何年もやっています。OS がファイルを読み取ることができない場合、ログイン時にプラグインがハングした場合と同じ状況になります。SSH を有効にするための先見の明がなかった場合は、別のパーティションで起動するか、タイム マシンのバックアップから起動する必要があります。後者の場合、最近の編集内容を外部ドライブに保存したほうがよいでしょう。

データベースに権限をインストールしたら、外部プログラムからテストする必要があります。

名前とパスワードの例に含まれている readme ファイルに示されているように、セキュリティ インフラストラクチャを呼び出して、OS と同じように権利を要求する必要があります。

リンゴのサンプルを使用する場合は注意してください。ガイドとしてのみ使用してください。NameAndPassword にエラーがあり、実行できませんでした。2006 年に最後に更新され、現在は廃止された多くの機能を使用しています。実際には何もしませんが、単なるシェルです。

于 2014-12-14T01:32:36.517 に答える