CreaTools LogoCreaTools
Tips

chmod 権限設定ガイド|755 / 644 / 777 の違いと正しい使い分け

2026-03-09

結論:迷ったらこの2つ

ファイル: 644 ディレクトリ: 755

Webサーバー上のファイルはほぼこの2つで足りる。777は絶対に使わない。


即決フロー

┌─────────────────────────────────────────┐
│ 何に chmod する?                         │
└─────────────────────────────────────────┘
        ↓
┌─────────────────────────────────────────┐
│ ディレクトリ?                            │
└─────────────────────────────────────────┘
        ↓ Yes           ↓ No
  ┌──────────┐    ┌──────────────────────┐
  │   755    │    │ 実行ファイル?         │
  └──────────┘    └──────────────────────┘
                    ↓ Yes       ↓ No
                  ┌──────┐  ┌──────┐
                  │ 755  │  │ 644  │
                  └──────┘  └──────┘

数字の意味

3桁の数字は 「所有者 / グループ / その他」 の権限を表す。

数字権限
7rwx(読み + 書き + 実行)
6rw-(読み + 書き)
5r-x(読み + 実行)
4r--(読みのみ)
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.php600 または 640
wp-content/uploads755
.htaccess644

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
.env600
wp-config.php600
777使わない

迷ったら「ディレクトリ755、ファイル644」。 動かないときは権限ではなく「所有者」を疑う。


関連記事