Nie można mieć pliku należącego do wielu grup systemu Linux z tradycyjnymi uprawnieniami w systemie Unix. ( Jest to jednak możliwe w przypadku ACL .)
Możesz jednak skorzystać z poniższego obejścia i utworzyć nową grupę (np. Nazwaną devFirms), która obejmie wszystkich użytkowników grup devFirmA, devFirmBi devFirmC.
Tworzysz nowe grupy użytkowników za pomocą:
sudo addgroup NEWGROUPNAME
Po pierwsze, może być konieczne zainstalowanie, id-utilsaby uzyskać lid-command:
sudo apt-get install id-utils
Następnie można uruchomić następującą linię kodu na łatwe kopiowanie wszystkich użytkowników SOURCEGROUPdo TARGETGROUP. Oczywiście musisz uruchomić polecenie raz dla każdej grupy, którą chcesz skopiować. Nie zapomnij zastąpić wielkimi symbolami zastępczymi rzeczywistymi nazwami grup.
for u in $(lid -g -n SOURCEGROUP); do sudo usermod -a -G TARGETGROUP $u; done
W twoim przypadku musisz uruchomić polecenie (wszystkie linie jednocześnie):
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
Pamiętaj, że te polecenia kopiują tylko wszystkich użytkowników, którzy są bieżącymi członkami grup źródłowych. Każdy użytkownik, który zostanie dodany później, będzie musiał zostać ręcznie dodany do wspólnej grupy za pomocą adduserpolecenia. Po prostu ponownie zamień wielkie litery na rzeczywistą nazwę użytkownika i grupy ( devFirms):
sudo adduser NEWUSER TARGETGROUP
Dzięki Justinowi Ethierowi za odpowiedź na Unix i Linux.SE: Czy dodać wszystkich użytkowników jednej grupy do innej?