EI Capitanでsudo付けているOperation not permittedが出た時の対処法
概要
Mac OS X 10.11 EI Capitanで/usr/libexec/配下にファイルを移動しようとした時、 sudo付けてんのに「Operation not permitted」がでて焦った話と対処方法。
原因
- OS X 10.11 El Capitanから新しく追加されたセキュリティ機能(SIP:System Integrity Protection)「Rootless」のせい。
- rootユーザーであってもカーネルレベルでアクセス制限がかけられるので、sudoをつけても「/usr」「/sbin」「/System」配下に書き込み操作できない。
対処法
以下の手順でSIP(Rootless)を無効にすることで解決できる。 ※ SIPを無効にするコマンドはリカバーモードでないと実行できないので注意
1: Macを再起動し、[Command+R]を押してリカバリーモードで起動 2: 上部のメニューから[ユーティリティ]->[ターミナル]を選択し、ターミナルを起動 3: 以下のコマンドで現在の「SIP」の状態を確認
% csrutil status System Integrity Protection status: enabled.
4: 以下のコマンドで「SIP」を無効にし、再起動する
% csrutil disable Successufully disabled System Integrity Protection. Please restart the machine for the changes to take effect. % reboot
5: 通常通りログインし、以下のコマンドで現在の「SIP」の状態を確認
% csrutil status System Integrity Protection status: disabled.