Quyền và thuộc tính tệp Windows


15

Tôi hơi bối rối về toàn bộ chương trình bảo mật tệp Windows. Tôi đến từ một nền tảng unix, vì vậy tôi không hiểu đầy đủ mối quan hệ giữa các quyền của tệp / cài đặt bảo mật và các thuộc tính; cụ thể chỉ đọc, mà một tập tin có thể có.

Ví dụ: nếu tôi đăng nhập với tư cách quản trị viên vào hộp của mình và tôi có một tệp cho phép kiểm soát hoàn toàn cho quản trị viên, nhưng có thuộc tính chỉ đọc, điều đó có nghĩa là tôi không thể ghi vào tệp đó? Có cách nào khác ngoài việc loại bỏ thuộc tính chỉ đọc mà tôi có thể ghi vào các tệp mà tôi cho là có toàn quyền kiểm soát không? Nếu không, lợi thế của việc có toàn quyền kiểm soát là gì nếu bạn không thực sự có toàn quyền?


1
Câu hỏi tuyệt vời
Jim B

Thuộc tính tệp Windows tương tự như cờ tệp Unix
Chris S

Tôi đã chỉnh sửa điều này để chung chung hơn, vì các nguyên tắc này áp dụng cho tất cả các phiên bản Windows hiện đại, không chỉ Server 2003.
MDMarra

Nó thực sự có thể khác vào năm 2012 trở lên
Jim B

Câu trả lời:


16

Quyền truy cập tệp chỉ ra những gì bạn có quyền truy cập vào một tệp - giống như âm thanh. Kiểm soát hoàn toàn cho phép bạn tạo, xóa, chắp thêm, thay đổi quyền, thay đổi thuộc tính, v.v.

Các tệp và thư mục có thể có các thuộc tính bổ sung, giống như các tệp trên hầu hết các hệ thống tệp * nix. "Ẩn" xuất hiện trong tâm trí như một ví dụ về điều này trên cả hai nền tảng.

Trên Windows, một số thuộc tính bổ sung bao gồm hệ thống, chỉ đọc, lưu trữ, mã hóa và nén. Khi bạn có toàn quyền kiểm soát (hoặc sửa đổi), bạn có khả năng thay đổi các thuộc tính này, nhưng như bạn đã phát hiện ra, một tệp chỉ đọc là chỉ đọc, ngay cả với người có toàn quyền kiểm soát. Mặc dù toàn quyền kiểm soát cung cấp cho bạn khả năng thay đổi các thuộc tính của tệp, nhưng nó không tự động ghi đè lên chúng, giống như lskhông hiển thị cho người dùng gốc một tệp ẩn theo mặc định trên * nix.


Không có thứ gọi là tệp NTFS "ẩn" bằng thuộc tính. Các tập tin có thể được ẩn bằng cách sử dụng các luồng. NTFS hỗ trợ bất kỳ thuộc tính nào được yêu cầu bởi bất kỳ ứng dụng nào bằng trường thuộc tính mở rộng ($ EA), đó là lý do tại sao bạn có thể lưu trữ các quyền của tệp unix trong hệ thống tệp NTFS
Jim B

6
Tôi không nói rằng "hidden" là một chức năng của NTFS ở bất cứ đâu, nhưng "hidden" chắc chắn là một thuộc tính mà bạn có thể đặt trên một tệp hoặc thư mục. Tôi thực sự không biết ý nghĩa mà bạn đang cố gắng thực hiện là gì.
MDMarra

Thuộc tính ẩn này trên Unix là gì?
Edward Thomson

Ẩn có thể là một ví dụ nghèo nàn nhưng minh họa quan điểm của tôi. Không có thuộc tính "ẩn" trên mỗi se, chỉ là các tệp có tiền tố một dấu chấm. Các thuộc tính tệp windows trong câu hỏi thực sự gần giống với các tệp giống như cờ tệp trong unix: freebsd.org/cgi/man.cgi?query=chflags&sektion=1 .
MDMarra

4

Một sự cho phép là một kiểm soát an ninh. Một thuộc tính được áp dụng bất kể hiệu trưởng bảo mật cố gắng hoạt động.

Có nhiều thuộc tính hơn nhiều so với những gì bạn nhìn thấy tại dấu nhắc lệnh. Chúng bao gồm nếu tệp là một liên kết, mã hóa, thư mục (một loại tệp) và tính toàn vẹn (thấp, trung bình hoặc cao).

Các hằng số thuộc tính tệp
http://msdn.microsoft.com/en-us/l Library / windows / desktop / gg258117% 28v = vs85% 29.aspx

FILE_ATTRIBUTE_ARCHIVE 32 (0x20)

Một tập tin hoặc thư mục là một tập tin lưu trữ hoặc thư mục. Các ứng dụng thường sử dụng thuộc tính này để đánh dấu các tệp để sao lưu hoặc xóa.

FILE_ATTRIBUTE_COMPRESSED 2048 (0x800)

Một tập tin hoặc thư mục được nén. Đối với một tệp, tất cả dữ liệu trong tệp được nén. Đối với một thư mục, nén là mặc định cho các tệp và thư mục con mới được tạo.

FILE_ATTRIBUTE_DEVICE 64 (0x40)

Giá trị này được dành riêng cho sử dụng hệ thống.

FILE_ATTRIBUTE_DIRECTORY 16 (0x10)

Tay cầm xác định một thư mục.

FILE_ATTRIBUTE_ENCRYPTED 16384 (0x4000)

Một tập tin hoặc thư mục được mã hóa. Đối với một tệp, tất cả các luồng dữ liệu trong tệp được mã hóa. Đối với một thư mục, mã hóa là mặc định cho các tệp và thư mục con mới được tạo.

FILE_ATTRIBUTE_HIDDEN2 (0x2) Tệp hoặc thư mục bị ẩn. Nó không được bao gồm trong một danh sách thư mục thông thường.

FILE_ATTRIBUTE_INTEGRITY_STREAM 32768 (0x8000)

Thư mục hoặc luồng dữ liệu người dùng được cấu hình với tính toàn vẹn (chỉ được hỗ trợ trên các khối ReFS). Nó không được bao gồm trong một danh sách thư mục thông thường. Cài đặt toàn vẹn vẫn tồn tại với tệp nếu nó được đổi tên. Nếu một tệp được sao chép, tệp đích sẽ có bộ toàn vẹn nếu tệp nguồn hoặc thư mục đích có bộ toàn vẹn.

Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 và Windows XP: Cờ này không được hỗ trợ cho đến Windows Server 2012.

FILE_ATTRIBUTE_NORMAL 128 (0x80)

Một tập tin không có các thuộc tính khác được đặt. Thuộc tính này chỉ hợp lệ khi được sử dụng một mình.

FILE_ATTRIBUTE_NOT_CONTENT_INDEXED 8192 (0x2000)

Các tập tin hoặc thư mục sẽ không được lập chỉ mục bởi dịch vụ lập chỉ mục nội dung.

FILE_ATTRIBUTE_NO_SCRUB_DATA 131072 (0x20000)

Luồng dữ liệu người dùng không được đọc bởi trình quét toàn vẹn dữ liệu nền (bộ lọc AKA). Khi được đặt trên một thư mục, nó chỉ cung cấp sự kế thừa. Cờ này chỉ được hỗ trợ trên khối lượng không gian lưu trữ và ReFS. Nó không được bao gồm trong một danh sách thư mục thông thường.

Windows Server 2008 R2, Windows 7, Windows Server 2008, Windows Vista, Windows Server 2003 và Windows XP: Cờ này không được hỗ trợ cho đến Windows 8 và Windows Server 2012.

FILE_ATTRIBUTE_OFFLINE 4096 (0x1000)

Dữ liệu của một tập tin không có sẵn ngay lập tức. Thuộc tính này chỉ ra rằng dữ liệu tệp được chuyển sang lưu trữ ngoại tuyến. Thuộc tính này được sử dụng bởi Remote Storage, đây là phần mềm quản lý lưu trữ phân cấp. Các ứng dụng không nên tự ý thay đổi thuộc tính này.

FILE_ATTRIBUTE_READONLY 1 (0x1)

Một tập tin chỉ đọc. Các ứng dụng có thể đọc tệp, nhưng không thể ghi vào tệp hoặc xóa nó. Thuộc tính này không được vinh danh trên các thư mục. Để biết thêm thông tin, hãy xem Bạn không thể 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 trong Windows Server 2003, trong Windows XP, trong Windows Vista hoặc trong Windows 7.

FILE_ATTRIBUTE_REPARSE_POINT 1024 (0x400)

Một tệp hoặc thư mục có một điểm lặp lại liên quan hoặc một tệp là một liên kết tượng trưng.

FILE_ATTRIBUTE_SPARSE_FILE 512 (0x200)

Một tập tin là một tập tin thưa thớt.

FILE_ATTRIBUTE_SYSTEM 4 (0x4)

Một tệp hoặc thư mục mà hệ điều hành sử dụng một phần hoặc sử dụng riêng.

FILE_ATTRIBUTE_TEMPORARY 256 (0x100)

Một tập tin đang được sử dụng để lưu trữ tạm thời. Các hệ thống tệp tránh ghi dữ liệu trở lại bộ nhớ lớn nếu có đủ bộ nhớ cache, vì thông thường, một ứng dụng sẽ xóa một tệp tạm thời sau khi đóng tay cầm. Trong kịch bản đó, hệ thống hoàn toàn có thể tránh việc ghi dữ liệu. Mặt khác, dữ liệu được ghi sau khi đóng tay cầm.

FILE_ATTRIBUTE_VIRTUAL 65536 (0x10000)

Giá trị này được dành riêng cho sử dụng hệ thống.


Điều này không trả lời chính xác câu hỏi. Họ đã tự hỏi tại sao chỉ đọc lại thay thế đặc quyền "toàn quyền kiểm soát". Các thuộc tính này được sử dụng trong các chương trình.
Nathan C

1
Bạn cũng đã trộn lẫn các thuộc tính kiểu FAT và NTFS - không còn là sự khác biệt lớn nữa, nhưng có những lúc rất quan trọng để phân biệt.
Chris S

1
@Nathan C. Điều này cũng trả lời chính xác câu hỏi. Chỉ đọc không kiểm soát hoàn toàn. Như câu trả lời cho biết "Một thuộc tính được áp dụng bất kể hiệu trưởng bảo mật đang cố gắng vận hành." Tuy nhiên, như Chris S đã chỉ ra, các thuộc tính kế thừa tùy chọn được trộn lẫn với các thuộc tính NTFS.
Jim B

-6

Tôi sẽ cung cấp câu trả lời dài hơn nhưng nói chung các thuộc tính bạn đang đề cập đến là các cài đặt cũ trên một tệp từ thời của hệ thống tệp DOS FAT. FAT lưu trữ các thuộc tính này như là một phần của các mục nhập thư mục hệ thống tập tin cho một tệp. NTFS có tập các thuộc tính riêng đóng gói các thuộc tính cũ hơn. Theo mặc định, bất kỳ người dùng nào có quyền truy cập tệp đều có thể sửa đổi chúng và có thể được sử dụng để ngăn chặn việc ghi đè dữ liệu do vô tình.

Quyền là cụ thể NTFS và các thay đổi đối với các quyền đó có thể được kiểm soát trên cơ sở mỗi người dùng (để người dùng không thể thay đổi từ chỉ đọc thành có thể ghi). Cụ thể, nếu bạn xem lệnh attrib (hiển thị cả bổ sung thuộc tính mới và thuộc tính mới như tính toàn vẹn trong các phiên bản sau của cửa sổ), có thể chỉ có quyền truy cập chỉ đọc được đặt trong quyền nhưng không chỉ đọc được đặt trong thuộc tính. Cũng rất thú vị (nếu không quan trọng) để hiểu rằng do sự trừu tượng hóa về mặt kỹ thuật, nó có thể kích hoạt các thuộc tính kế thừa (được lưu trữ trong thuộc tính NTFS $ standard_inifying) mà không nhất thiết phải hiển thị trong GUI thông thường.

Cụ thể, toàn quyền kiểm soát cho phép bạn thay đổi bất kỳ quyền NTFS. Đặt thuộc tính chỉ đọc sẽ ngăn các thay đổi cho đến khi bị xóa.

Thuộc tính FAT sẽ được ưu tiên hơn các thuộc tính NTFS trong cửa sổ.


3
in general attributes are legacy settings- Bạn có một nguồn cho điều này, bởi vì tôi tin rằng tuyên bố đó là không chính xác. Chúng miễn phí đối với quyền hệ thống tập tin - chúng chưa được thay thế hoặc thay thế bởi chúng. Không có gì trong các quyền tiêu chuẩn thay thế chức năng của ẩn, lưu trữ hoặc hệ thống.
MDMarra

1
Any user can modify them and can be used to prevent accidental overwrites of data.Ngoài ra, điều này thực tế không chính xác. Chỉ người dùng có "ghi thuộc tính" vào một tệp hoặc thư mục mới có thể thay đổi các thuộc tính trên đối tượng đó.
MDMarra


2
Jim, xin vui lòng dành một phút để xem xét điều này ngay từ đầu. Bạn đã đi quá xa lỗ thỏ "thuộc tính NTFS" này đến nỗi bạn quên rằng bạn là người duy nhất nói về thuộc tính NTFS. OP rõ ràng đang nói về các thuộc tính tệp toàn cầu như "Ẩn" và "Chỉ đọc". Ông đề cập rõ ràng "Chỉ đọc" trong câu hỏi. Tôi không thể biết nếu bạn đang cố gắng trở thành nhà mô phạm và thất bại hoặc nếu bạn bỏ lỡ điểm này một cách hợp pháp. Có, chúng tôi biết, các thuộc tính NTFS (mở rộng) không giống với các thuộc tính tệp / thư mục toàn cầu (kiểu FAT). Không ai tuyên bố điều đó.
MDMarra

3
Tôi nghĩ rằng bạn rõ ràng đã bỏ lỡ tinh thần và ý định của câu hỏi này và bạn đang cố gắng đưa ra lập trường là một phần không chính xác và một phần không có ích. Bạn đã cho thấy rõ rằng bạn nắm được cách các thuộc tính NTFS hoạt động, tuy nhiên không ai hỏi về chúng và không ai sử dụng chúng trong câu trả lời ngay từ đầu. Nếu bạn đang cố gắng thể hiện kiến ​​thức về các thuộc tính NTFS, bạn đã hoàn thành tốt. Vấn đề là bạn đã hoàn toàn bỏ lỡ điểm của câu hỏi.
MDMarra
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.