Linuxコマンド · 1 min read · Sep 15, 2025
初心者のためのLinux chattrコマンドチュートリアル(5つの例)

chattrコマンドは、Linuxにおいてファイルシステム上のファイル属性を変更するためのユーティリティです。このコマンドは、通常の権限では達成できない方法でファイルの動作を変更する属性を設定することにより、ファイルに対する制御を強化します。たとえば、chattrを使用すると、ファイルを不変にする「+i」属性を設定でき、これによりルートユーザーであってもファイルを変更、削除、または名前変更することができなくなります。他の属性には、「+a」があり、これによりファイルは追加モードでのみ開くことが許可され、「+u」はファイルの内容が削除されないように保存されることを保証します。これらの属性は、重要なシステムファイルを保護し、偶発的な削除を防ぎ、ファイルをより細かく管理するのに特に役立ちます。このコマンドはスーパーユーザー権限で実行する必要があり、通常はシステム管理者がLinuxファイルシステム内の重要なファイルのセキュリティと整合性を強化するために使用します。
多くの場合、Linuxコンピュータは異なるユーザーによって使用されるため、これらのユーザーが共通のファイルグループにアクセスする可能性があります。これにより、重要なファイルの偶発的な削除や編集といった問題が発生する可能性があり、管理者としては絶対に避けたいことです。
このチュートリアルでは、わかりやすい例をいくつか使ってこのツールを説明します。しかし、その前に、ここでのすべての例はUbuntu 24.04 LTSおよびDebian 12でテストされていることを述べておく必要があります。
Linux chattrコマンド
chattrコマンドは、Linuxファイルシステム上のファイル属性を変更するために使用されます。以下がその構文です:
chattr [ -RVf ] [ -v version ] [ mode ] files...そして、manページには次のように記載されています:
chattr changes the file attributes on a Linux file system.
The format of a symbolic mode is +-=[aAcCdDeijsStTu].
The operator '+' causes the selected attributes to be added to the
existing attributes of the files; '-' causes them to be removed; and
'=' causes them to be the only attributes that the files have.
The letters 'aAcCdDeijsStTu' select the new attributes for the files:
append only (a), no atime updates (A), compressed (c), no copy on write
(C), no dump (d), synchronous directory updates (D), extent format (e),
immutable (i), data journalling (j), secure deletion (s), synchronous
updates (S), no tail-merging (t), top of directory hierarchy (T), and
undeletable (u).
The following attributes are read-only, and may be listed by lsattr(1)
but not modified by chattr: compression error (E), huge file (h),
indexed directory (I), inline data (N), compression raw access (X), and
compressed dirty file (Z).
Not all flags are supported or utilized by all filesystems; refer to
filesystem-specific man pages such as btrfs(5), ext4(5), and xfs(5) for
more filesystem-specific details.以下は、chattrコマンドの動作を理解するのに役立つQ&A形式の例です。
Q1. chattrコマンドの使い方は?
ファイルを読み取り専用にしたいとします。そのためには、+iオプションとファイル名を入力としてchattrコマンドを実行します。
例えば:
chattr +i test.txt次のスクリーンショットは、chattrを使用してファイルが読み取り専用になった後、他の操作が成功しなかったことを示しています。

注意:すでに観察しているように、chattrコマンドを使用するにはroot権限が必要です。
Q2. chattrによって課された読み取り専用制限を解除するには?
これは簡単です。+iの代わりに-iオプションを使用するだけです。例えば:
chattr -i test.txt
これで、-iオプションを使用して読み取り専用の制限が解除されたことがわかります。
Q3. ファイルに追加専用の権限を付与するには?
時には、ファイルに対して完全な制限を望まない場合があります。つまり、ユーザーにファイルへの追加専用アクセスを提供したい場合があり、新しい情報を追加できるが、既存の情報を削除または編集できないようにしたいのです。これは、+aオプションを使用してChattrを通じて実現可能です。
chattr +a test.txtこれで、ファイルに追加できるようになりましたが、既存の情報を編集したり、ファイルを削除したりすることはできません。この動作を逆転させるには、-aオプションを使用します。
chattr -a test.txtQ4. chattrを使用してディレクトリ内のすべてのファイルに制限を適用するには?
これは、-Rフラグを使用して実行できます。これにより、ディレクトリとその内容の属性を再帰的に変更できます。たとえば、test-dirディレクトリ内のすべてのファイルを読み取り専用にしたい場合、次のようにchattrコマンドを使用します。
chattr -R +i ./test-dir/次のスクリーンショットは、ディレクトリ内のすべてのファイルに読み取り専用の制限が正常に適用されたことを示しています。
Q5. ファイルに適用されたchattr属性を確認するには?
chattr属性が正常に適用されたかどうかを確認するために、ファイルを編集したり削除したりする操作を試みました。しかし、属性が適用されたかどうかを簡単に確認できる別のコマンドがあります。それがlsattrです。
lsattr [FILENAME]たとえば、次のスクリーンショットは、lsattrの出力がディレクトリ内のすべてのファイルに「i」属性が適用されたことを明確に示しています。
再確認のために、-iオプションを使用した後の出力を示します。
上記のスクリーンショットに示されているように、すべてのファイルから読み取り専用属性が削除されました。
結論
システム管理者や一般的にLinuxマシンのユーザーを管理する場合、chattrは知っておくべきコマンドラインツールであることに同意するでしょう。このコマンドを効果的に使用することで、多くの手間を省くことができます。この記事は、このコマンドを始めるための十分な情報を提供するはずです。ここで説明した例を練習したら、ツールのmanページにアクセスしてさらに学んでください。
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。