Cambia gid di un gruppo specifico


34

Vorrei cambiare l'ID di gruppo di un gruppo specifico. Esistono quindi soluzioni per modificare il gid di un file o di directory. Ma non è quello che voglio. C'è un modo per farlo?

Risposte:


42

Il GID è l'identificatore principale del gruppo. Per quanto riguarda il sistema, un GID diverso è un gruppo diverso. Quindi, per modificare il GID, dovrai modificare tutti i luoghi in cui viene utilizzato quel GID.

Dovresti evitare di considerare il GID come significativo e utilizzare invece i nomi dei gruppi; puoi cambiare il nome di un gruppo con un singolo comando (su Linux:) groupmod -n NEW_GROUP_NAME OLD_GROUP_NAME.

Tuttavia, se vuoi davvero cambiare il GID, ecco come:

  • Innanzitutto, potrebbe essere necessario disconnettere gli utenti del gruppo e terminare i processi che hanno quel gruppo come gruppo effettivo, reale o salvato.
  • Modificare la voce nel database del gruppo. Su Linux, esegui groupmod -g NEWGID GROUPNAME. Su altri sistemi, usa lo strumento di amministrazione di quel sistema, o vigrse disponibile, o modifica /etc/groupcome applicabile.
  • Cambia il gruppo di tutti i file sul tuo sistema che appartengono al vecchio gruppo.

    find / -gid OLDGID ! -type l -exec chgrp NEWGID {} \;
    
  • chgrp cancella i flag suid e sgid, ripristina quelli.

  • Se si dispone di un archivio che utilizza il vecchio GID, ricostruirlo.
  • Se hai qualche file di configurazione o script che fa riferimento al vecchio GID, aggiornalo.
  • Riavviare tutti i processi che devono utilizzare il nuovo GID.

2
Suggerisci di utilizzare chgrp -h ...anziché chgrp .... Senza -h, il target di qualsiasi collegamento simbolico rilevante cambierà il suo gruppo.
Mark Plotnick,

3
groupmodprendere un nome come argomento principale per me ...groupmod -g NEWGID GROUPNAME
Matt,

29

Il modo più semplice è usare groupmod -g <NEW_GID> <groupname>

Un altro modo è modificare /etc/groupdirettamente. Il terzo campo in ogni colonna è il gid.

Se il gruppo modificata è il gruppo principale di un utente, /etc/passwdnecessario adattare anche: usermod -g <NEW_GID> <username>.


Questo avrà effetto anche sul gid dei file? Voglio dire, gid di file e gid di gruppo cambieranno contemporaneamente?
mibzer

1
No. Questo cambierà solo l'id del gruppo. File / Directory mantiene il loro gid (ora senza nome) e deve essere modificato separatamente.
jofel

Ok grazie. Quindi, se mi piacerebbe cambiare il loro (file) gid in nuovo gid, devo eseguire un altro comando. È giusto ? Sarebbe meglio se ci fosse modo di cambiare contemporaneamente sia il gid del file del gruppo che il gid dei file correlati.
mibzer

Ho aggiunto l'altro comando alla mia risposta. Non è un problema se si usa temporaneamente un gid che non è in / etc / group. Ogni utente del gruppo deve accedere nuovamente per avere il nuovo gid.
jofel

0

find / path -group foo -print0 | xargs -0 barra chgrp


come ho detto, questo cambierà il gid dei file. Ma non è quello che intendo. Voglio cambiare gid di un gruppo e non di un file.
mibzer

ok, ero confuso, quindi 'vi / etc / group' :)
jirib
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.