Можно ли открыть файл, зная его inode?Открыть файл inode
ls -i /tmp/test/test.txt
529965 /tmp/test/test.txt
Я могу предоставить путь, индексный дескриптор (выше 529965), и я ищу, чтобы получить взамен дескриптора файла.
Можно ли открыть файл, зная его inode?Открыть файл inode
ls -i /tmp/test/test.txt
529965 /tmp/test/test.txt
Я могу предоставить путь, индексный дескриптор (выше 529965), и я ищу, чтобы получить взамен дескриптора файла.
Это невозможно, потому что это откроет лазейку в правилах контроля доступа. Независимо от того, можете ли вы открыть файл, зависит не только от его собственных битов доступа, но и от битов разрешений каждой содержащей директории. (Например, в вашем примере, если test.txt
были в режиме 644, но содержащий каталог test
был режимом 700, тогда только root
и владелец test
мог открыть test.txt
.) Номера inode идентифицируют только файлы, а не содержащие каталоги (это возможно для файл находится в нескольких каталогах, читайте «жесткие ссылки»), поэтому ядро не может выполнить полный набор проверок управления доступом только с номером inode.
(Некоторые версии Unix предлагают нестандартные API-интерфейсы только для root, чтобы открыть файл по номеру inode, минуя некоторые правила управления доступом, но если в текущем Linux есть такой API, я не знаю об этом.)
Может быть связано: http://stackoverflow.com/a/31432662/544721 –
Возможный дубликат [Почему файлы не могут обрабатываться inode?] (Http://stackoverflow.com/questions/4606774/why-cant-files-be-manipulated-by-inode) – zwol