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

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

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

このページで分かること

  • r・w・xと数値の対応
  • rwxと数値表記の読み方(644・755などの詳細は専用早見表へ)
  • chmodとchownの役割の違い、所有者・グループの変更方法
  • umaskと新規ファイル・ディレクトリの初期権限
  • 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内容を変更できるディレクトリエントリを変更できる(作成・削除には通常xも必要)
x1実行できる中へ移動・参照できる

代表的な権限と選び方

数値は「所有者・グループ・その他」の順に、r=4w=2x=1を足して表します。まず用途から必要な操作だけを決めます。

代表例意味判断の目安
644所有者だけ書き込み、他は読み取り実行しない一般ファイルの代表例
755所有者は書き込み可、他も実行・通過可公開ディレクトリや実行物で使うことがある
600 / 700所有者だけに限定機密ファイルや個人用ディレクトリなど
644・755・600・700を詳しく比較:数値ごとのrwx、ファイルとディレクトリでの違い、よくある用途は chmod 644・755・600・700の違い に分けています。
注意: 777 を設定しても、所有者・ACL・SELinux・親ディレクトリが原因なら解決しません。必要以上の書き込み権限だけが増える可能性があります。

chmodとchown・chgrpの違い

chmodは「所有者・グループ・その他に何を許可するか」を変え、chownはファイルやディレクトリの所有者・所有グループを変えます。権限値が正しく見えても、サービスの実行ユーザーと所有者が合っていなければアクセスできないため、先に現在の所有者を確認します。

ls -l /path/to/file stat -c '%A %a %U:%G %n' /path/to/file
やりたいこと代表コマンド注意点
所有者だけ変更chown appuser file変更後にサービス実行ユーザーと一致するか確認
所有者とグループを変更chown appuser:appgroup file共有運用ではグループ設計も確認
グループだけ変更chgrp appgroup file対象ユーザーがそのグループに所属しているか id で確認
再帰変更は慎重に:chown -Rchmod -Rは配下すべてを変更します。設定ファイル・秘密鍵・実行ファイルなど用途の異なるファイルを一括変更しないよう、対象一覧を確認してから実行してください。

umaskと新規ファイル・ディレクトリの初期権限

umaskは、新しく作成されるファイルやディレクトリから「付与しない権限」を決める設定です。既存ファイルの権限を直接変更するchmodとは役割が異なります。

umask umask 0022
作成対象基準umask 022の一般例
通常ファイル666を基準644rw-r--r--
ディレクトリ777を基準755rwxr-xr-x

「666 - 022」のような引き算は覚え方として使われますが、厳密にはビット単位でマスクされます。特に特殊なumask値では単純な十進数の引き算として考えず、実際に作成したファイルをstatで確認します。

確認ポイント:アプリやsystemdサービスが作るファイルでは、シェルで確認したumaskとプロセス側の設定が異なることがあります。変更前に「誰が作成しているか」と作成後の実効権限を確認してください。

安全な変更手順

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

変更前後に確認すること

値を決めたら、対象だけでなく実行ユーザー・親ディレクトリ・変更後の実効アクセスを確認します。

stat -c '%A %a %U:%G %n' /path/to/target namei -l /path/to/target id

変更後は対象ユーザーで test -rtest -wtest -x を使い、必要な操作だけが許可されているか確認します。

問題発生時の案内

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

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

自分の権限設定を確認

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

Linux権限確認ツールを開く