Hệ thống đặc quyền tệp Unix khác với Windows như thế nào?


8

Câu hỏi liên quan: Hệ thống / tổ chức tệp Linux khác với Windows như thế nào?

Tôi hơi quen với cách các đặc quyền hoạt động khi nói đến các tệp và thư mục - mỗi mục có một ownervà thuộc grouptính đại diện cho chủ sở hữu của tệp và nhóm mà chủ sở hữu thuộc về (sửa tôi nếu tôi sai).

Điều này khác với tổ chức quyền trong hệ thống tệp NTFS trên Windows như thế nào? Hệ thống cấp phép của Unix có những ưu điểm gì so với NTFS?

Câu trả lời:


15

NTFS có Windows ACE. Unix sử dụng "bit chế độ" trên mỗi tệp.

Trên NTFS, mỗi tệp có thể có chủ sở hữu và không hoặc nhiều mục nhập kiểm soát truy cập Windows (ACE). Một ACE bao gồm một hiệu trưởng (người dùng và nhóm là hiệu trưởng), một tập hợp các hoạt động (Đọc, Viết, Thực thi, v.v.) và liệu các hoạt động đó được cho phép hay từ chối. Tập tin có thể có nhiều ACE. Các đối tượng khác trong Windows ngoài các tệp cũng có thể có các ACE, chẳng hạn như các mục đăng ký, đối tượng máy in và các thứ khác. Tất cả các ACE được đưa vào tài khoản khi hoạt động tập tin xảy ra. Từ chối được ưu tiên hơn cho phép.

Windows ACE hỗ trợ kế thừa nơi bạn có thể thiết lập một ACE cho một thư mục và để nó tự động truyền đến các thư mục cấp thấp hơn.

Các tệp trong Unix có người dùng sở hữu (chủ sở hữu) và nhóm sở hữu (nhóm chủ sở hữu). Có ba "hiệu trưởng" cố định là chủ sở hữu, thành viên của nhóm sở hữu và mọi người khác (còn gọi là thế giới). Đối với mỗi hiệu trưởng, có ba "bit" bao gồm các khả năng đọc, ghi và thực thi. (những cái này có ý nghĩa khác nhau cho các thư mục hơn các tập tin, xem cái này ). Các bit này xác định ai có thể thực hiện các hoạt động. Đây được gọi là chế độ của tệp và được tích hợp vào tệp (không có các ACE riêng biệt).

Hầu hết thời gian bạn quan tâm đến các quyền "thế giới", nghĩa là đặt cả ba bit thành 0 cho "thế giới" có nghĩa là không ai không phải là chủ sở hữu hoặc chủ sở hữu nhóm có thể làm bất cứ điều gì với tệp. Quyền Unix chỉ hoạt động trên hệ thống tệp, nhưng vì hầu hết các đối tượng xuất hiện dưới dạng tệp nên bạn có thể sử dụng quyền để hạn chế quyền truy cập vào đĩa, máy in, v.v. Quyền hạn Unix đơn giản hơn nhưng "thô" hơn. Các quyền Unix không hỗ trợ kế thừa và sẽ không ảnh hưởng đến các thư mục cấp thấp hơn, ngoại trừ quyền thực thi cho các thư mục (tôi nghĩ) khiến các tệp mới được tạo nhận quyền của thư mục (nhưng không ảnh hưởng đến các tệp hiện được tạo).

Theo truyền thống, các tệp Unix có một chủ sở hữu duy nhất và một nhóm chủ sở hữu duy nhất. Có các phần mở rộng cho Linux có thêm các ACE vào các tệp theo cách tương tự với Windows.

Ưu điểm của Unix chỉ là một hệ thống đơn giản hơn thường dễ hiểu và an toàn hơn và tốc độ vì hệ thống tệp không phải tìm nạp các ACE ngoài các nút khi mở tệp.


4
Đó là quyền setgid cho các thư mục và nó làm cho các tệp kế thừa nhóm chủ sở hữu chứ không phải các quyền.
Random832

3
@George: Một điều bạn cần nhớ là nhóm đó KHÔNG phải là nhóm của chủ sở hữu, nó là riêng biệt. Xem chgrp (1).
Hello71

@ Random832: Cảm ơn đã làm rõ.
LawrenceC

3
Hầu hết các bản phân phối hiện nay bao gồm hỗ trợ cho Danh sách điều khiển truy cập mở rộng (ACL) được biên dịch thành các hệ thống tệp có sẵn khác nhau theo mặc định. Tên của gói phần mềm cần thiết để truy cập và sửa đổi chúng thường được gọi aclhoặc facltương tự, với hai chương trình được đặt tên setfaclgetfaclsửa đổi hoặc truy xuất cài đặt danh sách kiểm soát truy cập.
Shadur

6

Một điều khá khác biệt là "thực thi" là một quyền trong Linux / Unix, không dựa trên tên hoặc phần mở rộng của tệp.

Đây là một lợi thế so với Windows, trong đó trên Linux, bạn có thể đảm bảo một cái gì đó không được thực thi bằng cách loại bỏ các quyền thực thi. Không có phần mở rộng ma thuật nào cả. Đây có lẽ là một lý do tại sao các virus tập tin truyền thống không có mặt trên Unix và Linux.


2
Windows thực sự có quyền thực thi, mặc dù họ đánh bại mục đích bằng cách đặt mặc định.
Bản vá

1
Phần mở rộng không quan trọng trên windows.
Logan Capaldo

1
@Logan: Thật ra, chúng có ý nghĩa trên Windows. Phần mở rộng tệp xác định (các) chương trình nào có thể được sử dụng để mở nó cũng như chỉ ra cho người thám hiểm biết loại tệp nào để có thể tạo hình thu nhỏ. Trong trường hợp sau, điều đó có khả năng khai thác một lỗi tồn tại trong trình tạo hình thu nhỏ và do đó có thể làm tổn hại đến một hệ thống.
Nathan Osman

1
@George Điều tương tự cũng áp dụng cho trình quản lý tệp đồ họa với trình xem trước móng tay có lỗi trên bất kỳ hệ điều hành nào. Quan điểm của tôi là CreatProcess không cung cấp hai hoots nếu chương trình của bạn kết thúc bằng .exe (và điều này dễ thấy bằng cách chạy chương trình từ cmd.exe), nhưng thực sự nó quan tâm đến bit thực thi.
Logan Capaldo

2
@George, giống như Unix (trừ khi bạn muốn bắt đầu tranh luận về việc tìm kiếm một shebang có "tiên tiến" hay không). Tôi chỉ muốn làm rõ rằng phần mở rộng tập tin không liên quan gì đến mô hình bảo mật. Nếu bạn đánh dấu một tệp thực thi không thể thực thi trên Windows, nó có tác dụng tương tự như trên một bản unix.
Logan Capaldo
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.