Tôi đã giải thích điều này trong một bài đăng trên blog http://think-like-a-computer.com/2011/07/24/moving-files-on-the-same-ntfs-volume-does-inherit-permissions/ nhưng nó cũng được giải thích dưới đây.
Khi một tệp được sao chép, nó phải tạo một tệp hoàn toàn mới và gán cho nó một bộ quyền mới, để nó có được các quyền từ thư mục mẹ như bạn biết.
Khi một tệp được chuyển sang ổ đĩa khác, điều thực sự xảy ra là nó được sao chép sang ổ đĩa mới và tập tin cũ sẽ bị xóa. Vì vậy, quá trình tương tự được lặp lại như trên vì nó là một tệp mới một lần nữa và cần thiết lập quyền.
Khi tệp được di chuyển trong cùng một ổ đĩa, không có gì thực sự xảy ra (ở cấp độ đĩa). Nó chỉ thay đổi vị trí đường dẫn logic của tệp. Dữ liệu thực tế và tệp vật lý trên đĩa chưa được chạm hoặc thay đổi. Bạn có bao giờ nhận thấy khi bạn di chuyển tệp 5 GB sang thư mục khác trên cùng ổ đĩa, nó được thực hiện gần như ngay lập tức? Đây là lý do tại sao, vì nó thực sự không di chuyển nhưng con trỏ đến nơi tệp tồn tại một cách hợp lý đã thay đổi. Vì nó không được sửa đổi theo bất kỳ cách nào, các quyền cũng không thay đổi.
Đây là lý do cho hành vi này.
Chỉnh sửa: Một cái gì đó tôi quên đề cập đến ... Bài viết MS không hoàn toàn chính xác. Báo giá của MS:
Theo mặc định, một đối tượng kế thừa các quyền từ đối tượng mẹ của nó, tại thời điểm tạo hoặc khi nó được sao chép hoặc di chuyển đến thư mục mẹ của nó. Ngoại lệ duy nhất cho quy tắc này xảy ra khi bạn di chuyển một đối tượng sang một thư mục khác trên cùng một ổ đĩa. Trong trường hợp này, các quyền ban đầu được giữ lại.
Báo giá trên chỉ áp dụng cho các đối tượng đã được cấp quyền EX được xác định TUYỆT VỜI (tắt tính kế thừa). Như đã đề cập trong các bình luận của tôi, tất cả là về việc giữ các mục ACL hiệu quả nhất có thể. Hãy xem xét ví dụ sau:
Để giữ cho lời giải thích đơn giản, giả sử bạn có một thư mục được đặt để chỉ cho phép người dùng sửa đổi quyền. Bên dưới này, có hàng ngàn tệp và không ai trong số chúng có quyền rõ ràng được đặt. Sẽ không hiệu quả lắm khi tạo ACL cho mỗi tệp vì chúng chính xác là cùng một phép cho phép nó đặt MỘT mục nhập ACL cho thư mục. Bit tiếp theo này là rất quan trọng để hiểu; bản thân các tệp KHÔNG CÓ PERL ACMS. Vì vậy, khi bạn di chuyển bất kỳ tệp nào trong số này vào một thư mục mới trong cùng một ổ đĩa, MS sẽ yêu cầu các perm di chuyển với nó (như trích dẫn ở trên). Hãy tự hỏi mình .... làm thế nào? Không có perm trên tập tin ở nơi đầu tiên để di chuyển qua. Điều này thực sự không chính xác và tôi chỉ kiểm tra nó ngay bây giờ để xác nhận nó. Giả sử thư mục đích bạn đang di chuyển tệp có các perm cho phép chỉ cho phép mọi người sửa đổi quyền. Vì tệp không có ACL trực tiếp nên nó thừa hưởng ACL của thư mục mẹ. Điều này có nghĩa là perms đã thay đổi từ người dùng sửa đổi (thư mục cũ) sang mọi người sửa đổi (thư mục mới).
Chú ý sự khác biệt?? Lần này, việc di chuyển một tập tin sang một thư mục khác trong cùng một tập thực sự đã thay đổi các perm, điều mà MS nói là không làm được. Có phải tôi đã tìm thấy một lỗi trong tài liệu MS từ năm 2000 lol ??
Bây giờ hãy nhìn vào kịch bản tương tự khi sử dụng quyền rõ ràng. Nếu bạn đặt quyền rõ ràng trên một tệp trong thư mục này (tắt tính kế thừa), ví dụ, từ chối người dùng đọc quyền truy cập, thì bây giờ nó sẽ tạo một mục ACL MỚI dành riêng cho tệp này. Bây giờ khi bạn di chuyển tệp đến một vị trí mới, nó có mục ACL liên quan trực tiếp đến nó. Trong trường hợp này, di chuyển một tệp đến một vị trí mới trong cùng một khối lượng RETAINS quyền của nó (như MS tuyên bố)!