Linuxパーミッション完全ガイド
chmod / chown の使い方
Linuxのパーミッション(権限)は、ファイルやディレクトリに「誰が」「何をできるか」を設定する仕組みです。
この記事では、パーミッションの読み方からchmod/chownの使い方まで解説します。
こんな人向けの記事です
- ls -l の表示(rwxr-xr-x等)の意味を知りたい
- chmodでファイルの権限を変更したい
- chownで所有者を変更したい
Step 1パーミッションの見方
ターミナル
ls -l
-rwxr-xr-- 1 user group 1234 Jan 1 12:00 script.sh
パーミッションの読み方
- rwx r-x r--
| ||| ||| |||
| ||| ||| ||+-- その他: 実行 ×
| ||| ||| |+--- その他: 書込 ×
| ||| ||| +---- その他: 読取 ○
| ||| ||+------- グループ: 実行 ○
| ||| |+-------- グループ: 書込 ×
| ||| +--------- グループ: 読取 ○
| ||+------------ 所有者: 実行 ○
| |+------------- 所有者: 書込 ○
| +-------------- 所有者: 読取 ○
+----------------- ファイル種別(- = 通常, d = ディレクトリ)
| 記号 | 意味 | ファイル | ディレクトリ |
|---|---|---|---|
r | 読取(Read) | ファイルの内容を読める | 中身を一覧表示できる |
w | 書込(Write) | ファイルを編集できる | 中にファイルを作成/削除できる |
x | 実行(Execute) | プログラムとして実行できる | 中に移動(cd)できる |
Step 2数字表記(8進数)
| 数字 | 権限 | 記号 |
|---|---|---|
7 | 読取 + 書込 + 実行 | rwx |
6 | 読取 + 書込 | rw- |
5 | 読取 + 実行 | r-x |
4 | 読取のみ | r-- |
0 | 権限なし | --- |
例
755 = rwxr-xr-x → 所有者:全権限, グループ:読取+実行, 他:読取+実行
644 = rw-r--r-- → 所有者:読取+書込, グループ:読取, 他:読取
700 = rwx------ → 所有者のみ全権限
600 = rw------- → 所有者のみ読取+書込
Step 3chmodで権限を変更する
ターミナル
# 数字で指定
chmod 755 script.sh # rwxr-xr-x
chmod 644 config.txt # rw-r--r--
chmod 600 secret.key # rw-------
# 記号で指定
chmod u+x script.sh # 所有者に実行権限を追加
chmod g-w file.txt # グループから書込権限を削除
chmod o=r file.txt # その他を読取のみに設定
chmod a+r file.txt # 全員に読取権限を追加
# ディレクトリに再帰的に適用
chmod -R 755 my_dir/
| 記号 | 対象 |
|---|---|
u | 所有者(User) |
g | グループ(Group) |
o | その他(Others) |
a | 全員(All) |
+ | 権限を追加 |
- | 権限を削除 |
= | 権限を設定(上書き) |
Step 4chownで所有者を変更する
ターミナル
# 所有者を変更
sudo chown user file.txt
# 所有者とグループを変更
sudo chown user:group file.txt
# グループだけ変更
sudo chgrp group file.txt
# ディレクトリに再帰的に適用
sudo chown -R user:group my_dir/
Step 5よく使うパーミッション設定
| 対象 | パーミッション | 理由 |
|---|---|---|
| Webサイトのファイル | 644 | 所有者が編集可、他は読取のみ |
| Webサイトのディレクトリ | 755 | 所有者が編集・アクセス可、他はアクセス+読取 |
| シェルスクリプト | 755 | 実行権限が必要 |
| SSH秘密鍵 | 600 | 所有者のみ読取+書込(SSHが要求) |
| .sshディレクトリ | 700 | 所有者のみアクセス可 |
| authorized_keys | 600 | 所有者のみ読取+書込 |
| .env(設定ファイル) | 600 | パスワードを含むため所有者のみ |
まとめ
- パーミッションは所有者・グループ・その他の3つに対してr/w/xを設定
chmod 755のように数字3桁で指定するのが一般的chmod u+xのように記号でも変更可能chown user:groupで所有者・グループを変更- SSH鍵は
600、ディレクトリは755が基本