2016-03-18 8 views
5

ファイルのinodeを知っているファイルを開くことはできますか?inodeでファイルを開く

ls -i /tmp/test/test.txt 
529965 /tmp/test/test.txt 

私はパス、(529965以上)のinodeと私はお返しにファイル記述子を取得するために探していますを提供することができます。

+0

[なぜファイルをinodeで操作できないのですか?](http://stackoverflow.com/questions/4606774/why-cant-files-be-manipulated-by-inode) – zwol

答えて

8

アクセス制御ルールで抜け穴が開いてしまうため、これは不可能です。ファイルを開くことができるかどうかは、自身のアクセス許可ビットだけでなく、すべての包含ディレクトリの許可ビットにも依存します。たとえば、あなたの例では、test.txtがモード644でしたが、含まれるディレクトリtestがモード700の場合、roottestの所有者のみがtest.txtを開くことができます)。 "ハードリンク"を読んでください)、カーネルはinode番号だけでアクセス制御チェックの完全なセットを実行することができません。

(一部のUnix実装では、いくつかのアクセス制御ルールをバイパスしてファイルをinode番号で開く非標準のルート専用APIを提供していますが、現在のLinuxにそのようなAPIがある場合はわかりません)

+0

関連性があります: http://stackoverflow.com/a/31432662/544721 –