Quyền của người dùng trên Ubuntu Linux


1

Tôi là người mới làm quen với Linux nhưng đã tự hỏi làm thế nào để kích hoạt các tính năng sau:

  • Có ba người dùng A , BC
  • Tôi muốn người dùng người dùng AB có quyền đọc ghi xóa truy cập vào thư mục chính của C ?
  • Các tệp được tạo bởi C sẽ kế thừa các quyền

Điều này sẽ có trên một máy chủ Ubuntu.

Bất kỳ hướng dẫn nào về quyền trong Linux cũng sẽ rất tuyệt!

Câu trả lời:


2

ACL là cách mới và hay:

Đã chỉnh sửa để thêm ACL dựa trên nhóm. Tôi không thể tin rằng tôi thực sự đã quên điều đó.

  1. Kích hoạt ACL cho hệ thống tập tin.

    • mount -o remount,acl đỉnh núi

      nơi mountpoint có thể /hoặc /hometùy thuộc vào việc các thư mục nhà nằm trên một phân vùng riêng.

    • Thêm acltùy chọn vào mục nhập phù hợp trong/etc/fstab

  2. Tạo một nhóm superusersvà điền nó với người dùng. (Tất nhiên, chọn một tên phù hợp hơn.)

    groupadd superusers
    gpasswd -M userA,userB superusers
    

    Ngoài ra, chỉ cần sử dụng userCnhóm người dùng. (Trong hầu hết các bản phân phối Linux, người dùng userCsẽ tự động ở trong nhóm riêng của mình, cũng được đặt tên userC.)

  3. Cập nhật ACL trên các tệp:

    setfacl -R -m group:superusers:rwX,default:group:superusers:rwX ~userC
    

    nơi superuserslà nhóm đã tạo trước đó, và ~userClà thư mục home của người dùng C.

    Các quyền user:*group:*quyền sẽ áp dụng cho các đối tượng hiện có và default:*cho các đối tượng mới được tạo. -Rlà cho đệ quy .


Nhược điểm của POSIX ACL là mỗi tệp có một bản sao của chúng - không có quyền thừa kế như trên Windows, vì vậy khi bạn muốn cho phép hoặc không cho phép ai đó truy cập, bạn sẽ phải chỉnh sửa ACL của mọi tệp bị ảnh hưởng, trong khi phương thức của cmbrnt cho phép bạn chỉ đơn giản là làm một groupmod. Chỉnh sửa: Thêm các nhóm vào loại sửa lỗi ACL này.


Không biết về phương pháp này. Cảm ơn vì tiền boa!
cmbrnt

Điều này làm việc hoàn hảo! Cảm ơn bạn đã mô tả tốt :) Tôi sẽ cần tìm hiểu thêm về ACL và chính xác các lệnh đang làm gì. Cảm ơn bạn :)
Malachi

Bạn có biết làm thế nào để sắp xếp cái này trên VPS của tôi không. df -T yeilds / dev / simfs của loại reiserfs - Tôi sẽ đặt cái gì trong fstab. Đây là bản cài đặt tối thiểu Ubuntu 10.04? Cảm ơn một lần nữa
Malachi

@Malachi: Đối với reiserfs, chỉ cần thêm acltùy chọn tương tự vào mục nhập fstab ... Đợi đã, tôi đoán đó là OpenVZ không có mục nhập fstab. Trong trường hợp đó, sử dụng mount -o remount,acl /(và có thể đặt nó trong các tập lệnh khởi động).
grawity

@grawity Vâng - đó là một OpenVZ. Khi tôi thử và chạy lệnh đó với quyền root, tôi nhận được mount: quyền bị từ chối? Bất kỳ đề xuất? Tôi mở ra một câu hỏi về vấn đề này trên sàn giao dịch ubuntu: askubuntu.com/questions/23107/...
Malachi

2

Vì bạn nói nó trên máy chủ Ubuntu, tôi sẽ cho rằng bạn đang sử dụng giao diện dòng lệnh (không phải máy tính để bàn đồ họa). Để thay đổi quyền cho một thư mục, nhưng chỉ với một số lượng người dùng hạn chế, bạn sẽ cần thay đổi nhóm mà thư mục đó thuộc về. Mỗi tệp (và thư mục) thuộc về một người dùng và một nhóm. Giả sử tên nhóm là "siêu nhân" (nó có thể là bất cứ thứ gì).

  1. Trước hết, tạo một nhóm mới bằng cách sử dụng lệnh addgroup superusers. Bạn cần phải root cho cái này, hoặc chạy bằng lệnh sudo.
  2. Sau đó, bạn sẽ thay đổi nhóm mà thư mục chính của Người dùng C (/ home / c) thuộc về. Điều này được thực hiện bằng lệnh chown -R :superusers. Cờ -R đảm bảo mọi tệp trong thư mục được sở hữu bởi nhóm siêu nhân.
  3. Bây giờ bạn cần thêm người dùng A và người dùng B là thành viên của nhóm đó. Điều này được thực hiện bằng cách chạy một lệnh cho mỗi người dùng. Chạy đi sudo usermod -G superusers -a B. Đương nhiên B là tên của người dùng bạn muốn thêm vào nhóm. Cờ -a gắn thêm các siêu nhân nhóm vào danh sách nhóm người dùng B là thành viên của. Điều này là để đảm bảo chúng ta không làm hỏng điều gì đó. Làm điều này một lần nữa cho người dùng A.

Nếu bạn đã thực hiện đúng các bước này và bạn có tất cả các đặc quyền gốc, thì bây giờ bạn sẽ có hiệu ứng mong muốn mà bạn đang tìm kiếm. Người dùng A và B có thể viết và đọc vào thư mục chính của người dùng C.

Trong một số trường hợp, các tập tin có thể chỉ có thể đọc hoặc ghi được bởi chủ sở hữu. Điều này là quá nhiều để giải thích ở đây, nhưng bạn có thể đọc "quyền truy cập tập tin" và chmod-command nếu bạn muốn nghiên cứu thêm. Một hướng dẫn tốt đẹp có sẵn ở đây . Điều đó có nghĩa là một số tệp riêng lẻ không thể được đọc hoặc ghi bởi nhóm - chỉ bởi chủ sở hữu. Để thay đổi điều này, bạn sẽ sử dụng lệnh chmod g+rw <file>hoặc chmod g+rw -R /home/Cđể thay đổi quyền của mọi tệp trong thư mục chính của người dùng C. Điều này thêm quyền đọc và ghi vào nhóm mà tệp được sở hữu, trong trường hợp này là "siêu nhân", theo bước 2 trong hướng dẫn.

Ngoài ra, tôi sẽ nói rằng đây không phải là cách làm được khuyến nghị. Thông thường bạn sẽ tạo một thư mục thứ ba và cung cấp cho cả ba người dùng quyền truy cập đọc-ghi vào thư mục đó.

Tôi không biết cách nào để đảm bảo mọi tệp được tạo trong thư mục đó sẽ có cùng quyền sở hữu nhóm và người dùng. Bạn có thể thêm quyền mặc định bằng cách sử dụng umask-command, nhưng điều đó sẽ không thay đổi quyền sở hữu mặc định. Tôi thực sự nghi ngờ điều này là có thể thực hiện được, và thực sự chống lại các tiêu chuẩn * nix, nhưng sẽ thật tuyệt nếu có ai có thể sửa tôi về điều đó.


1
Trên Linux, bạn có thể đặt quyền sở hữu nhóm mặc định bằng cách đặt setgidbit trên thư mục - chmod g+s. Đối với quyền sở hữu của người dùng , đó không phải là một yêu cầu và sẽ thật ngu ngốc khi không sở hữu các tệp bạn tạo.
grawity

Phải, bạn là về bit người dùng, tất nhiên, thưa ông. Tôi đã không nghĩ rằng một trong những khi tôi thêm bình luận. :)
cmbrnt

2
Một điều khác cần xem xét là các nhóm người dùng: Trong hầu hết các bản phát hành Linux gần đây, mỗi người dùng mới được đặt trong nhóm riêng của mình - joe:joetrái ngược với joe:users. (Nhân tiện, phiên bản mới nhất của shadowgói bao gồm một công cụ groupmems, cho phép những người dùng đó sửa đổi thành viên của nhóm người dùng của họ. Một công cụ khác gpasswd, cũng có thể được sử dụng theo cách tương tự.)
grawity

Cảm ơn tất cả sự giúp đỡ này! Tôi đang dần tìm hiểu ... có cách nào để kích hoạt các tệp được tạo bởi A in / home / C để có quyền rw nhóm không? Tôi có thể chạy sudo chmod g + rw -R / home / C, nhưng điều đó hơi khó chịu khi phải chạy nó mỗi lần.
Malachi

2
@Malachi Đối với loại tự động hóa này, tôi khuyên bạn nên chuyển sang câu trả lời grawity đưa ra. Nó dường như là cách "chính xác" hơn để làm điều này.
cmbrnt
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.