2016-03-18 22 views
5

İnode'yi bilen bir dosya açmak mümkün mü?Dosyayı inode ile açın

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

I (529965 üstünde) yolunu, düğüm sağlayabilir ve ben içeri bir dosya tanıtıcı dönmek için arıyorum.

+0

Olası kopyası [Neden inode tarafından dosyalar neden değiştirilemez?] (Http://stackoverflow.com/questions/4606774/why-cant-files-be-manipulated-by-inode) – zwol

cevap

8

Bu, erişim denetimi kurallarında boşluk bırakacağı için mümkün değildir. Bir dosyayı açıp açamayacağınız, sadece 'un kendi erişim izin bitlerine değil, her bir dizinin izin bitlerine bağlıdır. (Örneğin, örneğinizde, test.txt modu 644 ancak test dizinini içeren dizinve test'un sahibi test.txt'u açabilir.) Inode sayıları yalnızca dosyayı içeren dizinleri değil, dosyayı tanımlar. Bir dosya birden fazla dizinde bulunacak, "sabit linkler" üzerinde okunacaktır, böylece çekirdek sadece bir inode numarasıyla komple bir kontrol kontrol seti gerçekleştiremez.

(Bazı Unix uygulamaları, yalnızca bir inode numarasıyla bir dosya açmak için standart dışı yalnızca root'lar sunmuştur, ancak bazı erişim denetimi kurallarını atlayarak, ancak geçerli Linux'ta böyle bir API varsa, bunu bilmiyorum.)

+0

İlişkili olabilir: http://stackoverflow.com/a/31432662/544721 –

İlgili konular