OS X El Capitanから導入されたrootlessにより/private/etc/hostsが編集できなくなりました。
UNIXなら/etc/hosts とかしょっちゅう編集したいでしょ! OS X El Capitanから導入されたrootless はルートがない。を意味します。
回避方法(下記いずれか)
- リカバリモードで再起動し、 vi コマンドで直接編集する
- nvramコマンドでrootless を無効化する。
- アプリケーション 「gasmask」 を導入する
必要なシチュエーションによりますが、もし再起動ができるタイミングであればパパっとリカバリモードから vi で編集するのが一番手っ取り早いでしょう。
vi で編集する手順
OSXを再起動
コマンドボタン+R を押し続ける。
リンゴマークが点灯すると離す。
リカバリモードで起動後にツールよりターミナルを起動。
コマンド (プロンプトが#:ルートユーザであることを確認)
# df -h
※注意 リカバリモードではテンポラリ領域のOSで起動しているため本来編集したい /pravate/etc/hosts はマウントされた別の領域として見えています。df コマンドでマウントされた/pravate/etc/hostsの領域へチェンジディレクトリします。
cd /Volume /MAC OS (例)
スペースを正しく入力するのが面倒なので実際は
cd /Volume/MAC* アスタリスク*を使って正規表現してあげると楽ですね。
viコマンドの使い方については省略です。ただUNIXのbashと違いd100 のように対象行から100行削除がうまく消えませんでした。こちらはMACの仕様でしょうか。
上書き保存したのちに再起動です。
#reboot でもOKです。
nvramコマンドでrootless をキャンセル化する手順
ターミナルを起動し
sudo nvram boot-args=“rootless=0”
再起動してsudo vi /private/etc/hosts をしてあげます。
楽ちん! ですが、セキュリティ上は好ましくないので作業後はrootless=1をお忘れなく。
hosts編集アプリgasmaskを使う方法。
とくに説明が不要なくらい簡単です。 アプリが増えるのが嫌いじゃない方にはお勧めです。
今回使わなかったので詳細はまた。
以上、テキスト補充代わりの記載でしたー。
