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?

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.

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>.


¿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


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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.