チャット

チャット
オリジナルの著者レミーカード
オペレーティング·システムLinux
プラットホームクロスプラットフォーム
タイプ指示
chflags
オペレーティング·システムBSD 系システム( macOSを含む)
プラットホームクロスプラットフォーム
タイプ指示

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

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

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

一般に、他のUnix 系オペレーティング システムには類似したコマンドがありません。似たような響きのコマンドchatr ( HP-UX由来) とlsattr ( AIX由来) が存在しますが、機能は無関係です。

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

Linux システムの場合 ( chattrおよびlsattr )

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

コマンド ライン ツールのchattr (属性を操作するため) およびlsattr (属性をリストするため) は、元々は Second Extended Filesystem ファミリ ( ext2ext3ext4 ) に固有であり、 e2fsprogsパッケージの一部として利用できます

ただし、この機能はその後、完全または部分的に、 XFSReiserFSJFSOCFS2などの他の多くのシステムに拡張されましたbtrfs ファイル システムには、CCoW に関連するパフォーマンスの低下を理由に btrfs の組み込みコピーオンライト (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フラグ chattrオプション 意味論と理論的根拠
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クリアに 設定する
  • 属性セットを持つファイルは、ダンププログラムの実行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の目的上、ディレクトリ階層の最上位とみなされます
  • これは、 ext3ext4で使用されるブロック アロケーターへのヒ​​ントであり、このディレクトリの下のサブディレクトリは関連していないため、割り当ての目的で分割する必要があることを示しています。
  • たとえば、ディレクトリTに属性を設定して/home/home/johnと を/home/mary別々のブロック グループに配置することは非常に良い考えです。
  • この属性が設定されていないディレクトリの場合、Orlov ブロック アロケーターは、サブディレクトリを可能な限り近くにグループ化しようとします。
末尾マージなし t +t
-tクリアに 設定する
  • tail-mergeをサポートするファイルシステムの場合、この属性を持つファイルは、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などのコピーオンライト ファイル システムに対してのみ意味を持ちます
  4. ^ この属性を設定またはクリアできるのは、スーパーユーザーまたはその機能を持つプロセスだけですCAP_SYS_RESOURCE
  5. ^ この属性は、バグ #17872 で報告されているように、現在のメインライン Linux カーネルに実装されているext4ファイルシステムでは受け入れられません。

BSD のようなシステム ( chflags )

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

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

chflagsの説明

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

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

表示する

一般に、BSD のようなシステムには、ファイルのフラグを表示するためのデフォルトのユーザーレベルのコマンドがありません。lsコマンドは、システムに応じて、渡されるフラグ、 または のいずれかを処理します。-lo-lO

属性

すべての従来の属性は、スーパーユーザーによって設定またはクリアできます。ファイルの所有者が設定またはクリアできるものもあります。いくつかの属性には次のようなものがあります。

ファイル属性
属性 lsフラグ chflagsフラグ 所有者が設定可能 OSサポート 意味論と理論的根拠
アーカイブ済み アーチ アーチアーカイブ済み いいえ 全て ファイルはアーカイブされています
不透明 不透明な 不透明な はい 全て ユニオンマウントを通して見るとディレクトリが不透明になる
ダンプなし ノダンプ ノダンプ はい 全て ファイルをダンプできません
システム追加専用 サップンド サップンドサペンド いいえ 全て ファイル内の既存のデータを上書きしたり、ファイルを切り詰めたりすることはできません
ユーザー追加のみ アップンド uappnduappend はい 全て ファイル内の既存のデータを上書きしたり、ファイルを切り詰めたりすることはできません
システムは不変です シュグ schgschangesimmutable いいえ 全て ファイルの変更、名前変更、移動、または削除はできません
ユーザー不変 うーん uchguchangeuimmutable はい 全て ファイルの変更、名前変更、移動、または削除はできません
システムのリンク解除なし 沈む サンリンク、サンリンク いいえ 全て ファイルは削除、名前変更、またはマウントできません。macOS では、このフラグを設定するか、シングル ユーザー モードからクリアする必要があります。
ユーザーによるリンク解除禁止 ううんんく アンリンク、アンリンク はい いくつかの ファイルは削除、名前変更、またはマウントできません。macOS ではサポートされていません
隠れた 隠れた 隠れた いいえ FreeBSD ファイルは GUI ではデフォルトで非表示になります (ただし、lsでは非表示になります)
ユーザー非表示 隠れた 隠れた はい FreeBSD ファイルは GUI ではデフォルトで非表示になります (ただし、lsでは非表示になります)
隠れた 隠れた 隠れた はい マックOS ファイルは GUI ではデフォルトで非表示になります (ただし、lsでは非表示になります)
追跡済み 追跡された 追跡された はい マックOS ファイルの変更と削除は追跡されます
制限付き 制限付き 制限付き いいえ マックOS ファイルはシステム整合性保護によって保護されています拡張属性 com.apple.rootlessを伴いますフラグを設定するかリカバリモードからクリアする必要があります
圧縮された 圧縮された いいえ マックOS ファイルはHFS圧縮されています (読み取り専用フラグ)。APFSでフォ​​ーマットされたボリューム では使用できません
データ保管庫 いいえ マックOS macOS Mojave以降、特別な資格のないアクセスを禁止するためにコア システムによって設定された 非表示のプライバシー フラグ

BSD システムは、offlinesnapshotsparse[4]uarchiveなどの追加フラグを提供します。「参考文献」を参照してください。

こちらも参照

  • 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一般コマンドマニュアル
  4. ^ 特別なフラグを持たない macOS 上の APFS スパース ファイルとは異なります。

参考文献