web-dev-qa-db-ja.com

表示できず、絶対パス名でのみアクセスできるディレクトリを作成するにはどうすればよいですか?

私は、標準のUNIXシステムに時間サポートを追加するという課題に取り組んでいます。ただし、その一部には、「ls -al」などのコマンドを使用してもバックアップファイルを非表示にすることで、バックアップファイル(デフォルトでシステムルートに設定)の場所を保護することが含まれ、指定することによってのみアクセスできます。その絶対パス名。元の見積もりは次のとおりです。

最後に、履歴ディレクトリは、ルートディレクトリを表すiノードの内容を調べたり、「ls -al /」などのコマンドを実行したりするときに表示されず、直接chdirを介してのみアクセスできるという意味で「仮想」である必要があります。 ()( "cd")履歴パス名への操作。

私はUNIXファイルシステムAPIをうろついていますが、これを強制する方法を思い付いていません(コマンドラインプログラムまたはbashスクリプトでのこれらの組み合わせでうまくいくと思います)。私は間違った方向に考えていますか?

正しい方向へのポインタやヒントをいただければ幸いです、ありがとう:)

6
blazonix

ディレクトリから読み取り権限を削除できます。その場合でも、そのコンテンツ(ファイルまたはサブディレクトリ、許可があれば)にアクセスすることは可能ですが、ディレクトリコンテンツの一覧表示はできなくなるため、名前を知っておく必要があります(または:試してみてください...)。

7
Hauke Laging

Root以外のユーザーにディレクトリのコンテンツを一覧表示させながら、そのディレクトリ内のファイルへのアクセスを許可するには、x権限を付与しますが、rは付与しません。ディレクトリの場合、r(「読み取り」)はコンテンツを一覧表示できることを意味し、xはディレクトリ内のファイルまたはディレクトリにcdにアクセスできることを意味します。ただし、これは権限を参照していないため、割り当てが意味するものではないようです。

通常のファイルシステムでは、ディレクトリ内のエントリはディレクトリリストに表示されるエントリです。ただし、ファイルシステムドライバを制御する場合は、この規則に違反する可能性があります。野生で見つかるかもしれないいくつかの例を次に示します。

  • 大文字と小文字を区別しないファイルシステムでは、リストにFooが1つだけ表示されているディレクトリで、FOOfOOなどと呼ばれるファイルにアクセスすることもできます。ファイルシステムドライバはこのように設計されているため、同じファイルです。
  • 一部のオートマウンタはディレクトリ名に反応し、それに応じてマウントを試みます。たとえば、NFS用に構成されたオートマウンターは通常、/amnt/myserver/somedirにアクセスすると、myserver:/somedirをマウントしようと決定します。これにより、ディレクトリ/amnt/myserver/amnt/myserver/somedirが存在します。
  • [〜#〜] avfs [〜#〜] では、ファイルがアーカイブとして認識されている場合、ディレクトリとしてアクセスできますが、偽のディレクトリ名はディレクトリに表示されません。リスト:ls ~/.avfs/path/tofoo.Zipを示している場合、ディレクトリ~/.avfs/path/to/foo.Zip#も存在します。
  • 一部のファイルシステムスナップショットシステムは、割り当てで説明されている方法で動作します。ディレクトリ/snapshot/20140415022342または/snapshot/yesterdayにアクセスすると、指定した時間より前に最新のスナップショットを取得します。