파일 이름 대신 File1의 inode 번호를 매개변수로 전달하여 stat
메타데이터를 검색할 수 있습니까?File1
stat
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