ファイル操作

Linuxパーミッション完全ガイド|chmod / chown の使い方

Linux パーミッション chmod

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_keys600所有者のみ読取+書込
.env(設定ファイル)600パスワードを含むため所有者のみ

まとめ

  • パーミッションは所有者・グループ・その他の3つに対してr/w/xを設定
  • chmod 755 のように数字3桁で指定するのが一般的
  • chmod u+x のように記号でも変更可能
  • chown user:group で所有者・グループを変更
  • SSH鍵は600、ディレクトリは755が基本