Sử dụng setfacl để cho phép các thành viên nhóm ghi vào bất kỳ tệp nào trong một thư mục


12

Tôi muốn sử dụng setfacl để bất kỳ ai trong nhóm 'ứng dụng' có thể chỉnh sửa bất kỳ tệp nào có trong / usr / local / users / app bất kể các quyền hạn UNIX truyền thống nói gì. Tôi có hai người dùng john và ben. Tôi đã cố làm theo hướng dẫn từ một câu hỏi khác , nhưng john không thể ghi vào một số tập tin. Có vẻ như đây là vì mặt nạ acl. Tuy nhiên, tôi đã đặt mặt nạ mặc định trên thư mục của rwx, vì vậy các tệp trong đó có nên kế thừa nó khi được tạo không?

Ví dụ: john không thể ghi vào tệp bên dưới, nhưng anh ta là thành viên của nhóm 'ứng dụng' đã viết acls trên tệp nên tôi ngạc nhiên khi anh ta không thể chỉnh sửa tệp.

ben@app1:/usr/local/users$ ls -la app/app-1.0-SNAPSHOT/lib/play.templates_2.10-2.1.1.jar 
-rw-r--r--+ 1 ben users 38326 Apr  2 10:21 app/app-1.0-SNAPSHOT/lib/play.templates_2.10-2.1.1.jar

ben@app1:/usr/local/users/app$ getfacl app-1.0-SNAPSHOT/lib/
# file: app-1.0-SNAPSHOT/lib/
# owner: ben
# group: users
user::rwx
group::rwx          #effective:r-x
group:app:rwx       #effective:r-x
mask::r-x
other::r-x
default:user::rwx
default:group::rwx
default:group:app:rwx
default:mask::rwx
default:other::r-x

ben@app1:/usr/local/users$ getfacl app/app-1.0-SNAPSHOT/lib/play.templates_2.10-2.1.1.jar 
# file: app/app-1.0-SNAPSHOT/lib/play.templates_2.10-2.1.1.jar
# owner: ben
# group: users
user::rw-
group::rwx          #effective:r--
group:app:rwx       #effective:r--
mask::r--
other::r--

Câu trả lời:


7

Bạn sẽ nhận thấy bình luận "hiệu quả" mà getfacl đang ném vào bạn. Vấn đề là các quyền được tính toán sao cho "ứng dụng" không được thiết lập bit ghi. Điều đó xảy ra vì mặt nạ trên tệp được đặt ở chế độ chỉ đọc. Mặt nạ được sử dụng để giới hạn số lượng quyền có thể được cung cấp trên một tệp hoặc thư mục cụ thể.

Một ví dụ về lý do tại sao bạn muốn hành vi này sẽ như thế nào nếu bạn biết tệp có thể cần một cách hợp pháp những người dùng / nhóm khác nhau để có quyền truy cập nhưng vì một số lý do, mọi thứ trở nên phức tạp với quyền và bạn muốn có cách nói "Dù thế nào đi nữa các quyền mặc định được đặt thành, bất kể tư cách thành viên nhóm của họ là gì, hoặc bất kỳ setfacl đệ quy nào sẽ được thực thi sau này, DEFINITELY KHÔNG ĐƯA RA NÀY ! " Người dùng sở hữu có một trạng thái đặc biệt trong thế giới POSIX, nó có các quyền mà người dùng khác không có, như khả năng không root và thay đổi quyền trên một tệp và quyền của nó không bị giới hạn bởi mặt nạ (sẽ bị hạn chế dù sao cũng vô nghĩa vì đặc quyền đầu tiên mà hệ thống mang lại cho họ). Đây là lý do tại sao họ vẫn nhận được rwx mặc dù mặt nạ bị hạn chế.

Để trả lời câu hỏi cụ thể của bạn : thêm bit ghi vào mặt nạ trên tệp và thử lại với tư cách johnngười dùng.

đây là phiên bản dòng lệnh của lời giải thích ở trên, hãy lưu ý cách thay đổi quyền "hiệu quả" khi tất cả những gì tôi sửa đổi là mặt nạ.


Cảm ơn bạn. Tôi thực sự đánh giá cao phản ứng. Có thể tạo các tệp mới với mặt nạ mặc định của rwx không? Tôi đã chỉnh sửa câu hỏi của mình với một vài chi tiết.
Ben McCann

Vâng, mặt nạ là một trong những danh mục (như người dùng và nhóm) mà bạn có thể đặt ACL mặc định. Mặt nạ mặc định sẽ kế thừa các thư mục con và áp dụng cho các tệp. VÍ DỤ: setfacl -md: m :: rwx / path / to / Dir
Bratchley

ACL mặc định đang kế thừa các thư mục con, nhưng không phải cho các tệp, làm cho các ACL hoàn toàn vô dụng :-(
Ben McCann

Để chắc chắn rằng chúng ta đang nói về điều tương tự, bạn đang nói về acl mặc định cho mục mặt nạ? Đây là những gì tôi nhận được trong các bài kiểm tra.
Bratchley

Tôi cũng đã lặp lại thử nghiệm trên cho các tệp mới trong / testBed sau khi thay đổi mặt nạ hiệu quả trên thư mục mẹ và nhận được kết quả tương tự (mục nhập mặt nạ mặc định được áp dụng cho tệp chứ không phải mặt nạ hiệu quả của cha mẹ).
Bratchley

0

Nó là không thể. cp, rsync, v.v ... tạo tập tin bỏ qua ACL mặc định

Tại sao cp không tôn trọng ACL?


không chính xác Người dùng đã chạy vào cùng một mặt nạ mà bạn đang chạy trước đó và nhận được phản hồi không chính xác từ người khác. Không phải là "cp" hay bất kỳ tiện ích nào khác để bỏ qua các mục ACL mặc định, xảy ra ở cấp hệ thống tệp khi cp đi tạo tệp. Công cụ này có tùy chọn phát hành các lệnh gọi hệ thống để sọc / thêm các ACL cần thiết nhưng sẽ phải nỗ lực để làm như vậy.
Bratchley

Cái quái gì đó là bạn có thể thấy mục ACL mà họ nói về nó chỉ là những quyền hiệu quả mà họ mong đợi sẽ không thấy ở đó. Đó là một cơ hội hoàn hảo để nói "hey anh bạn, kiểm tra mặt nạ của bạn."
Bratchley

1
Trên thực tế, tôi lấy lại rằng có vẻ như EvilRyry đã đăng về mặt nạ và OP chỉ phản hồi lại với "nó không hoạt động" sau đó đăng đầu ra getfacl dường như cho thấy "felles" đã nhận được rwx trên tệp. Với tốc độ này, câu trả lời được bình chọn cao nhất không phù hợp với kinh nghiệm cá nhân của tôi và những gì tôi đã minh họa ở đây với các ví dụ lệnh.
Bratchley
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.