Cómo añadir un usuario a un grupo en FreeBSD 12

Cómo añadir un usuario a un grupo en FreeBSD 12

Gran parte de la política de permisos y privilegios de los usuarios se basan en la pertenencia de estos a ciertos grupos, por lo que en algún momento tendremos que añadir un usuario a un grupo en FreeBSD 12.

Tenemos dos formas de hacer esto con el comando pw.

Cómo especificar los grupos de un usuario en FreeBSD 12

Vamos a trabajar con el usuario inkilino y los grupos grupo1, grupo2 , grupo3 y grupo4.

Podemos especificar a qué grupos pertenece un usuario en un solo comando. Si quisiéramos que inkilino pertenezca a los grupos grupo1 y grupo2 podríamos hacerlo así:

$ sudo pw usermod inkilino -G grupo1,grupo2

Podemos comprobar a qué grupos pertenece el usuario inkilino con el comando id:

$ id inkilino
uid=1002(inkilino) gid=1003(inkilino) groups=1003(inkilino),1004(grupo1),1005(grupo2)

Lo que esperábamos. Podemos también usar el comando groups para una salida más compacta:

$ groups inkilino
inkilino grupo1 grupo2

Si quisiéramos añadir el usuario inkilino a otro grupo, como grupo3, podríamos estar tentados de usar de nuevo pw usermod:

$ sudo pw usermod inkilino -G grupo3

Pero al comprobar la pertenencia del usuario a los grupos mediante id o groups nos llevaríamos una sorpresa:

$ groups inkilino
inkilino grupo3

Efectivamente, se ha añadido a grupo3, pero los otros grupos (a excepción del principal) se han perdido. ¿Por qué pasa esto? Es sencillo, con este comando específicamos a qué grupos pertenece un usuario, así que la última vez que modificamos el usuario inkilino hemos dicho que este pertenece sólo al grupo grupo3.

Para «añadir» un grupo tendríamos que haber especificado todos los grupos a los que ya pertenece más el nuevo grupo. Algo así:

$ sudo pw usermod inkilino -G grupo1,grupo2,grupo3
$ groups inkilino
inkilino grupo1 grupo2 grupo3

Esto es muy engorroso, pero porque usamos un comando para una función distinta de la que está pensada.

La forma correcta de añadir usuarios a grupos es mediante pw groupmod. Partiendo de la situación inicial en la que el usuario sólo pertenece a su grupo principal o login group:

$ groups inkilino
inkilino

Podemos especificar inicialmente varios grupos para el usuario:

$ sudo pw usermod inkilino -G grupo1,grupo2
$ groups inkilino
inkilino grupo1 grupo2

Y ahora sí que podemos AÑADIR un nuevo grupo:

$ sudo pw groupmod grupo3 -m inkilino
$ groups inkilino
inkilino grupo1 grupo2 grupo3

Técnicamente lo que hacemos no es añadir un grupo a un usuario, sino un usuario a un grupo. Estamos modificando el grupo.

Podemos añadir a otro grupo este mismo usuario:

$ sudo pw groupmod grupo4 -m inkilino
$ groups inkilino
inkilino grupo1 grupo2 grupo3 grupo4

La lista sigue creciendo…

Cómo eliminar un usuario de un grupo en FreeBSD 12

Si quisiéramos dar de baja a un usuario de un grupo, o que el usuario no pertenezca al grupo, usaríamos la opción -d del comando pw groupmod. Siguiendo el ejemplo anterior:

$ groups inkilino
inkilino grupo1 grupo2 grupo3 grupo4
$ sudo pw groupmod grupo2 -d inkilino
$ sudo pw groupmod grupo3 -d inkilino
$ groups inkilino
inkilino grupo1 grupo4

Hemos eliminado al usuario de un grupo cada vez que hemos usado pw groupmod.

Las diferencias entre usermod y groupmod

He considerado oportuno explicar las diferencias entre usermod y groupmod porque he visto a muchos usuarios liarse con la opción -G de usermod y perder los grupos de un usuario al intentar añadirlo a otro grupo.

Es un error común, pero conociendo los conceptos no ocurrirá más.

¡Apoya comoinstalar.me!

Si has econtrado esta página de utilidad y quieres agradecérnoslo, puedes hacerlo dejando una propina de tan sólo 1 $ desde PayPal:

¡Gracias!

5/5 - (1 voto)