Неможливо мати файл, який належить декільком групам 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: Додати всіх користувачів однієї групи до іншої групи?