Неможливо мати файл, який належить декільком групам Linux із традиційними дозволами Unix. (Однак це можливо з ACL .)
Але ви можете використовувати наступний метод обходу і створити нову групу (наприклад , називається devFirms) , яка буде включати в себе всі користувачі груп devFirmA, devFirmBі devFirmC.
Ви створюєте нові групи користувачів за допомогою:
sudo addgroup NEWGROUPNAME
По-перше, можливо, вам доведеться встановити, id-utilsщоб отримати команду lid-comma:
sudo apt-get install id-utils
Потім ви можете запустити наступний рядок коду легко скопіювати всі користувачі SOURCEGROUPв TARGETGROUP. Звичайно, потрібно виконати команду один раз для кожної групи, яку потрібно скопіювати. Не забудьте замінити літери, що містять великі літери, фактичними назвами груп.
for u in $(lid -g -n SOURCEGROUP); do sudo usermod -a -G TARGETGROUP $u; done
Тож у вашому випадку вам доведеться запустити команду (всі рядки одразу):
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
Зауважте, що ці команди копіюють лише всіх користувачів, які є поточними членами вихідних груп. Кожен користувач, який буде доданий пізніше, також повинен бути вручну доданий до вашої загальної групи за допомогою adduserкоманди. Просто ще раз замініть великі літери, що містять великі літери, на фактичне ім’я користувача та групи ( devFirms):
sudo adduser NEWUSER TARGETGROUP
Спасибі Джастіну Етьє за його відповідь у Unix & Linux.SE: Додати всіх користувачів однієї групи до іншої групи?