Mac OS Xで使って便利な「ログインフック」

海上忍
2010-12-08 19:31:20
  • このエントリーをはてなブックマークに追加

 Mac OS Xであまり知られていない機能のひとつに「ログインフック」がある。ログインフックとは、ユーザーがログインする都度シェルスクリプトを実行する機構のことで、工夫次第ではいろいろな活用方法が考えられる。

 リスト1は、カレントユーザー名と現在時刻をログファイル(/var/log/login_history.log)にリダイレクトする、というシンプルなシェルスクリプトだ。しかし、これがログイン時に自動実行されれば(rootとして実行される)、どのユーザーがいつログインしたか、ログファイルとして残すことができるという寸法だ。

#!/bin/sh

LOGIN_HISTORY=/var/log/login_history.log
DATE=`date +'%Y/%m/%d %H:%M:%S'`
echo "$1 : $DATE" >> $LOGIN_HISTORY

 シェルスクリプトをログインフックさせるには、以下の要領でログインウィンドウのデフォルトデータベース(com.apple.loginwindow)にエントリを作成する。キー名は「LoginHook」、与える引数はシェルスクリプトのフルパスだ。以下のコマンド実行例では、/usr/local/bin/HookMe.shとして保存したシェルスクリプトを、ログインフックに指定している。

$ chmod +x HookMe.sh
$ sudo cp HookMe.sh /usr/local/bin/
$ sudo defaults write com.apple.loginwindow LoginHook /usr/local/bin/HookMe.sh

 利用の際の注意点としては、シェルスクリプトなので当然ながら実行権限を与えることと、システム環境設定の「ログイン項目」とは異なりroot権限で実行されることが挙げられる。そのぶんセキュリティ上の危険もあるため、慎重に運用したいところだ。

  • 新着記事
  • 特集
  • ブログ
このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]