Невозможно иметь файл, принадлежащий нескольким группам Linux с традиционными разрешениями Unix. (Тем не менее, это возможно с ACL .)
Но вы можете использовать следующий обходной путь и создать новую группу (например, вызываемую devFirms), которая будет включать всех пользователей групп devFirmA, devFirmBи devFirmC.
Вы создаете новые группы пользователей с:
sudo addgroup NEWGROUPNAME
Во-первых, вам может потребоваться установить id-utilsкоманду lid-com:
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: Добавить всех пользователей одной группы в другую группу?