Laravel・PHP入門

PHPer初心者

【Linux】パーミッション設定についての基本

Permission Deniedよく引っかかりますよね。
詳しく紹介している記事はたくさんあるので
最低限ざっくりわかればと思います。

なんとなく使ってたchmod 777 〜ファイル名が今日解決したのでメモ。

パーミッションを確認する

ls -l ディレクトリ名

f:id:fresh_engineer:20180704233655p:plain

9個d、w、r、- などが並んでいますが、
これは1 + 3つずつに分解できます。

例えば

drwxr-xr-x の場合。

d / rwx / r-x / r-x

これに分けることができます。

初めのdはディレクトリかどうか。

その次は3つずつ、権限のことを示しています。
権限はざっくり3種類。

r 読み込み
w 書き込み
x 実行

順番はそのファイルやディレクトリの所有関係によります。
なので、10個並んでいた連番は下記のようなイメージですね。

ファイルの種類 / 所有ユーザの権限 / 所有グループの権限 / その他のユーザの権限

権限を付与する

そしてここまでわかればchmodで与えてあげるだけです。

例えば

chmod -R 777 ディレクトリ名

例えばこれはディレクトリ配下になんでもできる権限を与えています。

777は、先ほどの3種類のユーザの権限を
順番に指定しています。

rwx 4 + 2 + 1 = 7
rw- 4 + 2 + 0 = 6
r-x 4 + 0 + 1 = 5
r-- 4 + 0 + 0 = 4
-wx 0 + 2 + 1 = 3
-w- 0 + 2 + 0 = 2
--x 0 + 0 + 1 = 1
全てを許可しない 0 + 0 + 0 = 0

今日とてもスッキリしました!
ざっくり理解したい人はこれで使えると思います。

細かい内容はググってください

以上