ファイルシステムからデータを隠す

ファイルシステムからデータを隠す

一部のファイルを隠して見つけられないようにしたいと思いますls -a。ファイル名の前に「.」を追加することについて話すものではありません。これらのファイルにアクセスするために別々のシステムコールを作成できるかどうか疑問に思います。実際に必要なのは、ユーザーからいくつかのログファイルを隠すことです。一部のファイルのMACデータを保存していますが、ユーザーがこれらのログファイルを表示できないようにしたいと思います。現在私が知っているデータを隠す方法は、「.」を追加するだけです。ファイル名の前に。ただし、ユーザーは簡単な呼び出しでファイルを見ることができますls -a。もしそうなら、このログデータを非表示にする別の方法があるかどうか疑問に思います。

ベストアンサー1

他の人が指摘したように、これの目的が永続ファイルへのアクセスを防ぐことであれば、それを隠すことはおそらく間違ったアプローチです。この場合、アプリケーションが許可する場合は、適切なアクセス制御方法または暗号化を使用することが解決策になる可能性があります。一方、「隠された」を作るのは一時的なファイルは完全に正当なユースケースです。

Linuxでは、カーネルバージョン3.11からopen()このフラグはシステムコールでサポートされており、O_TMPFILE名前のない一時ファイルを作成するために使用できます。このフラグを使用すると、パス名toパラメーターは、open()名前のないinodeを生成するディレクトリを指定するために使用されます。しかし、O_TMPFILE名前が示すように、基本的なユースケースは以下を作成することです。一時的なファイルの場合、ファイルに名前が指定されていないと、最後のファイル記述子が閉じられたときにファイルが失われるため、永続ストレージには適していません。ファイル名は次のとおりです。linkat()O_EXCLこのフラグを追加指定しない限り、システムコールがO_TMPFILE発生します。この場合、ファイルをファイルシステムに接続することが防止されます。

最近追加されたこのO_TMPFILE機能は、一時ファイルに次のプロパティを提供するために使用できるため、非常に重要です。

  1. 競争条件のない生成。
  2. 閉じると自動的に削除されます。
  3. どのパス名でもアクセスできません。
  4. シンボリックリンク攻撃から保護されていません。
  5. 発信者は一意の名前を設計する必要はありません。

また、この機能を使用すると、最初は目に見えないファイルを作成でき、この時点でファイルの適切なファイルシステムプロパティを調整してから、単一のアトミック操作でファイルシステムに接続できます。これは、特定の状況を防ぐために使用できます。トゥクトゥ競争条件。

このフラグの1つの欠点O_TMPFILEは、一部のファイルシステムでのみこれをサポートすることです。最初は、ext2、ext3、ext4、UDF、Minix、およびshmemファイルシステムでサポートが提供されます。 XFSのサポートはLinux 3.15に追加されました。

おすすめ記事