Quyền NTFS - Tạo tệp và thư mục nhưng ngăn xóa và sửa đổi


10

Mục tiêu: Một thư mục dùng chung mà người dùng có thể tạo tệp nhưng không sửa đổi hoặc xóa chúng. Người dùng cũng có thể tạo các thư mục con.

Tôi đã cấp cho nhóm bảo mật của mình các quyền NTFS tiên tiến sau:

  • Thư mục Traverse / Thực thi tập tin
  • Danh sách thư mục / đọc dữ liệu
  • Đọc thuộc tính
  • Đọc thuộc tính mở rộng
  • Tạo tập tin / ghi dữ liệu
  • Đọc quyền

Thông qua quá trình dùng thử và lỗi, tôi đã thấy rằng bằng cách KHÔNG cấp 'Ghi thuộc tính', điều này có tác dụng ngăn người dùng sửa đổi / xóa các tệp hiện có (đó là điều tôi muốn). Tuy nhiên, tôi thực sự muốn một lời giải thích về chính xác lý do tại sao điều này hoạt động. Lý thuyết duy nhất tôi có là việc xóa / sửa đổi một tập tin thay đổi các thuộc tính của tập tin? Đây là một cuộc thảo luận cùng dòng .

EDIT - Phần thứ hai trong câu hỏi của tôi là không liên quan, tôi nghĩ rằng tôi chỉ chọn 'Tạo tệp / ghi dữ liệu' nhưng tôi cũng đã chọn 'Tạo thư mục / chắp thêm dữ liệu'.

Hơn nữa, tôi muốn người dùng có thể tạo các thư mục con trong thư mục gốc và tôi đã thấy rằng bằng cách cấp 'Tạo tệp / ghi dữ liệu', điều này cho phép điều đó. Nhưng một lần nữa, tên cho thấy quyền này chỉ cho phép tạo tệp chứ không phải thư mục, vì vậy tôi không hiểu tại sao nó hoạt động? Bản khai báo của Microsoft thuộc tính 'Tạo tệp / ghi dữ liệu' là "Đối với các thư mục, chỉ định xem người dùng có thể tạo tệp trong thư mục hay không. Đối với tệp, chỉ định liệu người dùng có thể thay đổi tệp hoặc ghi đè dữ liệu hay không." Không có đề cập đến khả năng tạo các thư mục con trong một thư mục?

Về cơ bản, tôi đã đạt được những gì tôi đặt ra nhưng không hiểu tại sao nó hoạt động?


Nội dung của tệp NTFS là "thuộc tính"; cụ thể là thuộc tính dữ liệu không tên mặc định và có lẽ một hoặc nhiều thuộc tính dữ liệu được đặt tên.
kreemoweet

Cũng xem câu trả lời tốt ở đây: superuser.com/a/1145363/132727
CrazyTim

Câu trả lời:


7

Thông qua quá trình dùng thử và lỗi, tôi đã thấy rằng bằng cách KHÔNG cấp 'Ghi thuộc tính', điều này có tác dụng ngăn người dùng sửa đổi / xóa các tệp hiện có (đó là điều tôi muốn). Tuy nhiên, tôi thực sự muốn một lời giải thích về chính xác lý do tại sao điều này hoạt động.

Đây là một chức năng chính xác làm thế nào sửa đổi tập tin xảy ra. Khi bạn sửa đổi một tệp, hệ điều hành không thực sự sửa đổi tệp bạn đang chỉnh sửa. Nó thay thế tệp bạn đang chỉnh sửa bằng bản sao bạn đã thay đổi. Vì vậy, về cơ bản, sửa đổi tệp sẽ lấy một bản sao của tệp gốc, tải nó vào bộ nhớ (nơi bạn sửa đổi nó), xóa tệp gốc và tạo một tệp mới có cùng tên ở cùng một nơi. Đây là lý do tại sao Deletequyền NTFS được yêu cầu để sửa đổi tệp - trên thực tế, nếu bạn kiểm tra Advanced permissionstrên đối tượng NTFS, không có Modifyquyền - một sửa đổi thực sự chỉ là xóa và ghi.

Vì vậy, để tạo bản sao mới của tệp đó, nó phải ghi các thuộc tính tệp của tệp mới này ... và tất nhiên, các thuộc tính ghi yêu cầu phải có Write attributesquyền NTFS. Vì vậy, đó là lý do tại sao bạn không thể sửa đổi tệp mà không có Write attributesquyền NTFS.

Cụ thể, nhờ trò chuyện với Fitzroy , thuộc tính tệp NTFS cần được ghi trong ngữ cảnh bảo mật của người dùng (không thể, nếu không có sự Write Attributescho phép), khi sửa đổi tệp, nhưng không phải khi tạo tệp hoàn toàn mới, sẽ là tập tin của LastModificationTime. Đây là một phần của Standard Informationthuộc tính, theo một trong những nhà phát triển Microsoft Core Team .


1
"Đây là lý do tại sao các quyền xóa NTFS được yêu cầu để sửa đổi các tệp - thực tế, nếu bạn kiểm tra các quyền Nâng cao trên đối tượng NTFS, không có quyền Sửa đổi - một sửa đổi thực sự chỉ là xóa và ghi." Bạn có thể hỗ trợ điều đó với bất kỳ sự kiện hoặc tài liệu tham khảo? Bởi vì qua thử nghiệm thêm, tôi đã phát hiện ra rằng để sửa đổi nội dung của tệp văn bản đơn giản (sử dụng notepad), tôi chỉ cần thêm các quyền sau: Viết thuộc tính, Viết thuộc tính mở rộng và Tạo thư mục / Nối dữ liệu. Tôi chấp nhận rằng các chương trình khác nhau có thể thể hiện hành vi khác nhau khi sửa đổi tệp ...
Fitzroy

... tuy nhiên, tôi nghĩ thử nghiệm này chứng minh rằng 'Xóa' là không bắt buộc.
Fitzroy

"Đây là chức năng chính xác cách thức sửa đổi tệp xảy ra. Khi bạn sửa đổi tệp, hệ điều hành không thực sự sửa đổi tệp bạn đang chỉnh sửa. Nó thay thế tệp bạn đang chỉnh sửa bằng bản sao bạn đã thay đổi. Vì vậy, về cơ bản, sửa đổi tệp sẽ lấy một bản sao của tệp gốc, tải nó vào bộ nhớ (nơi bạn sửa đổi nó), xóa tệp gốc và tạo một tệp mới có cùng tên ở cùng một nơi. " - là uhh, khá sai lệch và không chính xác ở nhiều cấp độ kỹ thuật khác nhau .
dùng2864740

3

Đó là sự thật: không có quyền 'Ghi thuộc tính' dẫn đến việc người dùng không thể sửa đổi các tệp của nó. Và theo tài liệu của Microsoft, nó không có ý nghĩa. Nhưng sửa đổi một tập tin không có nghĩa là xóa và giải trí của nó. Khi một ứng dụng mở tệp để sửa đổi, hệ điều hành sẽ không xóa tệp. Nhưng, những gì HĐH làm là khóa tệp để ngăn sửa đổi đồng thời. Tôi đoán là việc khóa tệp nằm trong khái niệm 'thay đổi thuộc tính tệp'. Do đó, việc không thể thay đổi thuộc tính dẫn đến việc không thể sửa đổi tệp.

Đối với phần thứ hai của câu hỏi của bạn, tôi không thể tái tạo điều đó. Có hai quyền khác nhau áp dụng cho một thư mục: 'Tạo tệp / ...' và 'Tạo thư mục / ...' và chúng hoạt động theo tài liệu trong các thử nghiệm của tôi.


Drk - Chỉ cần tiêu hóa câu trả lời của bạn. FYI - Tôi đã bỏ qua một sự cho phép trong câu hỏi của mình, tôi cũng nên liệt kê 'Đọc các thuộc tính mở rộng'. Nếu không có sự cho phép này, tôi đã thấy rằng người dùng không thể xem nội dung của tệp (họ nhận được lỗi 'Truy cập bị từ chối'). Tôi đã cập nhật câu hỏi của tôi cho phù hợp.
Fitzroy

Ok, đối với bài kiểm tra của tôi, tôi cho rằng bạn cũng đã cấp quyền đó. Tôi thấy rằng notepad không thể sửa đổi một tập tin ngay cả khi được cấp quyền '... / ghi dữ liệu'. Đây là một điều đáng chú ý: ghi dữ liệu so với cấp phép dữ liệu phụ thuộc vào cách ứng dụng của bạn mở tệp để sửa đổi. Hầu hết các notepad có thể mở các tệp để nối thêm dữ liệu, ngay cả khi không cần thiết.
drk.com.ar

Đối với phần thứ hai của câu hỏi của bạn, tôi không thể tái tạo điều đó. Có hai quyền khác nhau áp dụng cho một thư mục: 'Tạo tệp / ...' và 'Tạo thư mục / ...' và chúng hoạt động theo tài liệu trong các thử nghiệm của tôi. Bạn hoàn toàn đúng, tôi nhầm, tôi nghĩ rằng tôi chỉ chọn 'Tạo tệp / ghi dữ liệu' nhưng tôi cũng đã chọn 'Tạo thư mục / chắp thêm dữ liệu'.
Fitzroy
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.