LoginSignup
9
10

More than 5 years have passed since last update.

Macでログインフックを使う

Posted at

ことの経緯

普段の開発でちょいちょいhostsファイルを編集することがあるのだが、いつの間にか変更した内容が電源を切ると以前の状態に戻ってしまっている現象が発覚。

おそらく会社様のセキュリティの設定なのじゃないか、どうなのか分からないけど、毎回hostsを変更するのは嫌だ。

嫌だ。毎回

sudo vi /etc/hosts

は嫌だ。

やったこと

ログインフックを使って、Macにログインするタイミングで別ファイルをコピーすることにした。

コピー元を用意

適当なディレクトリにhostsのコピーを用意する。

127.0.0.1 localhost
255.255.255.255 broadcasthost
::1             localhost 
fe80::1%lo0 localhost

127.0.0.1 some.example.com

スクリプトを用意

コピー元から、/etc/hostsにコピーを行うスクリプトを用意。

以下、ざっくり。

スクリプトとhostsコピーが同階層にある想定。

copy.sh
#!/bin/bash -
cd `dirname $0`
cp hosts /etc/hosts

作ったら実行権限をつける。

sudoをつけていないのは、LoginHookがroot権限で実行されるため。

ターミナルで以下コマンド

フックを登録する。

ターミナルを開いて以下。

作ったスクリプトのパスをフルパスで登録。

$ sudo defaults write com.apple.loginwindow LoginHook /path/to/copy.sh

電源きって試す

Mac様の電源を切って、再度パワーオン。

hostsファイルが作ったコピーと同じだったら成功。

なんで戻るの?

セキュリティなの?どうなの?

そして何かスマートなやり方あったら教えてください。

参考

Mac OS X: ログインフックを作成する

9
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
10