チャット

チャット
原作者レミーカード
オペレーティング·システムリナックス
プラットフォームクロスプラットフォーム
タイプ指示
chflags
オペレーティング·システムmacOSを含むBSD系システム
プラットフォームクロスプラットフォーム
タイプ指示

chattr は、ユーザーがファイルの特定の属性を設定できるようにするLinuxコマンドです。lsattrはファイルの属性を表示するコマンドです。

macOSを含むほとんどのBSD系システムには、属性を設定するための類似のchflagsコマンドが常に存在していましたが、属性を表示するためのコマンドはありませんでした。代わりに、 lsコマンドの特定のオプションが使用されました。chflagsコマンドは4.4BSDで初めて登場しました。

Solarisにはこれらを操作するための特別なコマンドはありません。代わりにchmod [1]ls [2]が使用されます。

他のUnix系オペレーティングシステムには、一般的に類似のコマンドはありません。似た名前のコマンドとしてchatrHP-UX)とlsattrAIX)がありますが、機能は異なります。

とりわけ、chattrコマンドは、ソフトウェアのアップグレード中にパスワードファイルや特定のシステムファイルが消去されないように、ファイルを不変にするのに役立ちます。[3]

Linuxシステムでは(チャットそしてlsattr

ファイルシステムのサポート

コマンドライン ツールchattr (属性を操作する) とlsattr (属性を一覧表示する) は、もともと Second Extended Filesystem ファミリ ( ext2ext3ext4 ) に固有のものであり、e2fsprogsパッケージの一部として使用できます。

しかし、その後、この機能はXFSReiserFSJFSOCFS2など、多くの他のシステムに完全にまたは部分的に拡張されました。 btrfs ファイルシステムには、 btrfs の組み込みコピーオンライト (CoW) 機能を無効にするフラグを含む属性機能が含まれていますC。これは、CoW に関連するパフォーマンスの低下を防ぐためです。

チャット説明

chattrコマンドの形式は次のとおりです。

 chattr [ -RVf ] [ -+ = AacDdijsTtSu ] [ -v version ]ファイル...     
  • -Rディレクトリとその内容の属性を再帰的に変更します
  • -Vプログラムのバージョンを詳細に表示する
  • -fほとんどのエラーメッセージを抑制します

lsattr説明

lsattrコマンドの形式(gnu 1.41.3):

 lsattr [ -RVadv ] [ファイル... ]      
  • -Rディレクトリとその内容の属性を再帰的にリストします
  • -Vプログラムのバージョンを表示します
  • -aドットファイルを含むディレクトリ内のすべてのファイルをリストします
  • -d他のファイルと同様にディレクトリをリストしますが、その内容をリストしません。

属性

属性には次のようなものがあります:

chattr(1)Linux のマニュアルページによる Linux ファイルシステム上のファイル属性
属性lsattrフラグチャットオプション意味論と根拠
atime更新なしA+A
-Aクリアに設定する
  • 属性が設定されたファイルにAアクセスした場合、そのatimeレコードは変更されません。
  • これにより、一定量のディスク I/O 操作が回避されます。
追加のみa+a
-aクリアに設定する[注 1]
  • 属性が設定されたファイルは、a書き込み用に追加モードでのみ開くことができます。
圧縮c+c
-cクリアに設定する[注 2]
  • 属性が設定されたファイルは、cカーネルによってディスク上で自動的に圧縮されます。
  • このファイルから読み取ると、圧縮されていないデータが返されます。
  • このファイルに書き込むと、データはディスクに保存される前に圧縮されます。
コピーオンライト(CoW)なしC+C
-Cクリアに設定する[注 3]
  • 属性を持つファイルはC、コピーオンライト更新の対象にはなりません。
  • これらのファイルの更新はアトミック スナップショットの対象とならない可能性があり、一部のファイルシステムおよびカーネルに関する信頼性情報が欠落している可能性があります。
同期ディレクトリ更新D+D
-Dクリアに設定する
  • 属性が設定されたディレクトリがD変更されると、変更はディスクに同期的に書き込まれます。
  • これは、ファイルのサブセットに適用されるdirsync マウント オプションと同等です。
ダンプなしd+d
-dクリアに設定する
圧縮エラーE(利用不可)
  • このE属性は、圧縮ファイルに圧縮エラーがあることを示すために、実験的な圧縮パッチによって使用されます。
エクステント形式e(利用不可)
巨大なファイルh(利用不可)
  • このh属性は、ファイルがブロックをセクター単位ではなくファイルシステムのブロックサイズ単位で保存していることを示します。
  • これは、ファイルが 2TB を超えているか、またはかつては 2TB を超えていたことを意味します。
インデックスディレクトリI(利用不可)
  • この属性は、ディレクトリがハッシュ ツリーを使用してインデックス付けされていることを示すために、htreeプログラムIコードによって使用されます。
不変i+i
-iクリアに設定する[注 1]
  • 属性を持つファイルはi変更できません。
  • このファイルは削除または名前変更できません。また、このファイルへのリンクを作成したり、ファイルにデータを書き込んだりすることもできません。
  • 設定すると、スーパーユーザーであってもファイルの内容を消去したり変更したりできなくなります。
データジャーナリングj+j
-jクリアに設定する[注 4]
  • 属性を持つファイルは、ファイルシステムがまたはオプションでマウントされている場合、ファイル自体に書き込まれる前に、jそのすべてのデータがext3ジャーナルに書き込まれます。"data=ordered""data=writeback"
  • ファイルシステムがオプション「"data=journal"すべてのファイル データがすでにジャーナル化されている」でマウントされている場合、この属性は効果がありません。
安全な削除s+s
-sクリアに設定する[注 2] [注 5]
同期更新S+S
-Sクリアに設定する
  • 属性が設定されたファイルがS変更されると、変更内容がディスクに同期的に書き込まれます。これは、ファイルのサブセットに「sync」マウント オプションが適用されることと同じです。
  • これは、ファイルのサブセットに適用されるsync マウント オプションと同等です。
ディレクトリ階層の最上位T+T
-Tクリアに設定する
  • 属性を持つディレクトリは、Orlov ブロック アロケータTの目的ではディレクトリ階層の最上位であると見なされます
  • これは、 ext3およびext4で使用されるブロック アロケータに対するヒントであり、このディレクトリの下のサブディレクトリは関連がないため、割り当てのために分散させる必要があることを示します。
  • たとえば、ディレクトリTに 属性を設定して/home/home/johnと を/home/mary別々のブロック グループに配置することは非常に良い考えです。
  • この属性が設定されていないディレクトリの場合、Orlov ブロック アロケータは、可能な限りサブディレクトリをより近くにグループ化しようとします。
テールマージなしt+t
-tクリアに設定する
  • 末尾マージをサポートするファイルシステムの場合、属性を持つファイルは、tファイルの末尾に他のファイルとマージされた部分的なブロックフラグメントを持ちません。
  • これは、ファイルシステムを直接読み取り、末尾がマージされたファイルを理解しないLILOなどのアプリケーションに必要です。
削除不可u+u
-uクリアに設定する[注 2]
  • 属性が設定されたファイルuを削除すると、その内容は保存されます。
  • これにより、ユーザーは削除の取り消しを要求できるようになります。
圧縮生アクセスX(利用不可)
  • このX属性は、圧縮ファイルの生のコンテンツに直接アクセスできることを示すために、実験的な圧縮パッチによって使用されます。
圧縮されたダーティファイルZ(利用不可)
  • このZ属性は、圧縮ファイルが「ダーティ」であることを示すために、実験的な圧縮パッチによって使用されます。
バージョン/世代番号-v-v version
  • ファイルのバージョン/世代番号。

注記

  1. ^ ab これらの属性を設定またはクリアできるのは、スーパーユーザーまたはその権限を持つプロセスのみです。CAP_LINUX_IMMUTABLE
  2. ^ abcこれらの属性は 、現在の主流 Linux カーネルに実装されているext2およびext3ファイルシステムでは考慮されません。
  3. ^これらの属性は、 btrfsなどの Copy-on-Write ファイルシステムに対してのみ意味を持ちます
  4. ^ この属性を設定またはクリアできるのは、スーパーユーザーまたはその権限を持つプロセスのみです。CAP_SYS_RESOURCE
  5. ^ この属性は、バグ #17872 で報告されているように、現在のメインライン Linux カーネルに実装されているext4ファイルシステムでは考慮されません。

BSD系システム(chflags

ファイルシステムのサポート

chflagsコマンドは特定のファイルシステムに固有のものではありません。BSDシステムのUFS、およびmacOS のAPFSHFS+SMBAFPFAT は少なくともいくつかのフラグをサポートしています。

chflags説明

chflagsコマンドの形式は次のとおりです。

 chflags [ -R [ -H | -L | -P ]]フラグファイル...         
  • -H-R オプションが指定されている場合は、コマンドライン上のシンボリック リンクがたどられます。(ツリー トラバーサルで検出されたシンボリック リンクはたどられません。)
  • -L-R オプションが指定されている場合は、すべてのシンボリック リンクがたどられます。
  • -P-R オプションが指定された場合、シンボリックリンクはたどられません。これがデフォルトです。
  • -Rファイル自体だけでなく、ファイルをルートとするファイル階層のファイル フラグを変更します。

表示中

BSD系システムでは、一般的に、ファイルのフラグを表示するためのデフォルトのユーザーレベルコマンドは存在しません。lsコマンド、システムに応じて、または のいずれかのフラグを渡して実行します。-lo-lO

属性

従来の属性はすべてスーパーユーザーによって設定またはクリアできます。また、一部の属性はファイルの所有者によって設定またはクリアすることもできます。属性には以下のものがあります。

ファイル属性
属性lsフラグchflagsフラグ所有者が設定可能OSサポート意味論と根拠
アーカイブ済みアーチアーチアーカイブいいえ全てファイルはアーカイブされています
不透明不透明不透明はい全てディレクトリはユニオンマウントで見ると不透明です
ダンプなしノーダンプノーダンプはい全てファイルをダンプできません
システム追加のみサップンドsappndsappendいいえ全てファイル内の既存のデータは上書きできず、ファイルは切り捨てられません
ユーザー追加のみuappnduappnduappendはい全てファイル内の既存のデータは上書きできず、ファイルは切り捨てられません
システムは不変シュグschgschangesimmutableいいえ全てファイルを変更、名前変更、移動、削除することはできません
ユーザーは変更不可うっぐuchguchangeuimmutableはい全てファイルを変更、名前変更、移動、削除することはできません
システム非リンクサンリンクサンリンク、サンリンクいいえFreeBSD、DragonFly BSD、macOSファイルの削除、名前の変更、マウントはできません。macOSでは、このフラグはシングルユーザーモードで設定またはクリアする必要があります。
ユーザーのリンク解除不可uunlnkuunlnk、uunlinkはいFreeBSD、DragonFly BSDファイルを削除、名前変更、またはマウントすることはできません
隠れた隠れた隠れたはいmacOSファイルは GUI ではデフォルトで非表示になっています (ただしlsでは非表示ではありません)
隠れた隠れた隠された、隠されていないはいフリーBSD一部の GUI デスクトップでは、ファイルはデフォルトで非表示になっている可能性があります (ただし、lsでは非表示ではありません)
追跡済み追跡された追跡されたはいmacOSファイルの変更と削除は追跡されます
制限付き制限付き制限付きいいえmacOSファイルはシステム整合性保護によって保護されています拡張属性 com.apple.rootlessが付属しています。フラグはリカバリモードから設定またはクリアする必要があります。
圧縮圧縮されたいいえmacOSファイルはHFS圧縮されています (読み取り専用フラグ)。APFS 形式のボリュームでは使用できませ
データボールトいいえmacOSmacOS Mojave以降、特別な権限のないアクセスを禁止するためにコアシステムによって設定された隠されたプライバシーフラグ
オフラインオフラインオフライン、非オフラインはいフリーBSDファイルはオフラインです
スナップショットスナップショットいいえFreeBSD、NetBSDファイルはスナップショットファイルです(読み取り専用フラグ)
まばらまばらな疎、非疎はいフリーBSDすべてゼロの書き込みは「ホール」として書き込まれる可能性がある
アーカイブする必要があるuarchuarch、uarchiveはいフリーBSDファイルはアーカイブする必要があります

参照

  • ATTRIB– MS-DOS、OS/2、Microsoft Windowsの類似コマンド
  • chown– Unixシステムでファイル/ディレクトリの所有権を変更する
  • chmod– Unixシステムのファイルアクセス制御属性を変更する
  • cacls– Microsoft Windows NTのファイルアクセス制御リストを変更する

注記

  1. ^ chmod(1)  – 最新の Sun ベースのOpenSolarisからのillumosおよびOpenSolarisユーザーコマンドリファレンスマニュアル
  2. ^ ls(1)  – 最新の Sun ベースのOpenSolarisからのillumosおよびOpenSolarisユーザーコマンドリファレンスマニュアル
  3. ^ chflags(1)  –  OpenBSD一般コマンドマニュアル

参考文献

Retrieved from "https://en.wikipedia.org/w/index.php?title=Chattr&oldid=1272999217"