"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 파일 시스템의 경우) 파일 시스템이 포함된 블록 장치(사용 가능한 경우) 커널을 효과적으로 우회하여 파일 시스템 구조를 검사하지만, 마운트된 파일 시스템에서 이 작업을 수행하는 것이 반드시 신뢰할 수 있는 것은 아니며, 주어진 커널의 양쪽 모두에서라도 ​​systemtap 또는 bpftrace와 같은 커널 도구를 사용하는 것도 가능합니다. 버전 간 이식이 불가능합니다.

따라서 다음과 같은 것을 사용해야 합니다:

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

특정 inode가 있는 파일의 경로를 찾아 호출합니다 stat.

GNU를 사용하면 stat(2)를 사용하여 파일에 대한 정보를 보고 find할 수도 있습니다 .-printf

관련 정보