Linuxで特別な隠しファイル(例:.reiser_priv)をどのように検出しますか?

Linuxで特別な隠しファイル(例:.reiser_priv)をどのように検出しますか?

私は最近、Linuxにコマンドを使用して表示できない特別な隠しディレクトリがあることを発見しましたls -a。つまり、私が出会ったのは.reiserfs_privディレクトリは reiserfs ファイルシステムのルートディレクトリにあります。私はls -ld .reiserfs_privそれを呼び出してcd(ルートとして)ディレクトリに行くことができますが、ls -aコマンドと共に表示されません(find ./ -name *reiser*見つかりません)。

質問:

  • この種のディレクトリを実際にどのように検出しますか?
  • 私は自分で作ることができますか?
  • 彼らは滞在するためにどのようなメカニズムを使用しますか?こっそりなぜls -a見ることができないのですか?
  • ファイルになりますか?
  • このタイプのディレクトリは通常どこで使用されますか?

ベストアンサー1

通常、これらのファイルは検出または生成できません。ファイルシステムが一貫性のないデータを報告するために存在します。

ファイルシステムを変更せずにファイルシステムのファイルに関する情報を取得するさまざまな方法には冗長性があります。たとえば、権限は次のことを許可します。

  • ファイル名が報告されると、その名前を使用したreaddir呼び出しがlstat成功します。
  • ファイルがシンボリックリンクとして報告されていない場合とlstat呼び出しも成功します。statopen
  • stat成功すれば成功openです。
  • open成功したら、次のことを行いstatますlstat
  • statレポートファイルがディレクトリであれば成功cdし、その逆も同様です。

など。 Reiserfsファイルシステムが.reiserfs_privディレクトリリストからエントリを省略したが、そのエントリに直接アクセスするシステムコールを介してディレクトリを報告すると、ファイルシステムは一貫性のない情報を報告します。

情報が間違っているのではなく、一貫性がないだけです。これはルール違反にすぎず、ルール違反にすぎません。cdorを実行する前にディレクトリを作成し、ls .reiserfs_privorを実行する前に削除する非常に高速なゴブリンがある場合でも、同じ動作が観察されることがありますfind

ファイルシステムが一貫性のないデータを報告するのは、一部のアプリケーションとユーザーを混乱させる可能性があるため、悪い形式なので、妥当な理由がある場合にのみ実行する必要があります。 Reiserfsの場合、その理由は、特にファイル検索とインデックス検索で一部の情報をかなり隠したままにするためです。これは、その内容が.reiserfs_priv「実際の」ファイルではなく保存に使用されるため便利です。拡張ファイル属性、システムコールシリーズを呼び出してアクセスします*xattr。実際、私はそれがなぜ露出されたのか分からない。たぶんデバッグ目的だけです。

自分の存在を報告しないファイルの別の例は、同じデータを異なる方法で返すことを可能にするファイルシステムです。例えば、CIOPFSファイルシステムの大文字と小文字を区別しないビューを提供します。 thenというファイルがある場合は、ディレクトリリストFooのみが一覧表示されますが、FooアクセスfooなどFOOは成功します。

おすすめ記事