chmod 755 の「755」って何?——最初に必ずつまずくパーミッションを、腑に落ちるまで解説します。
3つの対象 × 3つの権限
Linuxのファイル権限は、誰が×何をできるかで決まります。
- 誰が: 所有者(u) / グループ(g) / その他(o)
- 何を: 読み(r) / 書き(w) / 実行(x)
ls -l で見えるこの表示、
-rwxr-xr-x 1 user group ... script.sh
は左から、所有者=rwx、グループ=r-x、その他=r-x、という意味です。
rwx を数字にする
権限は数字でも表せます。
- r(読み)= 4
- w(書き)= 2
- x(実行)= 1
これを足すだけです。
- rwx = 4+2+1 = 7
- r-x = 4+0+1 = 5
- rw- = 4+2+0 = 6
- r-- = 4 = 4
だから 755 と 644
- 755 = rwx(7) r-x(5) r-x(5) → 所有者は全部、他は読み+実行。スクリプトやディレクトリ向け。
- 644 = rw-(6) r--(4) r--(4) → 所有者は読み書き、他は読みだけ。設定ファイルやHTML向け。
この2つは頻出なので丸暗記でOKです。
ディレクトリの x は「入る権限」
ファイルの x は「実行」ですが、ディレクトリの x は「そのディレクトリに入る(中を辿る)」権限を意味します。ディレクトリが 644(xなし)だと、中に入れず一覧も辿れません。だからディレクトリは基本 755 にします。
変更コマンド
chmod 755 script.sh … 数字で指定
chmod +x script.sh … 実行権限だけ追加
chown user:group file … 所有者・グループ変更
トラブルの定番
- Webで403 → 公開ディレクトリの権限不足(辿れない/読めない)
- スクリプトが
Permission denied→ 実行権限(x)がない - SSH鍵が効かない →
.sshの権限が緩すぎる
権限は「セキュリティ」と「動かない原因」の両方に絡む超重要トピックです。4=r, 2=w, 1=x を足すだけ、と分かれば怖くありません。