chmod 権限変換機
Linuxのパーミッション(読み取り・書き込み・実行)を数値(8進数)と記号間で相互に変換します。
例: 755, 644, 777
例: rwxr-xr-x
チェックボックス設定
u所有者 (Owner)
gグループ (Group)
oその他 (Other)
chmod 755 file.txt Linuxパーミッション(権限)の基礎知識
Webサーバー構築(Apache/Nginx)やWordPressのセキュリティ設定において、パーミッション(権限)の理解は重要です。設定を間違えると、「403 Forbidden」エラーで見れなくなったり、逆に「777」で誰でも書き込める危険な状態になったりします。
「rwx」と数字の計算方法
Linuxの権限は「読み取り(Read)」「書き込み(Write)」「実行(Execute)」の3つの組み合わせで決まります。それぞれに数字が割り当てられています。
- r (Read) = 4 :ファイルの中身を見る権限
- w (Write) = 2 :ファイルを書き換える・消す権限
- x (Execute) = 1 :プログラムとして実行する・ディレクトリに入る権限
これらを足し算して表現します。
例: 読み書きOK (4+2) = 6
例: 全部OK (4+2+1) = 7
よく使われるパーミッション一覧
実務で頻出する設定パターンです。当サイトのツールで確認しながら設定してください。
| 数値 | 記号 | 主な用途 |
|---|---|---|
| 755 | rwxr-xr-x | ディレクトリや実行ファイルの標準設定。所有者は何でもできて、他の人は見るだけ。 |
| 644 | rw-r--r-- | HTMLや画像などのファイルの標準設定。 |
| 600 | rw------- | SSH鍵や設定ファイルなど、自分以外に見られたくない重要ファイル。 |
| 777 | rwxrwxrwx | 危険! 誰でも書き込み・削除が可能。一時的なテスト以外では使用禁止。 |
chmodコマンドの使い方
ターミナル(黒い画面)で権限を変更する際は、chmodコマンドを使用します。
# ファイルの権限を644に変更
chmod 644 filename.txt
# ディレクトリ全体(中身含む)を755に変更
chmod -R 755 directory_name 数字がパッと出てこない時は、ぜひこのページをブックマークして計算機をご活用ください。
chown・chgrpコマンドとの組み合わせ
Linuxのファイル管理は「誰が持っているか(所有者)」と「どんな権限か(パーミッション)」をセットで考える必要があります。chmod で権限を変えても、所有者が間違っていると意味がありません。
# 所有者をwww-dataに変更(Webサーバー用途)
chown www-data:www-data /var/www/html/index.php
# ディレクトリ全体を一括変更
chown -R www-data:www-data /var/www/html/
# 権限と所有者をまとめて設定するワンライナー
chown www-data:www-data /var/www/html && chmod 755 /var/www/html Webサーバー(Apache / Nginx)での推奨パーミッション
「Webサーバーを構築したら403エラーが出た」「WordPressがファイルを書き込めない」という問題のほとんどは、パーミッションの設定ミスが原因です。
| 対象 | 推奨パーミッション | 理由 |
|---|---|---|
| Webコンテンツ(ディレクトリ) | 755 | Apache/Nginxが読み取り・移動できる最小権限 |
| Webコンテンツ(ファイル) | 644 | サーバーが読めて、他ユーザーが書き込めない |
| 設定ファイル(.env等) | 600 | 所有者のみ読み書き可。DB接続情報等を守る |
| SSH秘密鍵(id_rsa) | 600 | これ以外だとSSH接続時にエラーになる |
| WordPressのuploadsディレクトリ | 755 | Webサーバーがファイルを書き込む必要がある |
| wp-config.php | 400 または 440 | DB接続情報が入る最重要ファイル。読み取りのみ |
特殊なパーミッション:SUID / SGID / スティッキービット
通常の読み取り・書き込み・実行の他に、セキュリティ上重要な3つの特殊ビットがあります。
- SUID(Set User ID)= 4000
- そのファイルを実行すると、所有者の権限で実行される。
passwdコマンドが代表例(-rwsr-xr-x)。悪用されると権限昇格の原因になるため、不要なSUIDファイルは定期的に監査すること。 - SGID(Set Group ID)= 2000
- ディレクトリに設定すると、その中に作られたファイルが親ディレクトリと同じグループを引き継ぐ。チームでファイル共有をするディレクトリに使われる。
- スティッキービット(Sticky Bit)= 1000
- ディレクトリに設定すると、そのファイルの所有者以外は削除できなくなる。
/tmpディレクトリに設定されている(drwxrwxrwt)のが典型例。
🔍 セキュリティ監査:SUID/SGIDファイルの一覧確認
# SUIDが設定されたファイルを一括検索(要注意ファイルの確認)
find / -perm -4000 -type f 2>/dev/null
# SGIDが設定されたファイルを一括検索
find / -perm -2000 -type f 2>/dev/null Linuxのパーミッション(権限)とは
Linuxでは全てのファイル・ディレクトリに「誰が・何をできるか」を定義するパーミッション(権限)が設定されています。権限は3つの主体(オーナー / グループ / その他)それぞれに対して、読み取り・書き込み・実行の3種類が設定されます。
数値(8進数)と記号の対応
| 数値 | 記号 | 意味 |
|---|---|---|
| 7 | rwx | 読み取り・書き込み・実行 すべて許可 |
| 6 | rw- | 読み取り・書き込みのみ許可 |
| 5 | r-x | 読み取り・実行のみ許可 |
| 4 | r-- | 読み取りのみ許可 |
| 3 | -wx | 書き込み・実行のみ許可 |
| 2 | -w- | 書き込みのみ許可 |
| 1 | --x | 実行のみ許可 |
| 0 | --- | すべて拒否 |
よく使うパーミッションと用途
755rwxr-xr-x — シェルスクリプト・実行ファイルオーナーは全権限、グループ・その他は読み取りと実行のみ。Webサーバーのディレクトリやスクリプトの標準設定。
644rw-r--r-- — 設定ファイル・HTMLファイルオーナーは読み書き可、グループ・その他は読み取りのみ。.conf や .html ファイルの標準設定。
600rw------- — 秘密鍵・パスワードファイルオーナーのみ読み書き可。SSH秘密鍵(id_rsa)に必須の設定。他のユーザーが読めると SSH 接続を拒否される。
777rwxrwxrwx — 全員が全権限(危険)全ユーザーが読み書き実行可能。セキュリティリスクが高いため、本番環境での使用は避けること。