4

dentryパス名を取得する方法、またはstruct file特定の inode から取得する方法を知る必要があります。

file_openパス名から取得するために使用してstruct fileいましたが、常にカーネルパニックが発生しました。i ノード リストの i ノードをパス名の i ノードと比較する方法、またはディスク内のすべての i ノードを比較して対応するパス名を見つけてから、i ノード リストと比較する方法が必要です。

4

2 に答える 2

1

一般に、これを行うのは非常に困難です。

iノードには数千のパス名が含まれる場合があります。すべての名前は等しく「有効」です。複数のリンクをサポートしていないファイルシステムでも、ファイルはシステム内の他の場所に何千回もバインドマウントされる可能性があります。

AppArmorTOMOYOの 強制アクセス制御システムはどちらもパス名に依存していますが、大きな違いがあります。アクセス制御は、特定の名前で開かれた特定のファイル記述子に対して実行され、両方のツールがその特定の名前を使用します。

iノードからパス名を見つける方法の詳細については、security/apparmor/path.c関数aa_get_name()またはsecurity/tomoyo/file.c関数を調べてください。追加のサポート情報が提供されます。tomoyo_get_realpath()単純なiノードオブジェクトからすると、おそらく運が悪いと思います。

于 2011-12-19T02:31:56.303 に答える