2016-03-18 5 views
5

Можно ли открыть файл, зная его inode?Открыть файл inode

ls -i /tmp/test/test.txt 
529965 /tmp/test/test.txt 

Я могу предоставить путь, индексный дескриптор (выше 529965), и я ищу, чтобы получить взамен дескриптора файла.

+0

Возможный дубликат [Почему файлы не могут обрабатываться inode?] (Http://stackoverflow.com/questions/4606774/why-cant-files-be-manipulated-by-inode) – zwol

ответ

8

Это невозможно, потому что это откроет лазейку в правилах контроля доступа. Независимо от того, можете ли вы открыть файл, зависит не только от его собственных битов доступа, но и от битов разрешений каждой содержащей директории. (Например, в вашем примере, если test.txt были в режиме 644, но содержащий каталог test был режимом 700, тогда только root и владелец test мог открыть test.txt.) Номера inode идентифицируют только файлы, а не содержащие каталоги (это возможно для файл находится в нескольких каталогах, читайте «жесткие ссылки»), поэтому ядро ​​не может выполнить полный набор проверок управления доступом только с номером inode.

(Некоторые версии Unix предлагают нестандартные API-интерфейсы только для root, чтобы открыть файл по номеру inode, минуя некоторые правила управления доступом, но если в текущем Linux есть такой API, я не знаю об этом.)

+0

Может быть связано: http://stackoverflow.com/a/31432662/544721 –

Смежные вопросы