Ist es möglich, eine Datei zu öffnen, die ihren Inode kennt?Datei durch Inode öffnen
ls -i /tmp/test/test.txt
529965 /tmp/test/test.txt
Ich kann Pfad, Inode (über 529965) zur Verfügung stellen, und ich suche im Gegenzug einen Dateideskriptor.
Ist es möglich, eine Datei zu öffnen, die ihren Inode kennt?Datei durch Inode öffnen
ls -i /tmp/test/test.txt
529965 /tmp/test/test.txt
Ich kann Pfad, Inode (über 529965) zur Verfügung stellen, und ich suche im Gegenzug einen Dateideskriptor.
Dies ist nicht möglich, da dies eine Lücke in den Zugriffskontrollregeln öffnen würde. Ob Sie eine Datei öffnen können, hängt nicht nur von eigenen Zugriffsberechtigungsbits ab, sondern auch von den Berechtigungsbits jedes enthaltenden Verzeichnisses. (Wenn in Ihrem Beispiel test.txt
Modus 644 wäre, aber das enthaltende Verzeichnis test
Modus 700 wäre, könnten nur root
und der Besitzer test
test.txt
öffnen.) Inode-Nummern identifizieren nur die Datei, nicht die enthaltenen Verzeichnisse (es ist möglich für Eine Datei, die sich in mehr als einem Verzeichnis befindet, lesen Sie unter "Hardlinks" nach, damit der Kernel keine vollständigen Zugriffskontrollprüfungen mit nur einer Inode-Nummer durchführen kann.
(Einige Unix-Implementierungen haben nicht-standardmäßige root-only-APIs angeboten, um eine Datei nach Inode-Nummer zu öffnen, wobei einige der Zugriffskontrollregeln umgangen werden, aber wenn das aktuelle Linux eine solche API hat, weiß ich nichts davon.)
Kann verwandt sein: http://stackoverflow.com/a/31432662/544721 –
Mögliche Duplikate von [Warum können Dateien nicht von Inode manipuliert werden?] (Http://stackoverflow.com/questions/4606774/why-cant-files-be-manipulated-by-inode) – zwol