やりたかったこと
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エラーが出た時の対処法で所有者の設定も確認してほしい。
関連記事
- Linuxでpermission deniedエラーが出た時の対処法
- SSHキーを生成してGitHubに登録する方法
- LinuxのSSH接続の基本(VPSに接続する方法)
- VPSにDockerをインストールして本番環境を構築する方法
おすすめのVPS
VPSを使って本番環境を構築するなら、以下のサービスがおすすめです。