Permission deniedを解決する。エラーの見方も紹介します

"permission denied" は、ユーザーが特定の操作を実行する権限がないことを示します。

簡単説明しますと、『何か』をしようとしてディレクトリ(フォルダのこと)をいじろうとした結果、そのディレクトリにはアクセス権がないために出るエラーです。

解決方法は簡単で、sudoコマンドを実行しようとしたコマンドに付け加える。

だけです。

例えば、今回、xxxxxxxxxxxxxxxというコマンドで失敗したとすれば、

sudo xxxxxxxxxxxxxxx と、実行し直すだけです。

sudoコマンドは一時的にユーザーに管理者権限を与えることができます。

sudoコマンド実行時は管理者権限を求められるので、パスワードを入力します。

(なお、セキュリティ上の理由からパスワードを入力する際に、実際に入力した文字が画面に表示されないようになっています。これは、他の人にパスワードを見られることを防ぐためです。)

今回はこれで大抵は解決するので、終わってしまうのですが、

せっかくなので、再び同じようにエラーに遭遇した場合の対処方法を少しお伝えします。

たいていエラーにはLinuxが教えてくれる共通の単語が含まれます。

下記は今回、自分が遭遇したときのエラー画面です。

画像の『EACCES』に注目しましょう。

EACCESは、"Error Access" の略語で、アクセス権限エラーを意味します。

これはUNIXやLinuxなどのオペレーティングシステムエラーコードで、ほかにもたくさんあります。

冒頭で説明したとおり、現在のユーザーが実行しようとしている操作に必要な権限がない場合に発生します。

また、エラーナンバーでも管理されていて、EACCESはNo.13のエラーとなっています。

ですので、画像に『13』の表記がありますね。

エラーの種類は130個ぐらいあるのですが、1から20までを掲載します。

13番目の欄を見ると、EACCESがあります!

エラー番号エラーコードエラー説明
1EPERM操作は許可されていません
2ENOENTファイルまたはディレクトリが存在しません
3ESRCHプロセスが存在しません
4EINTRシステムコールが中断されました
5EIOI/Oエラー
6ENXIOデバイスまたはアドレスが存在しません
7E2BIG引数リストが長すぎます
8ENOEXEC実行フォーマットエラー
9EBADF不正なファイル番号
10ECHILD子プロセスがありません
11EAGAINもう一度お試しください
12ENOMEMメモリ不足
13EACCES権限がありません
14EFAULT不正なアドレス
15ENOTBLKブロックデバイスが必要です
16EBUSYデバイスまたはリソースが使用中です
17EEXISTファイルが存在します
18EXDEVデバイス間のリンクです
19ENODEVデバイスが存在しません
20ENOTDIRディレクトリではありません

どのような状況でも、このエラーナンバーとエラーコードで、何が起こったのかがわかります。

それを踏まえて、エラーの内容を読みますとより具体的にエラーの原因が見えてきます。

いかがでしたでしょうか。

今まで読み飛ばしていたエラーや、無意識に検索していた内容も、エラーの一覧があり、管理されていると思うと逆に少し安心しますね。