Tips
chmod 権限設定ガイド|755 / 644 / 777 の違いと正しい使い分け
2026-03-09
結論:迷ったらこの2つ
ファイル: 644 ディレクトリ: 755
Webサーバー上のファイルはほぼこの2つで足りる。777は絶対に使わない。
即決フロー
┌─────────────────────────────────────────┐
│ 何に chmod する? │
└─────────────────────────────────────────┘
↓
┌─────────────────────────────────────────┐
│ ディレクトリ? │
└─────────────────────────────────────────┘
↓ Yes ↓ No
┌──────────┐ ┌──────────────────────┐
│ 755 │ │ 実行ファイル? │
└──────────┘ └──────────────────────┘
↓ Yes ↓ No
┌──────┐ ┌──────┐
│ 755 │ │ 644 │
└──────┘ └──────┘
数字の意味
3桁の数字は 「所有者 / グループ / その他」 の権限を表す。
| 数字 | 権限 |
|---|---|
| 7 | rwx(読み + 書き + 実行) |
| 6 | rw-(読み + 書き) |
| 5 | r-x(読み + 実行) |
| 4 | r--(読みのみ) |
| 0 | ---(権限なし) |
計算方法
| 権限 | 値 |
|---|---|
| read(読み) | 4 |
| write(書き) | 2 |
| execute(実行) | 1 |
足し算すれば数字になる。
rwx = 4 + 2 + 1 = 7
rw- = 4 + 2 = 6
r-x = 4 + 1 = 5
r-- = 4 = 4
実務で使う組み合わせ
755(ディレクトリ・実行ファイル)
所有者: rwx(7)
グループ: r-x(5)
その他: r-x(5)
所有者は全権限、他は読みと実行のみ。
- ディレクトリ:中身の一覧・移動に実行権限が必要
- 実行ファイル:スクリプト、バイナリ
chmod 755 /var/www/html
chmod 755 deploy.sh
644(通常ファイル)
所有者: rw-(6)
グループ: r--(4)
その他: r--(4)
所有者は読み書き、他は読みのみ。
- HTML / CSS / JS / 画像
- PHPファイル(重要:644 でいい)
- 設定ファイル
chmod 644 index.html
chmod 644 style.css
chmod 644 wp-config.php
600(機密ファイル)
所有者: rw-(6)
グループ: ---(0)
その他: ---(0)
所有者以外は一切アクセス不可。
- SSH秘密鍵
- パスワードファイル
- APIキーを含む環境変数ファイル
chmod 600 ~/.ssh/id_rsa
chmod 600 .env
700(自分だけのディレクトリ)
所有者のみ全権限。他ユーザーは入れない。
chmod 700 ~/.ssh
777 を使ってはいけない
何が危険か
所有者: rwx(7)
グループ: rwx(7)
その他: rwx(7)
「その他」つまり世界中の誰でも、ファイルを書き換え・削除できる状態。
よくある事故
| ケース | 結果 |
|---|---|
| PHPファイルを777 | 外部から悪意あるコードを書き込まれる |
| uploadsディレクトリを777 | マルウェアをアップロードされる |
| wp-config.php を777 | データベース認証情報を書き換えられる |
「動かないから777」は最悪の解
エラーが出るからといって777にするのはセキュリティホールを開けているのと同じ。
正解: 所有者(ファイルを扱うユーザー)を Web サーバー実行ユーザー(www-data, apache, nginx 等)に合わせる。
# 所有者を変更
sudo chown -R www-data:www-data /var/www/html
# 権限は644/755のまま
find /var/www/html -type d -exec chmod 755 {} \;
find /var/www/html -type f -exec chmod 644 {} \;
WordPressの推奨パーミッション
| 対象 | パーミッション |
|---|---|
| ディレクトリ全般 | 755 |
| ファイル全般 | 644 |
| wp-config.php | 600 または 640 |
| wp-content/uploads | 755 |
| .htaccess | 644 |
wp-config.php だけ厳しくする理由
データベース認証情報が平文で入っている。他ユーザーから読めてはいけない。
chmod 600 wp-config.php
よくある間違い
1. 再帰的に全部同じ権限にする
# ✗ ファイルもディレクトリも755 → ファイルに実行権限がついて危険
chmod -R 755 /var/www/html
# ✓ 分けて指定
find /var/www/html -type d -exec chmod 755 {} \;
find /var/www/html -type f -exec chmod 644 {} \;
2. PHPファイルに755
# ✗ PHPに実行権限は不要(Webサーバーが解釈するため)
chmod 755 index.php
# ✓
chmod 644 index.php
3. 所有者を確認しない
権限が合っていても、所有者が間違っていれば動かない。
# 確認
ls -la
# -rw-r--r-- 1 root root 2048 Mar 9 10:00 index.html
# ↑
# 所有者が root → www-data から書き込めない
記号での指定
数字ではなく記号でも指定できる。特定の権限だけ追加・削除するときに便利。
# 所有者に実行権限を追加
chmod u+x script.sh
# グループから書き込み権限を削除
chmod g-w file.txt
# 全員から実行権限を削除
chmod a-x file.txt
| 記号 | 意味 |
|---|---|
| u | 所有者(user) |
| g | グループ(group) |
| o | その他(other) |
| a | 全員(all) |
| + | 追加 |
| - | 削除 |
| = | 設定 |
権限の確認
ls -la
drwxr-xr-x 2 user group 4096 Mar 9 10:00 public
-rw-r--r-- 1 user group 128 Mar 9 10:00 index.html
先頭の10文字が権限。
| 位置 | 意味 |
|---|---|
| 1文字目 | ファイル種別(d:ディレクトリ、-:ファイル、l:リンク) |
| 2-4文字目 | 所有者の権限 |
| 5-7文字目 | グループの権限 |
| 8-10文字目 | その他の権限 |
まとめ
| 対象 | 推奨値 |
|---|---|
| ディレクトリ | 755 |
| 通常ファイル | 644 |
| 実行ファイル | 755 |
| SSH秘密鍵 | 600 |
| .env | 600 |
| wp-config.php | 600 |
| 777 | 使わない |
迷ったら「ディレクトリ755、ファイル644」。 動かないときは権限ではなく「所有者」を疑う。
関連記事
- WordPress wp-config 設定ガイド — wp-configの安全な設定
- .env 管理ガイド — 環境変数ファイルの取り扱い
- WordPressバックアップガイド — 権限設定を含む運用対策