パーミッションでよくあるエラー(Linux)
Linuxでは、「permission denied」というエラーをよく見ることが多いです。
これは、ファイル・ディレクトリ単位でユーザならびにグループ単位の権限が適切ではない事が原因です(> <)
パーミッションとは?
日本語でいうと「許可」や「認可」と意味です。
では何に対しての許可になるのでしょうか?
それは、サーバ内のファイルやディレクトリ、データベース(DB)に対する様々な操作に対してセキュリティーを強化する目的で必要となります。
例えば、よくみる権限エラーは、サーバ内の特定のディレクトリ(フォルダ)にあるファイルに文字を書き込みや削除をしようと思った際に「permission denied」といったエラーが出たりって感じです。
権限設定のユーザー
まず、パーミッションで指定できるユーザーは以下の3種類あります。
ユーザー | 説明 |
---|---|
ユーザー(Users) | ファイル/ディレクトリの所有者である |
グループ(Groups) | 所有者と同じグループに属するすべてのユーザー |
それ以外(Others) | その他すべてのユーザー |
その3種類のユーザーに対して、「読み込み」「書き込み」「実行」の権限を与えるかどうかを設定ができます。
権限確認方法
確認したいディレクトリに以下のコマンドを打ってみて下さい。
$ ls -l
そうするとそのディレクトリにあるファイルに以下のように表示されるかと思います。
-rw-r--r-- 1 user user32 Dec 22 02:38 hello.txt
これはhello.txtというファイルに対して、「-rw-r–r– 1 user user」という権限が振られているかを確認できます。
この意味は以下のよくあるでパーミッション一覧で確認してみましょう!
よくあるパーミッション一覧 | 意味 |
---|---|
644 rw-r–r– | 所有者は読み込み、書き込みができるが、グループや他のユーザーは読み込みしかできない。 |
666 rw-rw-rw- | 所有者もグループも他のユーザーも、読み込みと書き込みができる。 |
755 rwxr-xr-x | どのユーザーでも読込みと実行はできるが、書き込みは所有者だけ。 |
777 rwxrwxrwx | どのユーザーでも書き込み、読込み、実行が可能。セキュリティ上の観点だと危険。 |
今回の例でいうと、「所有者は読み込み、書き込みができるが、グループや他のユーザーは読み込みしかできない。」という権限でした。
権限変更
パーミッションを設定するには「chmod」コマンドを使用します。
$ chmod アクセス権限 ファイル名
これを先ほどのhello.txtに対して実行するとすると以下のようになります。
$ chmod 777 hello.txt
これで、「どのユーザーでも書き込み、読込み、実行が可能。」に変更できました。
まとめ
ファイルやDBや様々な場面で権限の確認を行う事が必要だったりします。
権限エラーを甘くみてはいけないというところです。
それでは今日はここまで。