chmod シーエイチモッド

英語表記chmod

日本語表記権限モード変更

正式名称chmod

危険度注意

What does it mean?

ファイルやディレクトリのモードを変更します。数値表記と記号表記の両方を使い分けられることが重要です。

Command Quest

chmod を今日の道具にする

ファイルやディレクトリのモードを変更します。数値表記と記号表...

$ chmod [オプション]... モード ファイル... chmod [オプション]... 8進数モード ファイル... chmod [オプション]... --reference=参照ファイル 対象ファイル...
関連用語15
次のコマンド0
FAQ2
参照5

概要

ファイルやディレクトリのモードを変更します。数値表記と記号表記の両方を使い分けられることが重要です。

基本構文

chmod [オプション]... モード ファイル...
chmod [オプション]... 8進数モード ファイル...
chmod [オプション]... --reference=参照ファイル 対象ファイル...

詳細解説

chmodは、ファイルやディレクトリに設定されたアクセス権を変更するコマンドです。誰が読めるか、書けるか、実行できるかを制御し、Linuxの権限管理の土台を成します。

数値表記は一気に状態を決める時に向き、記号表記は既存権限へ追加や削除を行う時に向きます。試験でも実務でも両方を読めることが重要です。

ディレクトリに対する実行権は、中に入れる、名前解決できるという意味を持つため、通常ファイルの実行権とは解釈が異なります。

このコマンドを使う場面

スクリプトへ実行権を付ける時、公開ディレクトリの権限を整える時、秘密情報を所有者だけに読ませたい時に使います。

まず安全に試す方法

1. printf "echo hellon" > hello.sh
2. ls -l hello.sh
3. chmod u+x hello.sh
4. ls -l hello.sh
5. chmod 600 hello.sh

3分ミッション

少しでも手を動かすと定着しやすくなります。終わった項目にチェックを入れてください。

  1. chmod u+xで権限表記の変化を確認します。

  2. 644、600、755の違いを説明できるようにします。

資格試験との関連

  • LinuC レベル1
    範囲: 1.02.1 ファイルの所有者とパーミッション
    根拠: official
    LinuCレベル1では、所有者、グループ、パーミッション、生成時マスクの理解が重要です。
  • LPIC-1
    範囲: 104.5 Manage file permissions and ownership
    根拠: official
    LPIC-1では、所有者、グループ、モード、生成時マスクの理解が重要です。
  • 共通基礎
    範囲: Linuxコマンド基礎
    根拠: editorial
    試験横断で、chmodはLinux運用の基礎体力を支える重要なコマンドです。

オプション

  • -R
    配下へ再帰的に適用します。
    chmod -R 750 shared
  • --reference 参照ファイル
    参照ファイルと同じ権限へ合わせます。
    chmod --reference=base.txt target.txt
  • -v
    処理内容を表示します。
    chmod -v 644 file.txt
  • -c
    変更があった時だけ表示します。
    chmod -c 600 secret.txt

実行結果サンプル

  • printf "echo hellon" > hello.sh ls -l hello.sh chmod u+x hello.sh ls -l hello.sh
    -rw-r--r-- ... hello.sh
    -rwxr--r-- ... hello.sh
  • chmod 600 hello.sh ls -l hello.sh
    -rw------- ... hello.sh

戻り値コード

  • 0 正常終了。権限変更に成功しました。
  • >0 権限不足、対象不存在、不正なモード指定などで変更できませんでした。

使用例

  • chmod 644 config.ini
  • chmod u+x deploy.sh
  • chmod -R 750 appdir
  • chmod --reference=base.conf target.conf

よくあるエラー

  • Permission deniedになる
    原因: 実行権や親ディレクトリの通過権が不足しています。
    対処: 対象ファイルだけでなく配置ディレクトリも確認します。
  • 再帰変更後に動かなくなった
    原因: 広すぎる、または狭すぎる権限を一括適用しました。
    対処: 変更前後を比較し、対象を絞って再適用します。

導入・互換性情報

POSIXで基本機能は標準化されています。GNU実装では--referenceなどの拡張があります。シンボリックリンクの扱いは実装差が出やすい分野です。

注意点 / セキュリティリスク

危険度は中程度です。広すぎる権限は情報漏えい、狭すぎる権限は動作不良の原因になります。特に再帰変更は影響範囲が大きいため慎重に扱います。

FAQ

  • Q. 644と755は何が違いますか。
    A. 644は通常ファイル向け、755は実行ファイルや公開ディレクトリでよく使われます。
  • Q. ディレクトリのx権限は実行ですか。
    A. ディレクトリでは中へ入る、名前を解決するという意味になります。

関連用語

  • permission
  • owner
  • group
  • other
  • mode bits
  • read permission
  • write permission
  • execute permission
  • umask
  • setuid
  • setgid
  • sticky bit
  • authorization
  • 最小権限
  • hardening

参照リンク

関連記事