3

了解しました。家にいるときに「スリープ解除時にパスワードを要求する」機能をオフにするようにスクリプトを設定しました。電話にpingを送信して、ネットワークに接続されているかどうかを確認します。接続されていない場合は、ロックをオンにしてスリープ解除します。それで:

try
do shell script "ping -c2 X.X.X.X"
set theResult to the result
if theResult contains " 2 packets received," then
    tell application "System Events"
        tell security preferences
            get properties
            set properties to {require password to wake:false, require password to unlock:false}
        end tell
    end tell
end if
on error
tell application "System Events"
    tell security preferences
        get properties
        set properties to {require password to wake:true, require password to unlock:true}
    end tell
end tell
end try
end

これは問題なく機能しますが、認証を求められます。スクリプトにパスワードが必要ないため、テキストの入力と戻りのルートもクリップボードのルートも使用したくありません...認証を回避する方法はありますか?

4

2 に答える 2

3

認証なしで特定のスクリプトを実行するのではなく、「ウェイク時のパスワード」を有効/無効にすることが目標である場合は、次のいずれかを使用します。

tell application "System Events"
    set require password to wake of security preferences to true
end tell

また

do shell script "defaults write com.apple.screensaver -int 1"

同じように「tofalse」と「-int0」で設定をオフにします。これらはいずれも、ユーザーレベルの設定を変更するだけなので、認証は必要ありません(

~/Library/Preferences/com.apple.screensaver.plist

私のシステムでは、これは実装の詳細ですが、信頼するべきではありません)。

スクリプトで認証ダイアログをトリガーするのは、セキュリティ設定の[詳細...]部分にある[ロックされた設定にアクセスするために管理者パスワードが必要]オプションに相当するもう1つのプロパティ[ロックを解除するにはパスワードが必要]です。内部的には、このオプションは、AuthorizationServicesデータベースのいくつかの設定を変更することと同じです。

/private/etc/authorization

認証されていない変更に対して、システム全体のさまざまな設定をロック解除したままにするかどうかを制御します。

システムイベントには(それほど深刻ではない)バグがあるように見えますが、私のシステムでは、管理者として認証するかどうかに関係なく、「ロックを解除するにはパスワードが必要」を設定しても効果はありません。

于 2012-07-04T16:22:58.387 に答える
1

この答えには2つの部分があります。

  1. スクリプトまたはGUIスクリプトを介して、プロンプトを担当するSecurityAgentアプリケーションにパスワードを渡す方法はありません(つまり、設計によるものです)。また、パスワードを完全に抑制することもできません。これは言われている、
  2. プロンプトを無視して、パスワードを入力せずにウィンドウを閉じることができます。その場合でも、プロパティ設定が適用されます(OS X 10.7.4でテスト済み)。

rdar://11484075としてAppleにセキュリティ問題として報告されました

更新:Apple Product Securityはこれをセキュリティの問題とは見なしていませんが、バグ自体は追跡されています(Openradarでは利用できない別のレーダーの複製として閉じられているため、推測する必要がありますが、期待していますAppleが注目している問題のように見える偽のダイアログ)。

于 2012-05-18T16:45:58.773 に答える