Bir üst öğenin ACL'sini değiştirirken Windows neden tüm NTFS alt nesnelerini işler?


10

Bir üst öğenin ACL'sini değiştirirken Windows neden tüm NTFS alt nesnelerini işler?

“Tüm alt nesne izinlerini değiştir ...” kutusunu işaretlemiş olsaydım bu davranışı beklerdim, ancak bu kutu işaretlenmemiş olsa bile, Windows tüm çocukları işleyecektir.


Bu kabuk tarafından yapılmazsa @Ben kalıtsal izinler çağlayan, çünkü gerekir tüm alt çoğaltılması devralır etkinleştirilmiş doğrudan Windows API çağrılırken bile yapılmalıdır, böylece nesneleri. Bilginize: İzinler performans nedenleriyle çoğaltılır.
Andreas

Yanıtlar:


10

Windows'da dosya izinleri dinamik olarak devralınmaz. Yani, bir dosyayı açma girişiminde bulunulduğunda, Windows dosyayı içeren ağacın dizinlerinin ACL'lerine değil, yalnızca o dosyanın ACL'sine bakar. Bu, bir dizinin ACL'sini değiştirdiğinizde, Windows'un etkilenen dizindeki tüm dosyaların ve alt dizinlerin izinlerini hemen güncelleştirmesi gerektiği anlamına gelir.

Windows'ta bir ACL'deki devralma ayarı herhangi bir dinamik devralma biçimini göstermez. Üst yöneticinin EKL'si değiştirildiğinde, devralma bayrağını ayarlayan ağaçtaki tüm dosyaların ve alt dizinlerin de güncellenmesi gerektiğini gösteren bir işarettir.

Novell NetWare'i hatırlayacak kadar yaşlı olanlar, bunun NetWare'den büyük farklılıklardan biri olduğunu hatırlayacaktır çünkü NetWare'de izinlerin devralınması dinamikti (?). Tarih, konuyu tartışmaya açsa da, hangi yaklaşımın daha iyi olduğu konusunda çok fazla tartışma vardı. Dinamik ACL'ler, işletim sisteminin dosyayı açmaya çalışıldığında her üst dizinin ACL'lerini kontrol etmesini gerektirir, ancak ACL'leri değiştirmek hızlıdır. Windows açılış dosyasında yalnızca tek bir ACL'nin denetlenmesi gerekir, ancak bulduğunuz gibi bir dizin ACL'sini değiştirmek yavaş olabilir.


1
Bu çok mantıklı. ACL'ler yazıldıklarından çok daha fazla okunur, bu nedenle daha hızlı okuma erişimi için "miras alınan değer" in önbelleğe alınması daha nadir yazma kullanım durumunda daha karmaşık olma pahasına olur.
Alexander - Monica'yı eski

@Alexander: Anlamadığım şey, bu karmaşıklığın neden son kullanıcıya maruz kalması gerektiğidir. Neden yalan söylemeyin ve son kullanıcıya "dinamik" olduğunu söyleyin, ama işleri dahili olarak önbelleğe alın?
Kevin

@Kevin - izinlerin yayılması biraz zaman alabileceğinden ve bu süre zarfında izinlerin uygulanması beklediğiniz gibi olmayabilir mi?
davidbak

13

Üst nesneden izinlerini devralacak şekilde yapılandırılmış alt nesnelerin işlenmesi gerekir. Alt nesneler üzerinde açıkça tanımlanmış izinler etkilenmez.

“Tüm alt nesnelerdeki izinleri değiştir” seçeneği yalnızca izinleri tüm alt nesnelere yaymaz, aynı zamanda tüm alt nesnelerdeki açıkça tanımlanmış izinleri de kaldırır ve değiştirir.


5

Varsayılan olarak, alt klasörler izinleri üst klasörden devralır. Üst klasöre (bu klasör, alt klasörler ve dosyalar) izin eklerken / değiştirirken varsayılan kapsam varsayılırsa, tüm alt klasörler üst öğedeki izin değişikliklerini yansıtacak şekilde güncellenir.

Bahsettiğiniz onay kutusu, tüm alt klasörlerde açıkça tanımlanmış tüm izinleri kaldıracak ve bunları üst öğeden devralınabilen izinlerle değiştirecek ve alt klasörlerde izin devralmayı yeniden etkinleştirecek "bir defalık" işlemdir.

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.