Greifen Sie auf die Datei über ihre ID zu und ändern Sie die Dateiattribute

7608
0xDEAD BEEF

Genau wie jede Datei haben auch Verzeichnisse die Datei-ID. Sie können sie durch Eingabe sehen

ls -i 
  1. Wie zeige ich den Dateiinhalt anhand seiner ID an?

  2. Wie kann ich das Verzeichnisattribut in eine Datei ändern (D entfernen) und umgekehrt!

3
"Inode", nicht "ID". Ignacio Vazquez-Abrams vor 14 Jahren 1

3 Antworten auf die Frage

2
harrymc

inode to filename:

find / -inum <number> 

Converting a directory to a file is impossible.

For information about directory internal data, see dirent.h.

You can also consult the GNU C Library as regarding Accessing Directories .

Ich möchte sehen, was ist ein Verzeichnis, wie es in Linux-System gespeichert ist. find / -inum ist sicher nicht das, wonach ich strebe 0xDEAD BEEF vor 14 Jahren 0
@ 0xDEAD BEEF: Ich habe ein paar weitere Informationen hinzugefügt, die als Ausgangspunkt dienen können. Dies sind fortgeschrittene Linux-Themen, für die ein echtes Studium erforderlich ist. harrymc vor 14 Jahren 0
Ich erinnere mich an alte Zeiten, als ich Informationen bearbeiten konnte, die in einem Hard- oder Softlink gespeichert waren. So konnte ich zum Beispiel auf Verzeichnisknoten zugreifen. also Link zu Datei mit Inode zu Verzeichnis. Aber heute habe ich all diese Magie vergessen .. :( 0xDEAD BEEF vor 14 Jahren 0
1
Stefan Lasiewski

Sounds like the data you are looking for is in the filesystem. The answer to your question depends on which filesystem you are using. I'll assume you are using ext3.

For advanced ability to view and modify data in the filesystem, see the debugfs(8). But careful, you could really corrupt things with this tool. This is a good opportunity to use a Virtual Machine with snapshots (Like I recommended here). Take a snapshot, and then modify the filesystem as much as you want. You can always restore the VM from an earlier snapshot.

Großartig! Ich habe debugfs / dev / disk / by-id / .. verwendet und dann den Befehl cat ausgegebenund bekam den Inhalt von Inode! An diesem Punkt wurde ich jedoch verwirrt - ich habe keine Dateieigenschaften in Inode gesehen. Nur Daten. Dann tat ich dasselbe für das Verzeichnis, aber es enthielt auch keine Dateieigenschaften. Die Frage ist also - wo werden die Dateieigenschaften dann gespeichert? 0xDEAD BEEF vor 14 Jahren 0
OK! gelöst Debugfs mi (Inode ändern) verwendet, bevor debugws mit dem Parameter -w geöffnet wurde. Mit diesem Befehl kann ich den Inode ändern, während cat und dump nur Daten abrufen, auf die der Inode zeigt! Das hat total Spaß gemacht! 0xDEAD BEEF vor 14 Jahren 0
Lieliski !. Und das ist fortgeschrittenes Zeug. Seltsamerweise habe ich das selten in meiner Karriere gemacht (ich mache das seit fast 13 Jahren), außer als ich mir selbst Linux unterrichtete. Jetzt ist es Zeit wieder zu lernen. Stefan Lasiewski vor 14 Jahren 0
0
0xDEAD BEEF

-- solution and how stuff works -- So - inode is the thing to which every directory has record to. In fact - each directory is file, which contains list of file names and corresponding inode numbers for them,

So - if you want to see, what is inside directory inode here is how you do it -

1) open debugfs with your hdd. I found mine under /dev/disks/by-id/..

debugfs ATA-434...blalbalba

then typecat <inode number>

orcat filename

ordump <inode number> outfile

and you will get data of that inode!

But wait! That is not it!

inode actualy contians no data. It contains pointers to data (block numbers). What inode actualy contains is file mode, attributes, owner, group, size, links and many more! Nice thing? We can use debugfs not only to see that data, but also to modify it!

Here is how you do it!

1) open debugfs in write mode debugfs -w ATA4249...blalbla

2) open inode in modify mode and modify/see all fields you like

mi <inode number>

Thats it!