chmod・chown

にメンテナンス済み

Linux では、ファイルやディレクトリごとに「誰が読めるか」「誰が書き込めるか」「誰が実行できるか」が管理されています。 chmod は権限の変更、chown は所有者の変更に使います。

権限表示の見方

ls -l を実行すると、ファイルの権限を確認できます。

権限を確認
ls -l script.sh

実行結果の例です。

実行結果
-rw-r--r-- 1 user user 1200 Jun  4 10:00 script.sh

先頭の -rw-r--r-- が権限を表します。

  • 先頭の -: 通常ファイルを表す。ディレクトリの場合は d
  • rw-: 所有者の権限
  • r--: グループの権限
  • r--: その他ユーザーの権限

権限の文字には、次の意味があります。

  • r: 読み取り
  • w: 書き込み
  • x: 実行

chmodで権限を変更する

chmod は、ファイルやディレクトリの権限を変更します。 実行権限を追加する例です。

実行権限を追加
chmod +x script.sh

所有者だけが読み書きできるようにする場合は、数値表記を使って次のように指定できます。

所有者だけ読み書き可能
chmod 600 secret.txt

Web サーバーでよく見る 755 は、所有者が読み書き実行でき、グループとその他ユーザーは読み取りと実行ができる設定です。

755に変更
chmod 755 public-script.sh

数値表記の考え方

数値表記では、読み取りが 4、書き込みが 2、実行が 1 です。 これらを組み合わせて各権限を表します。

数値意味内訳
7読み書き実行4 + 2 + 1
6読み書き4 + 2
5読み取りと実行4 + 1
4読み取りのみ4
0権限なし

3 桁の数値は左から順に、所有者・グループ・その他ユーザーの権限を表します。

権限の対応
chmod 644 file.txt
       ││└── その他: 読み取りのみ (4)
       │└─── グループ: 読み取りのみ (4)
       └──── 所有者: 読み書き (6)

chmod 644 file.txt は、所有者が読み書きでき、グループとその他ユーザーは読み取りのみという意味です。

chownで所有者を変更する

chown は、ファイルやディレクトリの所有者を変更します。

所有者を変更
sudo chown appuser app.log

ユーザーとグループを同時に変更する場合は、ユーザー:グループ の形で指定します。

ユーザーとグループを変更
sudo chown appuser:appgroup app.log

ディレクトリ配下をまとめて変更する場合は、-R を使います。

再帰的に所有者を変更
sudo chown -R appuser:appgroup /var/www/example

-R は対象配下すべてに影響するため、実行前にパスが正しいか確認してください。 sudo-R を組み合わせる場合、入力ミスや余分なスペースによって想定外の範囲に所有者変更が及ぶことがあります。 実行前に ls -ld 対象パス で対象を確認してから実行してください。

まとめ

chmod は権限を変更し、chown は所有者を変更します。 どちらも便利ですが、サービスの起動可否やセキュリティに直結するため、ls -l で現在の状態を確認してから変更しましょう。

#Linux #Bash #chmod #chown #permission