いつかエンジニアになりたい

Nothing is too late to start

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.

参考記事

www.starlod.net