Ana dizinin izinleri bir alt dizine erişirken önemli midir?


160

Kısıtlayıcı izinleri olan bir kök klasörüm varsa, diyelim ki 600 ve alt klasörler / dosyalar 777 iznine sahipse, kök klasörde 600 olsa bile herkes alt dosyayı okuyabilir / yazabilir / yürütebilir mi?


12
Bir dizini 600'e chmoding yapmak, onu chdir etmek için sahibine bile erişilemez hale getirir, zira içine girme iznine ihtiyacınız var ...
Shadur

Yanıtlar:


183

Kesin kural şudur: Bir dizini, eğer sadece üzerinde izniniz varsa.

Bu nedenle, örneğin, erişmek için, istediğiniz erişim türüne ilişkin izinler ve ayrıca dir/subdir/fileizinler uygulamanız gerekir . Köşe davalarına girerken, bir dosyaya göreceli yoldan (Linux'ta yaptığınız) erişmek için geçerli dizinde geçerli bir dizine izin vermeniz gerekip gerekmediğinden emin değilim.dirdir/subdirfile

Bir dosyaya erişme biçiminiz önemlidir. Örneğin, açık /foo/barfakat açık olmayan /foo, ancak geçerli dizininizdeki yürütme izniniz /foo/barvarsa, dosyalara /foo/bargöreceli bir yoldan ancak mutlak bir yoldan erişemezsiniz . /foo/barBu senaryoda değiştirilemez ; cd /foo/barimtiyazsız gitmeden önce daha ayrıcalıklı bir süreç olduğu tahmin edilmektedir . Bir dosyada birden çok sabit bağlantı varsa, erişmek için kullandığınız yol erişim kısıtlamalarınızı belirler.

Sembolik bağlantılar hiçbir şeyi değiştirmez. Çekirdek, arama işleminin erişim haklarını kullanarak geçişi yapar. Örneğin sym, dizine sembolik bir link ise, erişim diriçin izin vermeniz gerekir . İşaret bağlantısının kendisi üzerindeki izinler işletim sistemine ve dosya sistemine bağlı olarak önemli olabilir veya olmayabilir (bazıları onlara saygı gösterir, bazıları onları görmezden gelir).dirsym/foo

Yürütme izninin kök dizinden kaldırılması, kullanıcıyı dizin ağacının bir bölümüne (daha ayrıcalıklı bir sürecin değişmesi gereken) etkili bir şekilde kısıtlar. Bu, erişim kontrol listelerinin herhangi bir kullanım olmasını gerektirir. Örneğin, eğer /ve /homesınırları kapalı olan joe( setfacl -m user:joe:0 / /home) ve /home/joebir joe'o zaman, ev dizinini joe(ile kabuk komut dosyalarını çalıştıran dahil sisteminin geri kalanına ulaşmak mümkün olmayacaktır /bin/sherişmeniz gereken bağlantılı ikilileri veya dinamik olarak /lib, size böylece' d pratik kullanım için daha derine inmeniz gerekir, örneğin setfacl -m user:joe:0 /*; setfacl -d user:joe /bin /lib).

Bir dizindeki okuma izni, girişlerin numaralandırılmasına izin verir. Okuma izni vermeden yürütme izni vermek zaman zaman kullanışlıdır: girişlerin adları onlara erişmek için parola görevi görür. Yürütme izni olmadan bir dizine okuma veya yazma izni vermenin herhangi bir kullanımı olduğunu düşünemiyorum.


32

Hayır. Kök klasör izni, alt dosya iznini sınırlar. Deneyebilirsin.

$ mkdir rootdir
$ touch ./rootdir/childfile
$ chmod 777 ./rootdir/childfile
$ chmod 600 rootdir
$ cat ./rootdir/childfile

Bunu anladım:

$ cat: ./rootfolder/childfile: permission denied

4

Alt dizini, üst dizini değil bile yazılabilir hale getirebilirsiniz. Bunu gruplar için yapıyorum.

Örneğin: parent dizini, grup kodlayıcıya aittir.

drwxr-sr-x

alt dizin

drwxrwsr-x

Siz (kodlayıcı grubunun herhangi bir üyesi) yine de alt dizine yazabilirsiniz, ancak üst dizine yazamazsınız.


1

Üst dizinde yürütme izniniz olmasa bile dosyaya erişmek için sabit bağlantı oluşturabilirsiniz. Ancak buradaki açıklama, üst dizinde yürütme ayrıcalığınızı kaybetmeden önce, sabit bağlantıyı oluşturmanız gerekir.

$ ln foo/bar/test_privs privs_test_checking
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.