「stat [オプション]...inode番号...」は可能ですか?

「stat [オプション]...inode番号...」は可能ですか?

ファイル名の代わりにFile1のinode番号をパラメータとして渡してstatメタデータを取得できますか?File1stat

stat [option - any doing this?] [inode number of File1]

変える

stat /home/$USER/File1

パイプとコマンドの代替トリックを使用せずに直接意味します。

答え1

このように?

sudo debugfs -R "stat <237770>" /dev/sda1

私には、次のような出力があります。

Inode: 237770   Type: regular    Mode:  0644   Flags: 0x80000
Generation: 3934018986    Version: 0x00000000:00000001
User:  1000   Group:  1000   Project:     0   Size: 3878
File ACL: 0
Links: 1   Blockcount: 8
Fragment:  Address: 0    Number: 0    Size: 0
 ctime: 0x65844b48:c3cc9104 -- Thu Dec 21 15:27:20 2023
 atime: 0x65844b4f:d21ab1e8 -- Thu Dec 21 15:27:27 2023
 mtime: 0x65844b48:c3cc9104 -- Thu Dec 21 15:27:20 2023
crtime: 0x6584497f:07719290 -- Thu Dec 21 15:19:43 2023
Size of extra inode fields: 32
Inode checksum: 0x6a9c083c
EXTENTS:
(0):2478609

答え2

いいえ、設計上のファイルパスを通る以外はファイルにアクセスできないため、アクセス制御を迂回する可能性があるため、これはセキュリティ上の問題です。

rootこれは、次のことを使用して実行できます。debugfs(ext4ファイルシステムの場合)ファイルシステムを含むブロックデバイス(使用可能な場合)カーネルを効果的にバイパスしてファイルシステム構造を調べますが、マウントされたファイルシステムでこれを行うことは必ずしも信頼できるわけではありません。を使用することも可能です。バージョン間移植は不可能です。

したがって、次のようなものを使用する必要があります。

find /root/of/filesystem -xdev -inode 12345 -exec stat {} ';'

特定のinodeを持つファイルのパスを見つけて呼び出しますstat

GNUでは、stat(2)を使用してファイルに関する情報を報告するfindこともできます。-printf

関連情報