ホーム > ファイル・ディレクトリ管理 > chmod

chmod: ファイルとディレクトリのパーミッションを変更

chmodコマンドは、ファイルやディレクトリのアクセス権(読み取り、書き込み、実行)を変更するために使用されます。特に `-R` (recursive) オプションを使用すると、指定したディレクトリとその配下のすべてのファイルおよびサブディレクトリに対して権限を一括で変更できるため、大規模な権限設定作業に非常に役立ちます。

概要

chmodは、ファイルシステムオブジェクトに対するユーザー、グループ、その他のユーザーの読み取り(r)、書き込み(w)、実行(x)権限を設定します。`-R` オプションは、この権限変更作業を指定されたパスのすべてのサブ項目に再帰的に適用し、複雑なディレクトリ構造の権限を効率的に管理できるようにします。

主な機能

  • ファイルおよびディレクトリのアクセス権変更
  • 数値(8進数)モードおよびシンボリックモードのサポート
  • 再帰的な権限変更(`-R` オプション)
  • セキュリティおよびシステム管理のコアツール

主なオプション

chmodコマンドは、さまざまなオプションを通じて権限変更方法を制御します。特に `-R` オプションは、サブ項目への一括適用に不可欠です。

再帰オプション

権限モード(引数)

その他のオプション

生成されたコマンド:

コマンドを組み合わせてみてください。

説明:

`chmod` コマンドを実行します。

これらのオプションを組み合わせて、AIと一緒に仮想的にコマンドを実行してみてください。

使用例

chmod -Rは、ディレクトリ構造全体の権限を効率的に管理する場合に主に使用されます。

ディレクトリと配下のファイルに755権限を適用

chmod -R 755 /var/www/html

Webサーバーのドキュメントルートのように、所有者にすべての権限を与え、グループと他のユーザーには読み取りと実行権限のみを付与する場合に使用します。

ディレクトリと配下のファイルに所有者のみ書き込み権限を追加

chmod -R u+w /home/user/data

既存の権限を維持したまま、所有者のみに書き込み権限を追加します。

ディレクトリには実行権限、ファイルには読み取り権限のみを再帰的に付与

chmod -R a+rX /srv/app/public

大文字の 'X' は、ディレクトリには実行権限を付与し、ファイルには既に実行権限がある場合にのみ実行権限を付与します。これは、Webコンテンツなどでディレクトリの参照は許可しつつ、不要なファイルの実行は防ぐ場合に役立ちます。

すべての配下のファイルおよびディレクトリからグループとその他の書き込み権限を削除

chmod -R go-w /path/to/sensitive_data

機密データが含まれるディレクトリから、グループおよび他のユーザーの書き込み権限を削除してセキュリティを強化します。

ヒントと注意点

chmod -Rの使用時には、システムセキュリティと安定性に影響を与える可能性があるため、細心の注意が必要です。

注意点

  • **慎重な使用**: `-R` オプションは広範囲に適用されるため、誤った権限設定はシステムのセキュリティ脆弱性やサービス障害を引き起こす可能性があります。常に変更前にバックアップまたはテスト環境で確認することをお勧めします。
  • **'X' 権限の活用**: `chmod -R a+rX /path` のように大文字の `X` を使用すると、ディレクトリには実行権限を付与し、通常のファイルには実行権限が既に存在する場合にのみ実行権限を付与します。これは、Webサーバーのコンテンツなどでディレクトリの参照は許可しつつ、不要なファイルの実行を防ぐ場合に役立ちます。
  • **`find` コマンドとの組み合わせ**: 特定の条件(例: 特定の拡張子のファイルのみ)に一致するファイルにのみ権限を変更したい場合は、`find` コマンドと `exec` オプションを組み合わせる方が安全で効果的です。例: `find /path -type f -name '*.sh' -exec chmod 700 {} \;`
  • **最小権限の原則**: 必要な最小限の権限のみを付与する「最小権限の原則」に従ってください。例えば、`777` のようなすべての権限付与はセキュリティ上非常に危険です。

権限モードの要約

各権限が意味することと、8進数の値です。

  • 読み取り (r): ファイル内容の読み取り、ディレクトリ内容のリスト表示(8進数値: 4)
  • 書き込み (w): ファイル内容の変更、ディレクトリ内でのファイル作成/削除(8進数値: 2)
  • 実行 (x): ファイルの実行、ディレクトリへのアクセス(8進数値: 1)

同じカテゴリのコマンド