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
, devFirmB
i devFirmC
.
Tworzysz nowe grupy użytkowników za pomocą:
sudo addgroup NEWGROUPNAME
Po pierwsze, może być konieczne zainstalowanie, id-utils
aby 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 SOURCEGROUP
do 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ą adduser
polecenia. 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?