2009-05-08 18 views
6

Ứng dụng của chúng tôi sử dụng một thành phần yêu cầu tệp giấy phép trong thư mục có tệp thực thi của chúng tôi, điều này xảy ra là ứng dụng .NET WinForms mặc dù tôi cho rằng nó không quan trọng đối với câu hỏi này. Khi được cài đặt trên một số máy XP Pro (chỉ ba trong số vài trăm cho đến nay), thành phần này ném một ngoại lệ giấy phép. Vì vậy, tôi đã tạo lại tệp giấy phép và gửi cho nhà cung cấp thành phần (EMC Captiva), nơi nhà cung cấp xác nhận lỗi là do nhóm "Người dùng" không có quyền đọc trên tệp. Người dùng gặp lỗi xảy ra là quản trị viên cục bộ, nhưng đó là ngoài điểm vì tôi vẫn còn tò mò về câu hỏi tổng quát hơn. Vì vậy, câu hỏi của tôi là, ACL được lưu trữ trong một tệp sao cho chúng tuân theo tệp trong suốt cuộc đời, đặc biệt khi tệp giấy phép được tạo trên máy dev của tôi (máy 1), được lưu trữ trong Subversion (máy 2), được chọn ngoài tầm kiểm soát nguồn bởi TeamCity (máy 3), được đóng gói vào trình cài đặt bởi InstallShield (máy 4), và cuối cùng được triển khai tới máy của khách hàng (máy 5), nơi nó được cài đặt bởi một Quản trị viên? Còn sau khi tôi tạo tệp trên máy tính dev của tôi (máy 1), hãy tải tệp lên nhà cung cấp thành phần qua trang web hỗ trợ của họ (máy 2) và người hỗ trợ tải xuống máy của họ để kiểm tra (máy 3)?Windows lưu trữ ACL ở đâu và làm ACL theo một tệp từ máy này sang máy khác?

Tôi không biết điều này chắc chắn (đó là lý do tại sao tôi yêu cầu ở đây), nhưng tôi giả định mỗi máy Windows lưu trữ ACL trong một thư mục/danh sách/bảng điều khiển trung tâm do NTFS quản lý thay vì được lưu trữ trong tệp. Điều gì xảy ra với ACL của tệp gốc khi nó được sao chép từ máy này sang máy khác, được lưu trữ trong Subversion, được đóng gói vào MSI, v.v.? Ai đó có thể chỉ cho tôi một số tài liệu tham khảo tốt nơi tôi có thể đọc về điều này?

+0

Bạn đang cố gắng làm gì? Điều gì sẽ đóng gói ACL vào một gói MSI là tốt cho? Bạn không thể kiểm soát những gì mọi người làm với một tập tin một khi nó rời khỏi máy tính của riêng bạn, nếu đó là những gì bạn có trong tâm trí. – Tomalak

+1

Như tôi đã nói: ACL là * không phải là một phần của tệp *. TortoiseSvn thậm chí không thể nhìn thấy ACL. – Tomalak

+0

Đó là những gì các nhà cung cấp thành phần dường như được đề xuất, nhưng tôi không mua nó. – flipdoubt

Trả lời

13

ACL được lưu trữ trong một phần của phân vùng NTFS thực hiện tất cả hệ thống ống nước nền - MFT (Bảng tệp chính).

ACL không theo dõi tệp, vì nó không phải là một phần của tệp (giống như tên tệp là siêu dữ liệu). Các tập tin có thể vượt qua ranh giới loại phân vùng (NTFS-> FAT), ACL không thể.

Bây giờ nếu bạn di chuyển một tệp trong một phân vùng NTFS, bạn có thể có ấn tượng rằng ACL thực sự theo dõi tệp. Điều này là do trong quá trình di chuyển, chỉ tên tệp trong MFT mới thực sự thay đổi. Mọi thứ khác vẫn như cũ.

Nếu bạn sao chép tệp hoặc di chuyển tệp sang phân vùng hoặc máy tính khác (thực tế là thao tác sao chép + xóa), tệp được sao chép sẽ mặc định thừa kế quyền của vùng chứa mới (chỉ những người thừa kế, chính xác)). Tuy nhiên, có những công cụ có khả năng giữ lại ACL của một tập tin sau một thao tác sao chép (đơn giản bằng cách tạo lại nó trên tệp đích sau thao tác sao chép) ngay cả trên phân vùng hoặc ranh giới máy tính. xcopy có thể làm điều đó, trong số những người khác.

Nhưng vì ACL có thể chứa SID được "sở hữu tên miền", mục nhập ACL có thể không thực sự có ý nghĩa đối với máy tính mục tiêu không thuộc cùng một tên miền (ví dụ: khi mang về nhà ổ USB định dạng NTFS). Trong trường hợp đó, mục nhập ACL sẽ không có hiệu lực.

Các SID khác "nổi tiếng", như SID "HỆ THỐNG". Đây sẽ thực sự được công nhận trên các biên giới miền.

+0

+1 Bạn đã nói chính xác những gì tôi định nói .. :) – RobS

+0

Vì vậy, bạn đồng ý rằng nhà cung cấp thành phần cung cấp cho tôi hỗ trợ có lẽ không nhìn thấy cùng ACL mà người dùng nhìn thấy trên máy đích của mình, phải không? Ngoài ra, bạn có thể đề xuất một số tài nguyên trực tuyến mà tôi có thể đọc thêm về những gì bạn đã nói không? – flipdoubt

+1

Tổng quan: http://www.pcguide.com/ref/hdd/file/ntfs/secAccess-c.html – RobS

Các vấn đề liên quan