Akses file berdasarkan id-nya dan ubah atribut file


3

Sama seperti setiap file juga direktori memiliki id file. Anda dapat melihatnya dengan mengetik

ls -i
  1. Bagaimana cara melihat konten file dengan id-nya?

  2. Bagaimana cara mengubah atribut direktori ke file (hapus D) dan sebaliknya!


1
"inode", bukan "id".
Ignacio Vazquez-Abrams

Jawaban:


1

Kedengarannya seperti data yang Anda cari ada di sistem file. Jawaban untuk pertanyaan Anda tergantung pada sistem file yang Anda gunakan. Saya akan menganggap Anda menggunakan ext3.

Untuk kemampuan tingkat lanjut untuk melihat dan memodifikasi data dalam sistem file, lihat debugfs (8) . Tapi hati-hati, Anda bisa benar-benar merusak barang dengan alat ini. Ini adalah kesempatan yang baik untuk menggunakan Mesin Virtual dengan snapshot (Seperti yang saya rekomendasikan sini ). Ambil snapshot, lalu modifikasi sistem file sebanyak yang Anda inginkan. Anda selalu dapat mengembalikan VM dari foto sebelumnya.


Besar! Saya menggunakan debugfs / dev / disk / by-id / .., lalu mengeluarkan perintah cat & lt; inode & gt; dan mendapat konten inode! Namun pada saat itu saya bingung - saya tidak melihat properti file di inode. Hanya data. Lalu saya melakukan hal yang sama untuk direktori, tetapi juga tidak mengandung properti file jadi pertanyaannya adalah - di mana file properti disimpan?
0xDEAD BEEF

Baik! terpecahkan. Digunakan debugfs mi (ubah inode) sebelum membuka debugws dengan parameter -w. Perintah itu memungkinkan saya untuk memodifikasi inode, sementara cat dan dump hanya mengambil data, yang menunjuk ke inode! Itu sangat menyenangkan!
0xDEAD BEEF

Lieliski !. Dan itu adalah hal-hal yang canggih. Anehnya, saya jarang melakukan hal-hal itu selama karir saya (saya sudah melakukan ini selama hampir 13 tahun) kecuali ketika saya belajar sendiri Linux. Sekarang saatnya belajar lagi.
Stefan Lasiewski

2

inode ke nama file:

find / -inum <number>

Mengonversi direktori ke file tidak dimungkinkan.

Untuk informasi tentang data internal direktori, lihat dirent.h .

Anda juga dapat berkonsultasi dengan Perpustakaan C GNU Mengakses Direktori .


saya ingin melihat, apa itu direktori, bagaimana ia disimpan di sistem linux. find / -inum tentu bukan hal yang saya cari
0xDEAD BEEF

@ 0xDEAD BEEF: Saya telah menambahkan beberapa info lagi yang dapat berfungsi sebagai titik awal. Ini adalah topik Linux tingkat lanjut, yang membutuhkan studi nyata.
harrymc

saya ingat dahulu kala saya dapat mengedit informasi, yang disimpan dalam tautan keras / atau lunak. Jadi saya bisa mendapatkan akses ke simpul direktori (misalnya). dengan demikian, memiliki tautan ke file dengan inode ke direktori. Tapi hari ini aku sudah melupakan semua sihir itu .. :(
0xDEAD BEEF

0

- solusi dan cara kerja barang - Jadi - inode adalah hal yang dicatat oleh setiap direktori. Bahkan - setiap direktori adalah file, yang berisi daftar nama file dan nomor inode yang sesuai untuk mereka,

Jadi - jika Anda ingin melihat, apa yang ada di dalam direktori inode di sini adalah bagaimana Anda melakukannya -

1) buka debugfs dengan hdd Anda. Saya menemukan milik saya di / dev / disks / by-id / ..

debugfs ATA-434 ... blalbalba

lalu ketik cat <inode number>

atau cat filename

atau dump <inode number> outfile

dan Anda akan mendapatkan data inode itu!

Tapi tunggu! Bukan itu!

inode sebenarnya tidak mengandung data. Ini berisi pointer ke data (nomor blok). Apa yang sebenarnya berisi inode adalah mode file, atribut, pemilik, grup, ukuran, tautan, dan banyak lagi! Hal yang bagus? Kita dapat menggunakan debugfs tidak hanya untuk melihat data itu, tetapi juga untuk memodifikasinya!

Inilah cara Anda melakukannya!

1) buka debugfs dalam mode tulis debugfs -w ATA4249...blalbla

2) buka inode dalam mode ubah dan ubah / lihat semua bidang yang kamu suka

mi <inode number>

Itu dia!

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.