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.