Không thể có một tệp thuộc sở hữu của nhiều nhóm Linux có quyền Unix truyền thống. (Tuy nhiên, có thể với ACL .)
Nhưng bạn có thể sử dụng workaround sau và tạo một nhóm mới (ví dụ gọi devFirms
) sẽ bao gồm tất cả người dùng của các nhóm devFirmA
, devFirmB
và devFirmC
.
Bạn tạo nhóm người dùng mới với:
sudo addgroup NEWGROUPNAME
Đầu tiên, bạn có thể phải cài đặt id-utils
để có được lid
-command:
sudo apt-get install id-utils
Sau đó, bạn có thể chạy dòng mã sau để dễ dàng sao chép tất cả người dùng SOURCEGROUP
sang TARGETGROUP
. Tất nhiên bạn phải chạy lệnh một lần cho mỗi nhóm bạn muốn sao chép. Đừng quên thay thế những người nắm giữ được viết hoa bằng tên nhóm thực tế.
for u in $(lid -g -n SOURCEGROUP); do sudo usermod -a -G TARGETGROUP $u; done
Vì vậy, trong trường hợp của bạn, bạn sẽ phải chạy lệnh (tất cả các dòng cùng một lúc):
sudo addgroup devFirms &&
for u in $(lid -g -n devFirmA); do sudo usermod -a -G devFirms $u; done &&
for u in $(lid -g -n devFirmB); do sudo usermod -a -G devFirms $u; done &&
for u in $(lid -g -n devFirmC); do sudo usermod -a -G devFirms $u; done
Lưu ý rằng các lệnh này chỉ sao chép tất cả người dùng là thành viên hiện tại của các nhóm nguồn. Mọi người dùng được thêm sau này cũng sẽ phải được thêm thủ công vào nhóm chung của bạn bằng adduser
lệnh. Chỉ cần thay thế một lần nữa những người giữ chỗ được viết hoa bằng tên người dùng và nhóm thực tế ( devFirms
):
sudo adduser NEWUSER TARGETGROUP
Cảm ơn Justin Ethier vì câu trả lời của anh ấy tại Unix & Linux.SE: Thêm tất cả người dùng của một nhóm vào một nhóm khác?