web-dev-qa-db-ja.com

「スクリーンセーバー/スリープ後にパスワードを要求する」またはターミナルを使用して10.7の遅延を切り替えます

設定パネルには、パスワードのロックを再度解除する必要がある前に、Macがスリープ/スクリーンセーバーに入ることができる時間を変更するオプションがあります。

OS X Lion10.7を使用しています。

ターミナルまたはAppleScriptを使用してこの設定を変更する方法はありますか?以下を使用してplistファイルを変更しようとしました:

defaults write com.Apple.screensaver askForPasswordDelay -int 60

また試した

defaults write com.Apple.screensaver askForPasswordDelay -float 60

また、パスワードを完全に無効にしても機能しませんでした

defaults write com.Apple.screensaver askForPassword -int 0

Plistファイルが変更されましたが、まったく効果がありませんでした。これは、プリファレンスの設定を手動で切り替えるときに変更されるのと同じplistファイルです。

誰かが私の問題を解決する方法のアイデアを持っていれば素晴らしいでしょう。

編集:次のことも試みました:1)-currentHostフラグを追加します2)-int/-floatを削除します

7
desbo

これは、UIスクリプトを使用して行うことができます。これには、ユニバーサルアクセス設定ペインで支援機器のサポートを有効にする必要があります。 osascriptを使用してコマンドラインからスクリプトを起動できますが、これを機能させるにはGUIセッションが必要です。

以前の回答に基づいて ここ 、FileVault対応のLionで動作する次のスクリプトを作成しました。どうやら、Lion自身または私がFile Vault 2を有効にしたことにより、パスワードを完全に無効にするチェックボックスが削除されたようです。後者の場合、スクリプトを修正することはできませんが、リンクされたスクリプトは機能する可能性があります。

インデックスを変更します(6)メニュー項目の9行目をクリックして、選択するオプションを選択します。


enter image description here

tell application "System Preferences"
    set current pane to pane id "com.Apple.preference.security"
    tell application "System Events"
        tell process "System Preferences"
            tell first window
                tell first tab group
                    click radio button 1
                    click pop up button 1
                    click menu item 6 of menu of pop up button 1
                end tell
            end tell
        end tell
    end tell
    quit
end tell

以下は、AppleScriptでこの設定を変更する「公式」の方法です。

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

これには2つの大きな問題があります。

  • ブール値です(猶予期間は変更できません)
  • それは私には機能しません(私が持っていないチェックボックスの代わりになります)
3
Daniel Beck

defaultsコマンドに-currentHostオプションを使用してみてください。

defaults -currentHost read com.Apple.screensaver

defaults -currentHost write com.Apple.screensaver askForPasswordDelay -int 60

defaultsコマンドに加えて、/usr/libexec/PlistBuddyもあります。

/usr/libexec/PlistBuddy -h

for f in ~/Library/Preferences/ByHost/com.Apple.screensaver.*.plist; do
   /usr/libexec/PlistBuddy -c Print "$f"
done
2
jon

構成のバージョン番号を変更し、ロックファイルも削除する必要があります

defaults -currentHost write com.Apple.screensaver askForPasswordDelay -int 60
defaults -currentHost write com.Apple.screensaver PrefsVersion -int 101

rm ~/Library/Preferences/ByHost/com.Apple.screensaver.plist.lock

強制終了する正しいプロセスが見つかりませんでしたが、再起動後、遅延が発生しました。

1
Emil Haukeland

ロックファイルにより、これは以前よりもはるかに困難になります。私がこれまでに見つけた最も簡単な方法:

ドメインではなくplistファイルに対して変更を実行し、スーパーユーザーとして実行します。これにより、ファイルのアクセス許可が変更され、rootのみが読み取りと書き込みを行えるようになります。これは不良であり、修正する必要があります。修正するクイックchown + chmod。次回システム環境設定がplistを読み込もうとしたときに権限を修正しないと、失敗します。とにかく破損していると判断し、デフォルトのコピーに置き換えます。

したがって、コードは次のとおりです。

Sudo defaults write ~/Library/Preferences/com.Apple.screensaver.plist askForPasswordDelay -int 60

Sudo chown <username> ~/Library/Preferences/com.Apple.screensaver.plist

Sudo chmod 600 ~/Library/Preferences/com.Apple.screensaver.plist

これは、Lionのほとんどの設定ファイルに当てはまるようですが、すべてではありません。

1
wlarro

あなたの最善の策は、ファイルのplistエディターを使用して、具体的に調べることです...それはSnowLeopardからLionに変わる可能性が非常に高いです。

0
mbrownnyc