2009年3月1日日曜日

Mac OS X のスリープモードの変更 (sudoers)

Mac OS X のスリープモードの変更には /usr/bin/pmset を使う。管理者権限が必要なので、GUI レイヤーから行おうとすると、若干の問題が生じる。そこで、スリープモードの変更に限って、管理者パスワードなしで行えるように設定する。

以下には、お使いの Macintosh を安全でない設定に変更する方法が書かれています。Mac OS X のスリープモードの違いを理解した上で、自己責任で設定を変更してください。

設定

sudo の設定ファイルである /etc/sudoers を編集する。sudoers に構文エラーがあると、sudo が実行できなくなるので、必ず以下に示すように visudo を使って編集する。visudo は編集終了後に構文検査を実行し、エラーがある場合は、更新するかどうか確認を求めてくる。

% sudo visudo

vi の操作については、ここでは解説しない。/etc/sudoers のファイルに、次の 1行を追加する。追加する場所は、サンプルの手前。

user ALL=NOPASSWD:/usr/bin/pmset -a hibernatemode ?

userには、スリープモードの変更を許可したいユーザ名を指定する。

この設定により、次のようにスリープモードの変更ができる。

% sudo pmset -a hibernatemode 0

スリープユーティリティ

スリープモードの変更が可能になったので、次のようなスクリプトがユーザモードで実行可能である。

スリープさせるスクリプト catnap は以下の通りである。

#!/bin/sh
/usr/bin/sudo /usr/bin/pmset -a hibernatemode 0
/usr/bin/pmset sleepnow

セーフスリープさせるスクリプト safesleep は以下の通りである。

#!/bin/sh
/usr/bin/sudo /usr/bin/pmset -a hibernatemode 3
/usr/bin/pmset sleepnow

ハイバネーションさせるスクリプト hibernate は以下の通りである。

#!/bin/sh
/usr/bin/sudo /usr/bin/pmset -a hibernatemode 1
/usr/bin/pmset sleepnow

後は、これらのスクリプトを GUI レイヤーから呼べるようにすればよい。その方法は様々であるが、清野はクラシカルなアップルメニューが好きなので、FruitMenu (US $12.00) を使用している。

FruitMenu の設定により、このようなアップルメニューが得られる。

0 件のコメント:

コメントを投稿