是否可以打開一個知道其inode的文件?通過inode打開文件
ls -i /tmp/test/test.txt
529965 /tmp/test/test.txt
我可以提供路徑,inode(大於529965),我期待得到一個文件描述符。
是否可以打開一個知道其inode的文件?通過inode打開文件
ls -i /tmp/test/test.txt
529965 /tmp/test/test.txt
我可以提供路徑,inode(大於529965),我期待得到一個文件描述符。
這是不可能的,因爲這會在訪問控制規則中造成漏洞。您是否可以打開文件不僅取決於自己的訪問權限位,還取決於每個包含目錄的權限位。 (例如,在您的示例中,如果test.txt
爲模式644,但包含的目錄test
爲模式700,則只有root
和test
的所有者可以打開test.txt
。)索引節點編號僅標識文件,而不包含包含的目錄一個文件位於多個目錄中;在「硬鏈接」上進行讀取),以便內核不能僅使用inode編號執行一組完整的訪問控制檢查。 (一些Unix實現已經提供了非標準的純根APIs來通過inode編號打開一個文件,繞過了一些訪問控制規則,但是如果當前的Linux有這樣的API,我就不知道了。)
可能相關: http://stackoverflow.com/a/31432662/544721 –
可能重複[爲什麼不能通過inode操作文件?](http://stackoverflow.com/questions/4606774/why-cant-files-be-manipulated-by-inode) – zwol