お使いのMacのターミナル上で「Permission denied」というメッセージが表示されましたか? 解決方法はこちらです

Unixコマンドに慣れている人なら、Terminalアプリはプロセスやタスクの実行に最適な方法だと思います。 正しいコマンドを入力すれば、基本的に意図する動作が得られるからです。 しかしたまに、「Premission denied(ファイルのアクセスエラー)」というメッセージが表示されることがあります。 この記事ではそれらを解決する方法を紹介していきます。

Terminal(ターミナル) アプリとは?

Terminal(ターミナル) は、コマンドラインインターフェイスからMacや実行中のプロセス、タスクをコントロールできるアプリです。 MacOSはUnixカーネルを使用しているため、通常のUnixコマンドを実行することが可能です。 MacOS Catalina までは、ターミナルのデフォルトシェルは bash でした。 しかし現在はzshになっています。 Bashのように厳密なユーザー許可を要求されることがないこともあり、作業によっては行いやすくなります。 どのシェルが Terminal で実行しているかを確認するには、ターミナルウィンドウの上部を見れば表示されています。

ターミナルを使用する理由は?

Mac ユーザーがターミナルを好んで使用する理由はたくさんあります。 Unixコマンドに慣れている人なら、ターミナルを使えば、プロセスやタスクを素早く実行できます。 ターミナルを使用するもう一つの主な理由は、システム環境設定に表示されないmacOSの隠れた部分にアクセスできることです。 サードパーティ製のアプリケーションでなければ変更できないような設定も、ターミナルを使えば変更できるようになります。 たとえば、スクリーンショットのデフォルトのファイルタイプをpngからjpgに変更したい場合は、ターミナルか外部アプリを使用するしか変更方法がありません。

「permission denied」が意味することとは?

このエラーメッセージが表示された場合、ターミナルがアクセスしたいファイルにアクセスできないため、実行しようとしているコマンドを完了できないという意味です。 また、エラーの名前が示すように、権限がないためファイルにアクセスできません。 これはいくつかの原因が考えられますが、大抵は以下の理由です。

  • ファイルを編集する権限を持っていない;
  • ファイルがロックされている;
  • 実行しようとしているコマンドの書き方が正しくない。

ターミナルで「Permission denied」が表示されるときの解決方法

それでは本題に入っていきましょう。 まずは簡単なものから始め、次に手作業による解決方法を紹介していきます。

ターミナル自身の問題を解決する簡単な方法

ターミナル自体に問題があるため、「Permission denied」エラーが表示されている可能性があります。 それを解決する一つの方法は、アプリをリセットすることです。 そのために便利なのは CleanMyMac Xというアプリを使用することです。 CleanMyMac Xには、空き容量を増やし、Macを最適化し、マルウェアから守ったり、今回の問題を解決するためのモジュールがいくつか入っています。 このアプリはAppleによって公式認証されています - アプリはこちらから無料でダウンロードすることができます。

  1. CleanMyMac Xを起動し、左サイドバーの「アンインストーラ」を選択します。
  2. 検索機能を使用してターミナルを検索します。
  3. ファイルサイズの横の矢印をクリックします。
  4. そこには環境設定、サポートファイル、ログなどが確認できます。
  5. アプリを選択して「リセット」を選択します。
  6. リセットボタンを押しましょう。
ヒント:

CleanMyMac X でデフォルトの Mac アプリケーションをリセットするには、CleanMyMac X 環境設定 に移動します。 ここで、「無視リスト」> 「アンインストーラ」 をクリックします。 「システムアプリケーションを無視する」の横のチェックボックスをオフにします。

ファイル許可を確認

ファイルの許可を確認するには、いくつかの方法があります。 FinderまたはTerminalで行うことができます。 以下、両方の方法を紹介します。

ターミナル

  1. ターミナルを起動して、次のコマンドを入力して、その後にスペースを開けましょう。: ls -l
  2. エラーメッセージが表示されたときに作業しようとしていたファイルまたはフォルダーをFinderで探し、「ターミナル」ウィンドウにドラッグします。
  3. リターンキーを押します。
  4. そこで、ユーザー名の前の文字列に「rwxr」という文字が表示されていれば、そのファイルの読み取り、書き込み、実行が可能であることを意味します。 例えば、'r'しか表示されない場合は、そのファイルがあなたにとって読み取り専用(read only) であることを意味します。

Finder

  1. Finderでファイルまたはフォルダーを見つけます。
  2. Command-Iキーを押して、「情報を見る」ウィンドウを開きます。
  3. ウィンドウの下部にある「共有とアクセス権」を確認します。 その下に何もない場合は、その横の矢印をクリックします。
  4. ユーザー名の横にあるアクセス権を見てください。 「読み取りと書き込み」と言うのが表示されているはずです。

ファイルの許可を変更する

先ほど確認したアクセス権でファイルに書き込むことができないと表示された場合、おそらくそれが「Permission denied」エラーの原因になっていると思われます。 Finderで修正するには、「情報を見る」のユーザー名の横にある欄をクリックし、「読み取りと書き込み」を選択しましょう。

ターミナル上で許可を変更するには、次のようにしましょう:

  1. 次のコマンドを入力します: chmod 755
  2. そのコマンドの後に、ファイルまたはフォルダをTerminalウィンドウにドラッグします。
  3. リターンキーを押します。
  4. ファイルまたはフォルダの許可が、読み取り、書き込み、および実行に変更されると思います。

ディレクトリの所有権を変更する

ファイルの許可を変更しても問題が解決しない場合は、ディレクトリの所有者をあなたのユーザー名に変更してみてください。 以下のコマンドでは、[username] をあなたのユーザー名に、[directorypath] を所有者を変更したいディレクトリへのパスに変更します。ファイルをターミナルにドラッグするだけでも可能です。

  1. 以下を入力しましょう: chown -R $[username]:[username] [directorypath]
  2. エンターキーを押します。

ターミナルの「Permission denied」エラーは、通常、作業するファイルまたはディレクトリの許可が原因で発生します。 通常、許可を変更するか、所有権を再割り当てすることで修正が可能です。 それでも解決しない倍は、CleanMyMac Xを使用してターミナルアプリをリセットし、コマンドを正しく入力していることを確認しましょう。

CleanMyMac X

あなたのMacを。新品同様に。