Làm cách nào để tôi cấp các quyền khác nhau cho mỗi người dùng?


11

Vì vậy, tôi đã sử dụng Linux được vài năm và tôi thực sự nên biết câu trả lời này, nhưng tôi gặp khó khăn khi tìm kiếm nó. Cụ thể tôi đã sử dụng bản phân phối dựa trên Debian .... chủ yếu là Ubuntu.

Nếu tôi có một máy chủ, có nhiều hơn ba người dùng, làm cách nào để đặt một bộ quyền khác nhau cho một tệp cho mỗi người dùng.

Ví dụ:

Nếu tôi có một tệp có các quyền và quyền sở hữu này:

rwx rw_ r__ user1:group1 file1.txt

và tôi có 3 người dùng với các quyền mong muốn này ....

  • người dùng1 rwx
  • người dùng2 rw_
  • người dùng3 r__

Tất cả những gì tôi phải làm là để user1 sở hữu tập tin, user2 nằm trong nhóm1user3 có thể không - đúng không?

Nhưng, nếu tôi có user4user5 thì sao .

  • người dùng4 _wx
  • người dùng5 __x

Làm thế nào tôi có thể thiết lập nó?

Tôi chưa phải làm điều này trước đây, nhưng tôi đã được một quản trị viên Windows hỏi câu hỏi đó và tôi thực sự không thể trả lời.


8
Đối với loại chi tiết đó trong các quyền, bạn sẽ cần sử dụng danh sách kiểm soát truy cập (ACL) Bạn có thể tìm thấy Hướng dẫn nhanh tại đây . Mặc dù là một lời cảnh báo, một khi bạn bắt đầu con đường của ACL thay vì quyền, đó là một con dốc rất trơn và mọi thứ trở nên phức tạp thực sự nhanh chóng với một số hậu quả không lường trước ở cuối.
MelBurslan

Câu trả lời:


19

Quyền unix truyền thống chỉ cho phép người dùng, nhóm, các quyền khác như bạn đã tìm thấy. Những điều này có thể dẫn đến một số kết hợp lúng túng của các nhóm cần được tạo ...

Vì vậy, một hình thức mới của ACL (Danh sách điều khiển truy cập) đã được xử lý. Điều này cho phép bạn chỉ định nhiều người dùng và nhiều nhóm với các quyền khác nhau. Chúng được đặt bằng setfacllệnh và đọc vớigetfacl

$ setfacl -m u:root:r-- file.txt
$ setfacl -m u:bin:-wx file.txt 
$ setfacl -m u:lp:--x file.txt 
$ getfacl file.txt
# file: file.txt
# owner: sweh
# group: sweh
user::rw-
user:root:r--
user:bin:-wx
user:lp:--x
group::r--
mask::rwx
other::r--

Bạn có thể dễ dàng biết nếu một tệp có ACL bằng cách nhìn vào lsđầu ra:

$ ls -l file.txt
-rw-rwxr--+ 1 sweh sweh 0 Jul 26 10:33 file.txt

+cuối các quyền chỉ ra một ACL.


2

Có, ACL: s cho phép tự do đặt các quyền khác nhau cho những người dùng hoặc nhóm khác nhau. IIRC các quyền nhóm thông thường giới hạn nhóm quyền mà nhóm và người dùng có thể có thông qua ACL: s (hiển thị như masktrong getfacl), nhưng setfaclsẽ xử lý nếu bạn thêm quyền.

Nhưng trong một số trường hợp, bạn cần hỏi liệu bộ quyền có ý nghĩa gì không.

Tôi có 3 người dùng với các quyền mong muốn này ....
- user1 rwx
- user2 rw_
- user3 r__

Bạn có thể thực hiện điều này với ACL: s hoặc (khoảng) với các quyền Unix thông thường bằng cách biến user1 thành chủ sở hữu của tệp, user2 thành thành viên của nhóm và để người khác, kể cả user3 có quyền truy cập đọc. Mặc dù sau đó mọi người (có quyền truy cập vào thư mục) cũng sẽ có quyền truy cập đọc.

Hãy xem xét ý nghĩa của các quyền đó. Bạn có một người dùng có thể đọc và một người dùng khác có thể đọc và viết. Điều đó hoàn toàn bình thường. Không ai trong số này có quyền truy cập để thực thi tệp, nhưng sau đó người dùng thứ ba được cho là cũng có thể làm điều đó.

Điều đó không có ý nghĩa nhiều trong tâm trí của tôi. Bất kỳ người dùng nào có thể đọc tệp, có thể tạo một bản sao (*), đánh dấu tệp có thể thực thi và chạy nó mà không cần truy cập để thực thi tệp gốc. Tình huống duy nhất có ý nghĩa là có quyền truy cập thực thi đối với một số người dùng nhưng không phải đối với những người khác, là khi thực thi có các đặc quyền nâng cao thông qua suid. Nhưng nếu đó là trường hợp, bạn cũng không nên có quyền truy cập ghi vào tệp.

Theo nghĩa tương tự, user4 với -wxvà user5 --xkhông có ý nghĩa với tôi. Truy cập chỉ viết có thể có ý nghĩa nếu có khả năng chỉ cho phép nối thêm , nhưng hệ thống cấp phép không phải là chi tiết tốt.

(* trừ khi họ không thể viết ở bất cứ đâu)


Mặc dù, nếu chúng tôi loại bỏ yêu cầu kỳ lạ đối với xbit, chúng tôi sẽ để lại một tệp nơi user1 và user2 nên có quyền truy cập ghi và user3 nên có quyền truy cập đọc. Một người viết và nhiều người đọc sẽ dễ dàng với mô hình truyền thống, nhưng trường hợp này sẽ cần các thủ thuật để kết hợp các quyền của tệp với các cho phép của thư mục chứa. May mắn thay, trong nhiều trường hợp, một người dùng có nhiều quyền hơn là đủ.

Không có yêu cầu về bit thực thi, đây giống như một trường hợp sử dụng ACL: s. Nhưng với nó, ví dụ cụ thể này có vẻ khá phức tạp với tôi.


Nếu người dùng chỉ có thể ghi vào hệ thống tệp được gắn mà không có quyền thực thi, anh ta không thể thực thi một bản sao, ngay cả khi anh ta có thể thực thi bản gốc nếu các quyền thích hợp sẽ được đặt. Ngoài ra chỉ thực hiện có thể có ý nghĩa nếu bạn muốn ngăn chặn chúng tìm kiếm khai thác. -wxchắc chắn là lạ
celtschk

1
Một số hệ thống có cơ chế chỉ cho phép nối thêm. Linux có chattr +a, ví dụ. Và thậm chí không có bất cứ thứ gì cụ thể theo hệ thống, bạn có thể biến tệp thành một bộ xếp hình. --xvà bằng cách mở rộng cũng -wxcó ý nghĩa với tôi đối với các thư mục .
Random832
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.