はじめに
chattr Linuxのコマンドは、ディレクトリ内のファイルの属性を変更するために使用されるファイルシステムコマンドです。このコマンドの主な用途は、スーパーユーザー以外のユーザーが複数のファイルを変更できないようにすることです。 Linuxはマルチユーザーオペレーティングシステムであることがわかっているため、管理者など、別のユーザーにとって非常に懸念されるファイルをユーザーが削除できる可能性があります。このようなシナリオを回避するために、Linuxは「 chattr ‘。つまり、「chattr」を使用すると、ファイルを不変、削除不能、追加のみ、その他多くのファイルにすることができます。
概要
chattr [ -RVf ] [ -v version ] [ mode ] files...
モード文字列の先頭に、次の演算子のいずれかを指定する必要があります。
- ‘ + ‘:選択した属性をファイルの既存の属性に追加します。
- そして「– ‘:選択した属性を削除します。
- ‘ = ‘:選択した属性をファイルが持つ唯一の属性にします。
シンボリックモードの形式は次のとおりです。
{+|-|=}[aAcCdDeijsStTu]
一般的な属性のリストは次のとおりです。関連するフラグは、chattrコマンドを使用して設定/設定解除できます。
- A set:atimeレコードは更新されていません。
- S set:変更はディスク上で同期的に更新されます。
- a set:ファイルは書き込み用に追加モードでのみ開くことができます。
- i set:ファイルは変更できません(不変)。スーパーユーザーのみが属性の設定を解除できます。
- j set:すべてのファイル情報は、ファイル自体に更新される前にext3ジャーナルに更新されます。
- t セット:テールマージは許可されていません。
- d set:ダンププロセス時にバックアップの候補がなくなりました。
- u set:そのようなファイルが削除されると、そのデータが保存され、ユーザーがその削除を要求できるようになります。
以下は、chattrコマンドのさまざまなオプションです。
- -R :ディレクトリのリスト属性とその内容を再帰的に表示するために使用されます。
- -V :プログラムのバージョンが表示されます。
- -a :名前がピリオド(‘。’)で始まるディレクトリのすべてのファイルを一覧表示するために使用されます。
- -d :このオプションでは、ディレクトリの内容を一覧表示するのではなく、通常のファイルとして一覧表示します。
- -v :ファイルのバージョン/世代番号などを表示するために使用されます。
使用 chattr コマンド: chattr’は、非常に重要で、何があってもホストPCに残しておく必要があるいくつかのシステムファイルを保持するために使用できます。また、スーパーユーザー以外のユーザーがディレクトリを削除または変更できないようにするには、これが必要です。 「chattr」の一般的な使用法は次のとおりです。-
chattr [OPERATOR][Flags] FILE
「i」属性を使用してファイルを不変にします
ファイルを不変にするために使用される「chattr」コマンド。不変とは、ファイルを移動、名前変更、または削除できないことを意味します。
ここでは、例として「unixcop.txt」という名前のファイルに「i」フラグを付けます。
[qadry@unixcop ~]# chattr +i unixcop.txt
[qadry@unixcop ~]#
[qadry@unixcop ~]# lsattr
----i--------------- ./unixcop.txt
[qadry@unixcop ~]#
「lsattr」を使用できます ファイルの属性を確認します。
上のスクリーンショットでわかるように、「i」属性が設定され、ファイルは不変になっています。
「i」属性を使用して、ディレクトリを不変にすることもできます。
ファイルから「i」属性を削除します
「i」属性が設定されると、rootユーザーが属性を削除した後でのみ、ファイルを変更または削除できます。属性を削除するオプションとともに「-」演算子を使用します:
[qadry@unixcop ~]# chattr -i unixcop.txt
[qadry@unixcop ~]#
[qadry@unixcop ~]# lsattr
-------------------- ./unixcop.txt
[qadry@unixcop ~]#
「a」属性を使用してファイルを追加モードで開きます
「a」属性を使用して、ファイルを追加モードで開くことができます。追加モードでは、ユーザーはファイルにすでに存在するデータを変更せずに、ファイルにデータを追加することしかできません。
[qadry@unixcop ~]# chattr +a unixcop.txt
[qadry@unixcop ~]#
[qadry@unixcop ~]# lsattr
-----a-------------- ./unixcop.txt
[qadry@unixcop ~]#
下のスクリーンショットでわかるように、echoコマンドを使用してテキストファイルにデータを追加しようとすると、ターミナルでエラーが発生します。
[qadry@unixcop ~]# echo "Hello Unixcop" > unixcop.txt
-bash: unixcop.txt: Operation not permitted
[qadry@unixcop ~]#
「>」演算子の代わりに「>>」を使用してファイルにデータを追加できます:
[qadry@unixcop ~]# echo "Hello Unixcop" >> unixcop.txt
[qadry@unixcop ~]# cat unixcop.txt
Hello Unixcop
[qadry@unixcop ~]#
ディレクトリを保護する
フラグ+i’は、ディレクトリを不変にするために(以下に示すように)ディレクトリに使用できます。また、ここではフラグ-R’が使用されています。これにより、呼び出しが再帰的になり、すべてのサブファイルとディレクトリも不変になります。
[qadry@unixcop ~]# chattr -R +i temp/
[qadry@unixcop ~]# rm -rf temp/
rm: cannot remove 'temp/': Operation not permitted
[qadry@unixcop ~]# lsattr -R temp/
-----i--------e------ temp/unixcop_file.txt
[qadry@unixcop ~]# chattr -R -i temp/
[qadry@unixcop ~]# lsattr -R temp/
--------------e------ temp/unixcop_file.txt
[qadry@unixcop ~]#
「j」属性を追加して、ファイルのデータをext3ジャーナルに更新します
「j」属性を使用することにより、ファイル属性のデータは、ファイル自体の前にext3ジャーナルに更新されます。
[qadry@unixcop ~]# chattr +j unixcop.txt
[qadry@unixcop ~]#
[qadry@unixcop ~]# lsattr
-----j-------------- ./unixcop.txt
[qadry@unixcop ~]#
結論
「chattr」コマンドは、管理者にとって非常に便利なツールです。これにより、ファイルのアクセス許可を変更できるようになり、重要なファイルの保護に役立ち、ファイルの変更を防ぐことができます。