macOSのターミナルでコマンドを実行したとき、こんなエラーメッセージに出会ったことはありませんか?
Operation not permitted
一見「パーミッションの問題かな?」と思いますが、実はこれ、macOSのセキュリティ機能によってブロックされていることが原因の場合が多いんです。
今回は、「Operation not permitted」エラーの原因・発生タイミング・解決方法をわかりやすくご紹介します。
「Operation not permitted」が表示される主なケース

以下のような操作をターミナルで行うと、Operation not permitted
が発生することがあります:
/System
や/Library
配下のファイルを操作- 他ユーザーのディレクトリにアクセス
ps
、top
、ls
コマンドなどで特定の情報にアクセス- Time Machineバックアップへのアクセス
どれも日常的によく使う操作ですが、macOSがシステムを守るために制限をかけているんですね。
原因①:System Integrity Protection(SIP)
macOSのセキュリティ機能のひとつ、SIP(システム整合性保護)が原因でアクセスがブロックされている可能性があります。
SIPはmacOSにとって重要なシステム領域をroot権限でも書き換え不能にする機能です。
例:以下のようなコマンドがブロックされる
sudo rm -rf /System/somefile
# → Operation not permitted
システムを守るための仕組みなので、基本的には有効のままにしておきましょう。
原因②:フルディスクアクセスが無効
ターミナルで一部の操作(例:ls /Users/他のユーザー名
)をしようとしたときにブロックされることがあります。
この場合は、ターミナルに「フルディスクアクセス権」を付与することで解決できます。
この問題は比較的よく発生するので、解決方法を覚えておくと便利ですよ。
対処法:ターミナルにフルディスクアクセスを許可する

具体的な手順を見てみましょう。
手順
システム設定
を開く(または「システム環境設定」)プライバシーとセキュリティ
→フルディスクアクセス
を選択+ボタン
を押して「ターミナル.app」を追加- スイッチをオンにする
- ターミナルを再起動してから再試行
設定を変更した後は、必ずターミナルを再起動してくださいね。
それでも解決しない場合のチェックポイント
他にも確認しておきたいポイントがあります。
パスの誤りや存在しないファイル
Operation not permitted
ではなくNo such file
の可能性もあるため、まずは対象ファイルが存在しているか確認してみてください。
読み取り専用ボリュームへの書き込み
macOS Catalina以降、/System
は読み取り専用になっており、通常の手段では変更できません。
これらのポイントも一緒に確認すると、問題の原因がより明確になります。
まとめ
このエラーは単なる「権限不足」ではなく、macOSがシステムを保護するための制限であることがほとんどです。
焦らず、「SIPの影響か?」「フルディスクアクセスは付与されているか?」を確認することで、問題を解決できます。
今日のまとめ
- 「Operation not permitted」はSIPやアクセス制限が原因
- ターミナルにフルディスクアクセスを付与すると改善することが多い
- SIPはセキュリティ上重要な機能なので基本的には無効化しない
- 書き込み対象の場所が「保護領域」ではないか確認しよう
コメント