Danh sách kiểm soát truy cập
Câu trả lời thẳng là danh sách kiểm soát truy cập (ACL) . Vâng, bạn có thể tìm thấy một ví dụ mẫu, nhưng chúng đủ tốt trong thực tế (không giống như khả năng ghi nhóm đơn thuần đòi hỏi người dùng phải suy nghĩ về nó mọi lúc). Những gì họ yêu cầu là quản trị viên hệ thống (root) xác định các nhóm, nếu bạn muốn các tệp chỉ được chia sẻ bởi một nhóm có tên (root có thể chọn ủy quyền, ví dụ bằng cách chấp nhận các nhóm từ LDAP, nhưng đó là một câu chuyện khác).
Bạn cần người dùng tham gia để có số dư 022. Nếu họ tạo các tệp không thể đọc được trên thế giới thường xuyên, lược đồ này sẽ không hoạt động. Nhưng nếu họ có một ô hạn chế, có lẽ vì họ không muốn chia sẻ tệp.
Kích hoạt ACL
Ubuntu không bật ACL theo mặc định, do đó, yêu cầu quản trị viên một lần. Chỉnh sửa /etc/fstab
bằng trình chỉnh sửa yêu thích của bạn và thay đổi mọi dòng tương ứng với hệ thống tệp mà bạn muốn chia sẻ tệp: thêm acl
vào các tùy chọn. (Đảm bảo không thay đổi bất kỳ dòng nào khác và không sử dụng trình chỉnh sửa bao bọc các dòng dài.) Đây là một dòng ví dụ với acl
tùy chọn được thêm vào:
UUID=5e1ec7ed-face-dead-beef-c011ec7ab1e5 / ext4 errors=remount-ro,acl 0 1
Để tùy chọn có hiệu lực lần đầu tiên, hãy sử dụng lệnh như sau (cho mỗi hệ thống tệp):
sudo mount -o remount,acl /
Cài đặt các công cụ ACL từ acl
gói.
Thiết lập thư mục dùng chung
Để có các tệp được chia sẻ bởi nhóm mygroup
:
setfacl -m group:mygroup:rwx /path/to/shared/root
setfacl -d -m group:mygroup:rwx /path/to/shared/root
Nếu mọi người tạo tệp và sao chép chúng vào thư mục dùng chung, các tệp sẽ có thể đọc được trên thế giới (vì có ô) và bất kỳ ai trong nhóm cũng có thể thêm và xóa tệp (vì nhóm có thể ghi nhóm). Mọi người không thể chỉnh sửa các tệp của nhau, nhưng đó là một điều tốt hoặc bạn sẽ ngay lập tức gặp phải các xung đột chỉnh sửa.
Nếu bạn không có nhóm unix, bạn có thể thêm từng người dùng:
setfacl -m user:bob:rwx /path/to/shared/root
setfacl -d -m user:bob:rwx /path/to/shared/root
Kiểm soát phiên bản
Nếu bạn muốn mọi người có thể chỉnh sửa các tập tin tại chỗ, bạn cũng cần một cái gì đó để ngăn chặn xung đột chỉnh sửa. Đó là kiểm soát phiên bản.
Bạn không cần bất kỳ thứ gì trong số này để chia sẻ kho git. Bạn biết có những giải pháp như gitosis, vì vậy hãy sử dụng chúng.