ことの経緯
普段の開発でちょいちょい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ファイルが作ったコピーと同じだったら成功。
なんで戻るの?
セキュリティなの?どうなの?
そして何かスマートなやり方あったら教えてください。