Linuxの権限管理(chmod/chown)を3分で理解する

インフラ・クラウド

Linuxサーバーを扱う上で避けて通れないのが「権限管理」です。chmodとchownの2つを正しく理解すれば、ほとんどの権限トラブルを自分で解決できます。本記事では、Linuxの権限の基本と、chmod/chownの使い方を3分で理解できるよう整理します。

権限の基本(rwx)

Linuxファイルには3種類の対象(所有者・グループ・その他)に対して、3つの権限(読・書・実行)が設定できます。ls -lで表示される-rwxr-xr--がそれです。

$ ls -l
-rwxr-xr-- 1 alice dev 1024 May 11 10:00 app.sh
# ┬─┬─┬─┬─
# │ │ │ └ その他:r--(読のみ)
# │ │ └── グループ:r-x(読・実行)
# │ └──── 所有者:rwx(読・書・実行)
# └────── ファイル種別(-=ファイル、d=ディレクトリ、l=リンク)

chmodで権限を変える

数値モード

r=4, w=2, x=1 を足した3桁の数値で表現します。よく使う組み合わせ:

  • 755:所有者=rwx、グループ=rx、その他=rx(実行ファイル・ディレクトリ)
  • 644:所有者=rw、グループ=r、その他=r(通常ファイル)
  • 700:所有者のみrwx(機密ファイル)
  • 600:所有者のみrw(鍵ファイル等)
chmod 755 app.sh
chmod 644 config.yml
chmod 600 ~/.ssh/id_rsa

記号モード

chmod u+x script.sh    # 所有者に実行権限を追加
chmod g-w file         # グループから書き込み権限を削除
chmod o=r file         # その他は読みのみに
chmod a+r file         # 全員に読み権限

再帰指定

# ディレクトリ配下に再帰的に適用(注意して使う)
chmod -R 755 /var/www/html

chownで所有者を変える

chown alice file              # 所有者をaliceに
chown alice:dev file          # 所有者alice・グループdev
chown :dev file               # グループのみ変更
chown -R www-data:www-data /var/www  # 再帰指定

特殊権限

  • setuid(4xxx):実行時に所有者の権限で動作
  • setgid(2xxx):実行時にグループの権限で動作
  • sticky bit(1xxx):ディレクトリ内の削除を所有者のみに制限(/tmpなど)

よくあるトラブル

  • Webサーバから書き込みできない → ディレクトリの所有者を www-data に
  • SSH鍵が認識されない → chmod 600 ~/.ssh/id_rsa 必須
  • cronがファイルを読めない → 実行ユーザーの権限を確認

まとめ

権限管理は「誰が・何のファイルに・何ができるか」を明示する仕組みです。chmodで権限、chownで所有者を変えるという基本さえ押さえれば、サーバー運用の権限トラブルは自分で解決できるようになります。