Cambiar gid de un grupo específico

34

Me gustaría cambiar la identificación del grupo de un grupo específico. Hay muchas soluciones para cambiar el gid de un archivo o directorios. Pero eso no es lo que quiero. ¿Hay una manera de hacerlo?

mibzer
fuente

Respuestas:

42

El GID es el identificador principal del grupo. En lo que respecta al sistema, un GID diferente es un grupo diferente. Entonces, para cambiar el GID, tendrá que modificar todos los lugares donde se usa ese GID.

Debe evitar tratar el GID como significativo y utilizar nombres de grupo en su lugar; Puede cambiar el nombre de un grupo con un solo comando (en Linux:) groupmod -n NEW_GROUP_NAME OLD_GROUP_NAME.

Sin embargo, si realmente desea cambiar el GID, así es como:

  • Primero, es posible que deba cerrar la sesión de los usuarios en el grupo y eliminar los procesos que tienen ese grupo como su grupo efectivo, real o guardado.
  • Cambiar la entrada en la base de datos del grupo. En Linux, ejecuta groupmod -g NEWGID GROUPNAME. En otros sistemas, use la herramienta de administración de ese sistema, o vigrsi está disponible, o edite /etc/groupsegún corresponda.
  • Cambie el grupo de todos los archivos en su sistema que pertenecen al grupo anterior.

    find / -gid OLDGID ! -type l -exec chgrp NEWGID {} \;
    
  • chgrp borra las banderas suid y sgid, restaura esas.

  • Si tiene algún archivo que use el GID anterior, vuelva a generarlo.
  • Si tiene algún archivo de configuración o script que haga referencia al GID anterior, actualícelo.
  • Reinicie todos los procesos que deben usar el nuevo GID.
Gilles 'SO- deja de ser malvado'
fuente
2
Sugerir usar en chgrp -h ...lugar de chgrp .... Sin -h, el objetivo de cualquier enlace simbólico relevante tendrá su grupo cambiado.
Mark Plotnick
3
groupmodtomar un nombre como argumento principal para mí ...groupmod -g NEWGID GROUPNAME
Matt
29

La forma más fácil es usar groupmod -g <NEW_GID> <groupname>

Otra forma es editar /etc/groupdirectamente. El tercer campo en cada columna es el gid.

Si el grupo que cambió es el grupo principal de un usuario, /etc/passwddeberán adaptarse, también: usermod -g <NEW_GID> <username>.

jofel
fuente
¿Esto también afectará gid de archivos también? Quiero decir, ¿gid de archivo y gid de grupo cambiarán al mismo tiempo?
mibzer
1
No. Esto cambiará solo la identificación del grupo. Archivos / Directorios mantiene su gid (ahora sin nombre) y debe cambiarse por separado.
jofel
Ok, gracias. Entonces, si me gustaría cambiar su (archivos) gid a un nuevo gid, tengo que ejecutar otro comando. Está bien ? Eso sería mejor si hay forma de cambiar tanto el gid del archivo de grupo como el gid de los archivos relacionados al mismo tiempo.
mibzer
He agregado el otro comando a mi respuesta. No es un problema si se usa un gid temporal que no está en / etc / group. Todos los usuarios del grupo deben volver a iniciar sesión para tener el nuevo gid.
jofel
0

buscar / ruta -grupo foo -print0 | xargs -0 chgrp bar

jirib
fuente
como dije eso cambiará el gid de los archivos. Pero eso no es lo que quiero decir. Quiero cambiar el gid de un grupo, no un archivo.
mibzer
ok, estaba confundido, entonces 'vi / etc / group' :)
jirib