macOSのターミナルにおいてコマンドによってはエラーが出て正常にコマンドの実行ができないことがある。

ここではmacOSのターミナルで「Operation not permitted」や「Error setting variable iokit/common not permitted」といった「Permission(アクセス権)エラー」が出た場合の対処法を紹介する。
INDEX
ターミナルにフルディスクアクセス権が付与されてるか確認
ターミナルでエラーが出たらまずはシステム環境設定から「セキュリティとプライバシー」を開いて「プライバシー」のタブを開こう。

左パネルから「フルディスクアクセス」を選択し、「ターミナル」が追加されており、なおかつチェックが付いているか確認しよう。
もしフルディスクアクセスの欄にターミナルが存在しない場合は「+」ボタンをクリックしてターミナルを追加してチェックを付ける。
チェックを付けたら改めてコマンドを実行してエラーが出るか確認しよう。
それでもエラーが出る場合は「アクセシビリティ」にもターミナルを追加しよう。
ターミナルでエラーが出るコマンド

例えターミナルにフルディスクアクセス権があっても主に下記のようなコマンドを実行する場合にエラーが出ることがある。
- NVRAMのVariable(変数)の値(Value)を書き込む・変更する・削除する
- -rmコマンドなどでシステム・キャッシュファイルを削除する
特にNVRAM関連は多くの場合コマンドが弾かれる。
ただしNVRAM関連であっても下記のようなコマンド(次回起動時にリカバリーモードで自動起動する)はエラーが出ずに正常に実行可能な場合もある(macOS Big Sur以外)。
sudo nvram "recovery-boot-mode=unused"
また、下記のようなNVRAMのリセットコマンドはエラーは出るもののNVRAMはリセットされるというよくわからない挙動を示す。
sudo nvram -c
個人的な印象では「どのコマンドでエラーが出るのか」という点について明確な線引きがされておらず、エラーは出てもコマンド自体は実行されるという場合もあるため、いまいち法則性が掴めない。
ちなみに「Command not found」というエラーが出た場合は文字通り「そのようなコマンドは存在しない」ということであり、タイプミスなどで正しくコマンドを入力できていない、もしくはそのmacOSのバージョンではコマンドが無効と考えられるのでコマンドのスペルやその有効性を確認しよう。
対処法
ターミナルのコマンドのエラーの法則性はいまいち掴めないが、いずれにしろターミナルにフルディスクアクセス権があるにも関わらず「Not permitted」とエラーが出た場合、十中八九macOSのシステム保護プロテクト「System Integrity Protection(SIP)」が原因である。
そのため下記の手順で一時的にSIPを無効にしよう。
Macを起動・または再起動してすぐにCommand+Rキーを押し続け(Apple Silicon Macの場合は電源ボタンを押し続けて「オプション」ボタンをクリック)、リカバリーモード(macOS復旧)に入る。

「日本語」をクリックして次へ。なお、言語選択画面は出ない場合もある

管理者ユーザーを選択して次へ。

メニューバーの「ユーティリティ」から「ターミナル」を起動し以下のコマンドを実行する。
csrutil disable


英文が出たらMacを通常再起動させる。
以上で通常のブート時においても「Not permitted」というエラーが出たコマンドが自由に実行可能になるはずだ。

なお、SIPを無効のままにしておくのはセキュリティ的にリスクがあるため、ターミナルでの作業が終わったら再度リカバリーモードを起動し、下記のコマンドでSIPを有効にしよう。
csrutil enable

ちなみにSIPを無効にしてもCommand+Option+P+Rの同時押しでNVRAMのリセットを実行するとSIPの設定がデフォルトに戻り、SIPが自動で有効化される(Apple Silicon Macの場合はNVRAMのリセットは不可)。
NVRAM設定のみSIPを無効にする方法
なお、NVRAM以外のコンポーネントはSIPで保護してNVRAMのみSIPを無効にするには下記記事を参照して頂きたい。

まとめ
以上、簡単ではあるがターミナルのコマンド実行時にエラーが出た場合の対処法を紹介した。
余談であるがNVRAM関連のターミナルコマンドを実行してMacが正常に起動しないなど予期しない事態が起こってもIntel MacであればCommand+Option+P+Rの同時押しで大抵の場合は正常に戻る。
管理人は実験でNVRAMに様々な変数値の書き込み・変更・削除を行い、Macが起動しなくなるなどの事態を何度も経験したがCommand+Option+P+Rの同時押しでいずれの場合も問題は解決している。
ただ、そうは言ってもNVRAM関連のコマンドはセンシティブであることに変わりはないので自己責任で行ってほしい。
また、NVRAMの変数一覧は以下のページで確認できる。