やりたかったこと

Linuxのファイルパーミッションを理解して正しく設定したかった。

パーミッションとは

ファイル・フォルダに対して「誰が何をできるか」を定義する設定。

-rwxr-xr-x
文字意味
r読み取り(4)
w書き込み(2)
x実行(1)
-権限なし(0)

chmodでパーミッションを変更

数値で指定

chmod 755 ファイル名    # rwxr-xr-x
chmod 644 ファイル名    # rw-r--r--
chmod 600 ファイル名    # rw-------
chmod 777 ファイル名    # rwxrwxrwx(全員フルアクセス・危険)

よく使う設定

755 → Webサーバーのディレクトリ
644 → 通常のファイル
600 → SSHキー・設定ファイル
755 → 実行可能なスクリプト

シンボルで指定

chmod +x script.sh      # 実行権限を追加
chmod -x script.sh      # 実行権限を削除
chmod u+w file.txt      # 所有者に書き込み権限を追加
chmod o-r file.txt      # その他から読み取り権限を削除

chownで所有者を変更

chown ユーザー名 ファイル名
chown ユーザー名:グループ名 ファイル名
chown -R ユーザー名 フォルダ名   # 再帰的に変更

ハマったポイント

  • SSHキーは必ず chmod 600 にする(600でないと接続拒否される)
  • Webサーバーのファイルは777にしない(セキュリティリスク)
  • chmod -R で再帰的に変更する時は慎重に

パーミッション設定後もアクセスできない場合はLinuxでpermission deniedエラーが出た時の対処法で所有者の設定も確認してほしい。

関連記事

おすすめのVPS

VPSを使って本番環境を構築するなら、以下のサービスがおすすめです。