インフラ作業支援ラボInfra Support Lab ← 作業ガイド← 戻る

Linuxファイル権限の見方とchmodの安全な設定方法

このページの目的:chmodする前に、必要な権限とアクセス可否を判断し、過剰な権限付与を防ぐ

このページで分かること

  • r・w・xと数値の対応
  • 644と755の違い
  • ファイルとディレクトリでのxの意味
  • Permission denied発生時の案内

先に結論

権限は一律に644や755へ揃えるのではなく、ファイルの用途と実行ユーザーに合わせて必要最小限にします。変更前後は namei -lgetfacl、所有者・親ディレクトリまで確認します。

Linux権限をすぐ確認する

パーミッション、所有者、親ディレクトリを入力して、操作可否や危険な権限を確認できます。

Linux権限確認ツールを使う

Linux権限の基本

ls -lの先頭10文字は、ファイル種別と所有者・グループ・その他の権限を表します。

-rwxr-xr-- 1 user group 1234 Aug 6 08:00 sample.sh
記号数値ファイルディレクトリ
r4内容を読める一覧を読める
w2内容を変更できる配下の作成・削除ができる
x1実行できる中へ移動・参照できる

644と755の違い

設定所有者グループその他主な用途
644読み書き読み取り読み取り通常のファイル、公開設定
755読み書き・実行読み取り・実行読み取り・実行ディレクトリ、公開スクリプト
600読み書きなしなしSSH秘密鍵、機密ファイル
700すべてなしなし個人用ディレクトリ、秘密スクリプト
注意: ファイルへ安易に777を設定しても、所有者・ACL・SELinux・親ディレクトリが原因なら解決しません。書き込み範囲だけが広がり、事故や改ざんのリスクが増えます。

安全な変更手順

1. 現在の状態を確認

ls -l /path/to/file stat /path/to/file

2. 親ディレクトリも確認

namei -l /path/to/file

3. 所有者とグループを確認

id ls -ld /path /path/to /path/to/file

4. ACLとSELinuxを確認

getfacl /path/to/file ls -Z /path/to/file getenforce

よくある設定例

chmod 644 app.conf chmod 755 deploy.sh chmod 600 ~/.ssh/id_ed25519 chmod 700 ~/.ssh

変更後は、対象ユーザーで実際に読み取り・書き込み・実行できるか確認します。

問題発生時の案内

この作業ガイドは、chmodする前に必要最小限の権限を判断するためのページです。すでにアクセス拒否が起きている場合は、rwxだけでなく、実行ユーザー、親ディレクトリ、ACL、SELinux、マウント状態まで切り分けます。

Permission deniedが発生している場合: LinuxでPermission deniedになる原因と確認手順で、「誰が・何の操作を・パスのどこで拒否されたか」から確認してください。

自分の権限設定を確認

用途別の危険判定、アクセス可否、確認コマンドをまとめて表示します。

Linux権限確認ツールを開く