Tại sao tôi có thể ghi các tập tin vào một thư mục chỉ đọc?


39

Tôi đã thử điều này trên cả Windows 7 và Windows XP. Khởi động Windows Explorer và tạo một thư mục mới ở một số vị trí tạm thời được gọi là (giả sử) NonWriteable. Nhấp chuột phải vào thư mục và đặt thuộc tính của thư mục thành Read-only.

Thư mục được đặt ở chế độ chỉ đọc

Bây giờ hãy mở thư mục và tạo một tệp .txt mới. Điều này được cho phép. Tại sao? Làm thế nào để bạn thiết lập một thư mục để không có gì có thể được sửa đổi bên trong nó?

Lưu ý: Nếu tôi nhấp chuột phải vào tệp .txt và đặt thành Read-onlyđó thì hệ thống sẽ ngăn chặn chính xác các cập nhật cho tệp.


3
Kiểm tra các tùy chọn nâng cao và chủ động từ chối quyền viết. Bạn đang sử dụng loại tài khoản nào? Tài khoản quản trị phải luôn có thể thay đổi mọi thứ.
Seth

@Seth Một tài khoản hành chính sẽ luôn có thể thay đổi mọi thứ? Điều gì nếu một người đang cố gắng truy cập một thư mục trên một máy khác?
liên kết với nhau

2
Windows dường như chưa bao giờ sử dụng cài đặt này cho các thư mục. Nếu nó nằm trong ổ đĩa chung, bạn sẽ thấy rằng Linux sẽ không thể tạo, xóa hoặc đổi tên tệp trừ khi chỉ đọc bị xóa.
AFH

2
@Seth: Gọi tốt. Sau khi sửa đổi các quyền nâng cao trên Securitytab để từ chối quyền truy cập Create Files / Write Data, bây giờ tôi không thể tạo tệp mới. Đây có vẻ là một lỗi / giới hạn của Windows. Nếu tôi lập trình gọi GetFileAttributesAPI trên thư mục, FILE_ATTRIBUTE_DIRECTORYthuộc tính được đặt ... nhưng không FILE_ATTRIBUTE_READONLY.
AlainD

2
Lưu ý rằng bắt đầu với Windows 7, hộp thoại đã được thay đổi Read-only (Only applies to files in this folder)để làm rõ hơn tùy chọn này thực sự làm gì. Có một ảnh chụp màn hình của hộp thoại mới trong câu trả lời này .
ComicSansMS

Câu trả lời:


56

Không giống như thuộc tính Chỉ đọc cho một tệp, thuộc tính Chỉ đọc cho thư mục thường bị bỏ qua bởi Windows, các thành phần và phụ kiện của Windows và các chương trình khác. Ví dụ: bạn có thể xóa, đổi tên và thay đổi thư mục có thuộc tính Chỉ đọc bằng cách sử dụng Windows Explorer.

Các thuộc tính Chỉ đọc và Hệ thống chỉ được Windows Explorer sử dụng để xác định xem thư mục có phải là thư mục đặc biệt không, chẳng hạn như thư mục hệ thống có chế độ xem được tùy chỉnh bởi Windows (ví dụ: Tài liệu của tôi, Mục ưa thích, Phông chữ, Tệp chương trình đã tải xuống) hoặc thư mục mà bạn đã tùy chỉnh bằng cách sử dụng tab Tùy chỉnh của hộp thoại Thuộc tính của thư mục. Do đó, Windows Explorer không cho phép bạn xem hoặc thay đổi các thuộc tính Chỉ đọc hoặc Hệ thống của các thư mục. Khi một thư mục có thuộc tính Chỉ đọc, nó khiến Explorer yêu cầu Desktop.ini của thư mục đó xem có cần cài đặt thư mục đặc biệt nào không.

Nguồn: https://support.microsoft.com/en-gb/help/326549/you-cannot-view-or-change-the-read-only-or-the-system-attribut-of-fo

Đây là một bài viết cũ nhưng nó vẫn đúng cho tất cả các phiên bản Windows.

Để ngăn việc tạo tệp trong thư mục, hãy thay đổi quyền sử dụng Securitytab trong thuộc tính thư mục. Nhấp vào Advancednút và thêm quy tắc để từ chối quyền truy cập Create Files / Write Data.


1
@AlainD Có. Đây là một bài viết cũ nhưng nó vẫn áp dụng cho các phiên bản Windows mới hơn. Tôi sẽ quay lại và mở rộng câu trả lời sau.
David Marshall

1
Vì vậy, thuộc tính "chỉ đọc" của một thư mục hoàn toàn không liên quan gì đến việc nó chỉ đọc? Có gì hơn một thất bại Uuu huuuuuge không?
Pedro A

6
@Rouletteiffic Đó là một di sản từ hệ thống tập tin FAT. FAT được sử dụng để chỉ hỗ trợ một vài thuộc tính tệp, RO là một trong số đó. NTFS có cơ chế ACL tinh vi để kiểm soát truy cập, vì vậy các thuộc tính FAT không quan trọng khi NTFS được sử dụng. Tuy nhiên, hộp thoại cụ thể trong câu hỏi đã được thiết kế từ nhiều năm trước khi FAT vẫn còn phổ biến và không bao giờ thay đổi kể từ đó.
Oakad

4
@Rouletteiffic Vì vậy, để tổng hợp Oakads nhận xét: Có.
Alexander Kosubek

2
@jrh Ông đã viết một bài trong năm 2003 blog.msdn.microsoft.com/oldnewthing/20030930-00/?p=42353
David Marshall
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.