Bunu bir blog yazısında http://think-like-a-computer.com/2011/07/24/moving-files-on-the-same-ntfs-volume-does-inherit-permissions/ açıkladım ama ayrıca aşağıda açıklanmıştır.
Bir dosya kopyalandığında, yepyeni bir dosya oluşturması ve ona yeni bir izin kümesi ataması gerekir, böylece bildiğiniz gibi üst klasörden izinleri alır.
Bir dosya başka bir birime taşındığında, gerçekte yeni birime kopyalanması ve eski dosyanın silinmesidir. Bu yüzden aynı işlem tekrar yeni bir dosya olduğundan ve izinlerin ayarlanması gerektiğinden yukarıdaki gibi tekrarlanır.
Dosya aynı birim içinde taşındığında, hiçbir şey olmuyor (disk düzeyinde). Yalnızca dosyanın mantıksal yol konumunu değiştirir. Diskteki gerçek verilere ve fiziksel dosyaya dokunulmamış veya değiştirilmemiştir. 5GB dosyasını aynı sürücüdeki başka bir klasöre taşıdığınızda fark ettiniz mi, neredeyse anında yapılıyor mu? Bu nedenle, aslında hareket etmedi, ancak mantıksal olarak dosyanın bulunduğu işaretçi değişti. Hiçbir şekilde değiştirilmediğinden, izinler de değişmez.
Bu davranışın nedeni budur.
Düzenleme: Bahsetmeyi unuttuğum bir şey ... MS makalesi tamamen doğru değil. MS teklifi:
Varsayılan olarak, bir nesne, oluşturma sırasında veya üst klasörüne kopyalandığında veya taşındığında izinleri üst nesnesinden devralır. Bir nesneyi aynı birimdeki farklı bir klasöre taşıdığınızda bu kuralın tek istisnası oluşur. Bu durumda, orijinal izinler korunur.
Yukarıdaki alıntı yalnızca AÇIK olarak tanımlanmış sn izinleri verilen nesneler için geçerlidir (devralmayı kapat). Yorumlarımda belirtildiği gibi, ACL girişlerini mümkün olduğunca verimli tutmakla ilgilidir. Aşağıdaki örneği düşünün:
Açıklamayı basit tutmak için, kullanıcıların yalnızca hakları değiştirmesine izin verecek şekilde ayarlanmış bir klasörünüz olduğunu varsayalım. Bunun altında binlerce dosya var ve hiçbirinin açık izinleri yok. Her dosya için aynı izinlere sahip oldukları için ACL'ler oluşturmak çok verimli değildir, bu nedenle klasör için ONE ACL girişi ayarlar. Bir sonraki bitin anlaşılması çok önemlidir; dosyaların kendilerinde ACL PERMS YOK. Bu dosyalardan herhangi birini aynı birimde yeni bir klasöre taşıdığınızda, MS izinlerin onunla birlikte hareket ettiğini iddia eder (yukarıdaki alıntıda olduğu gibi). Kendinize bunu sorun .... nasıl? İlk etapta dosya üzerinde hiçbir izin yoktu. Bu aslında yanlış ve onaylamak için şimdi test ettim. Dosyayı taşıdığınız hedef klasörün, herkes grubunun yalnızca hakları değiştirmesine izin verme izinlerine sahip olduğunu varsayalım. Dosyanın doğrudan ACL'si olmadığından, üst klasörün ACL'sini devralır. Bu, izinlerin kullanıcıların değiştirmesinden (eski klasör) herkesin değiştirmesine (yeni klasör) değiştiği anlamına gelir.
Farkı fark ettiniz mi ?? Bu sefer, bir dosyayı aynı birimdeki başka bir klasöre taşımak aslında izinleri değiştirdi, MS'in yapmadığı bir şey. Ben sadece 2000 lol beri MS belgelerinde bir hata buldunuz mu?
Şimdi açık izinleri kullanırken aynı senaryoya bakın. Örneğin, kullanıcıların okuma erişimini reddeden bu klasördeki bir dosyada (devralma kapalı) açık izinler ayarlarsanız, artık bu dosya için özel olarak YENİ bir ACL girişi oluşturur. Şimdi dosyayı yeni bir konuma taşıdığınızda, onunla doğrudan ilişkili bir ACL girişi var. Bu durumda, bir dosyayı aynı birimde yeni bir konuma taşımak izinlerini (MS'in iddia ettiği gibi) döndürür!