Câu trả lời:
Lấy từ bài đăng tuyệt vời này trên Diễn đàn Ubuntu bởi Morbius1.
Cách thức cổ điển của Linux để thực hiện loại điều này diễn ra như sau:
Tạo thư mục chia sẻ:
sudo mkdir /home/Shared
Tạo nhóm người dùng mới:
sudo addgroup newgroup
Thay đổi quyền sở hữu của thư mục được chia sẻ thành nhóm mới:
sudo chown :newgroup /home/Shared
Thêm người dùng mong muốn của bạn vào nhóm đó:
sudo adduser user1 newgroup
Lặp lại cho tất cả người dùng.
Bây giờ bạn có một số quyết định để đưa ra về những gì bạn muốn những người dùng đó có thể làm:
[a] Tất cả người dùng nhóm có thể thêm và xóa khỏi thư mục và có thể đọc và không ghi vào các tệp khác:
sudo chmod 0770 /home/Shared
[b] Tương tự như trên nhưng chỉ chủ sở hữu của tệp có thể xóa nó:
sudo chmod 1770 /home/Shared
[c] Tất cả người dùng nhóm có thể thêm và xóa khỏi thư mục và có thể đọc và ghi vào các tệp của nhau:
sudo chmod 2770 /home/Shared
[d] Giống như [c] ngoại trừ chỉ chủ sở hữu tệp có thể xóa tệp đó:
sudo chmod 3770 /home/Shared
A 1
ở vị trí đầu tiên của lệnh chmod là bit dính giúp ngăn chặn việc xóa tệp cho bất kỳ ai khác ngoài chủ sở hữu.
A 2
ở vị trí đầu tiên của lệnh chmod là bit setgid buộc tất cả các tệp mới hoặc sao chép phải có nhóm của thư mục đó.
A 3
ở vị trí đầu tiên của lệnh chmod là sự kết hợp của các bit dính ( 1
) & setgid ( +2
).
Có một cảnh báo cho tất cả những điều này khi có liên quan đến bit setgid. Tất cả các tệp mới được tạo trong và bất kỳ tệp nào được sao chép vào thư mục đó trên thực tế sẽ kế thừa nhóm của thư mục. Nhưng không phải tập tin chuyển đến thư mục đó. Các tập tin đã di chuyển giữ quyền sở hữu từ bất cứ nơi nào chúng được di chuyển từ đó. Một cách để vượt qua vấn đề này là sử dụng bindfs.
Cuối cùng, nếu bạn muốn những người khác ngoài nhóm có thể xem các tệp nhưng không thay đổi chúng, hãy thay đổi 0 cuối cùng trong chmod
lệnh thành 5, ví dụ:
sudo chmod 0775 /home/Shared