Non è possibile avere un file di proprietà di più gruppi Linux con autorizzazioni Unix tradizionali. (Tuttavia, è possibile con ACL .)
Ma si potrebbe utilizzare la seguente soluzione e creare un nuovo gruppo (ad esempio, chiamato devFirms
) che includerà tutti gli utenti dei gruppi devFirmA
, devFirmB
e devFirmC
.
Si creano nuovi gruppi di utenti con:
sudo addgroup NEWGROUPNAME
Innanzitutto, potrebbe essere necessario installare id-utils
per ottenere il lid
comando:
sudo apt-get install id-utils
Quindi è possibile eseguire la seguente riga di codice per copiare facilmente tutti gli utenti di SOURCEGROUP
a TARGETGROUP
. Ovviamente devi eseguire il comando una volta per ogni gruppo che desideri copiare. Non dimenticare di sostituire i segnaposto in maiuscolo con i nomi dei gruppi effettivi.
for u in $(lid -g -n SOURCEGROUP); do sudo usermod -a -G TARGETGROUP $u; done
Quindi nel tuo caso dovresti eseguire il comando (tutte le righe contemporaneamente):
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
Si noti che questi comandi copiano solo tutti gli utenti che sono membri attuali dei gruppi di origine. Ogni utente che verrà aggiunto in seguito dovrà anche essere aggiunto manualmente al tuo gruppo comune con il adduser
comando. Sostituisci ancora una volta i segnaposto in maiuscolo con il nome dell'utente e del gruppo ( devFirms
):
sudo adduser NEWUSER TARGETGROUP
Grazie a Justin Ethier per la sua risposta su Unix & Linux.SE: aggiungere tutti gli utenti di un gruppo a un altro gruppo?