Macのターミナルコマンドが無効になる場合の対処法

macOS Big Sur以降ではdefaults writeコマンドやcreateinstallmediaコマンドなどを実行する際に、ターミナルでコマンドを実行してもコマンドの効果が現れないことがあるため、他の記事の補足用として対処法を記しておく。

なお、ターミナルでパスワードの入力を求められたら管理者パスワードを入力する必要があるが、パスワードのタイプ中もターミナルには何の変化も現れないため、パスワードの入力間違えがないか、まずはチェックしよう。

ターミナルにフルディスクアクセス権を与える

一部のコマンドはターミナルにフルディスクアクセス権を付与しないと有効にならないため、下記手順でターミナルにフルディスクアクセス権を与えよう。

システム設定を開き「プライバシーとセキュリティ」をクリックし、「ターミナル」の項目をオンにする。

なお、もし一覧にターミナルが見当たらない場合は「+」ボタンをクリックしてターミナルを追加しよう。

「ターミナル」の項目をオンにしようとすると上記のようなダイアログが出るので、パスワードやTouch IDで認証する。

上記画像のように「ターミナル」の項目がオンになればOKだ。

あとは改めてターミナルコマンドを実行し、コマンドが有効になるか確認しよう。

フルディスクアクセス権を与えてもコマンドが有効にならない、またはエラーが返ってくる時

もしフルディスクアクセス権を与えてもコマンドが有効にならなかったり、エラーが返ってきた場合はXcodeのコマンドラインツールをインストールしよう。

Xcodeコマンドラインツールは下記コマンドでインストール可能だ(Xcodeのインストールは必要ない)。

xcode-select --install

なお、上記画像では既にインストール済みなので「already installed」と表示されている

Xcodeをインストールしてみる

前述の手順までを実行しても依然としてターミナルコマンドでエラーなどが返ってくる場合は、Mac App StoreからXcodeをダウンロードしてインストールしてみよう。Xcodeはインストールに時間はかかるものの、無料で利用可能だ。

まとめ

Big SurまでのmacOSではターミナルにフルディスクアクセス権などを与えなくても大抵のコマンドは有効だったのだが、近年のmacOSでは一部ターミナルコマンドはフルディスクアクセス権が求められるようになったようだ。

フルディスクアクセス権がなくても一見するとコマンドが正常に実行されたように見えるため、「ターミナルでコマンドを実行したのに効果が現れない」という場合には、一度システム設定からターミナルにフルディスクアクセス権が与えられているか確認しよう。