Un grupo es simplemente una lista de usuarios. Los grupos se identifican por su nombre de grupo y gid (ID de grupo). En FreeBSD (y en la mayoría de sistemas Unix), los dos factores que tiene en cuenta el núcleo para decidir si un proceso puede hacer algo es su ID de usuario y la lista de grupos a los que pertenece. A diferencia del ID de usuario, un proceso tiene una lista de grupos asociados. En ocasiones encontrarás menciones al "ID de grupo" de un usuario o de un proceso; la mayoría de las veces referirán simplemente al primero de los grupos de la lista.
La correspondencia entre nombres e IDs de grupo está en /etc/group. Se trata de un fichero de texto plano con cuatro campos separados por el signo dos puntos. El primer campo es el nombre de grupo, el segundo la contraseña encriptada, el tercero el ID de grupo, y el cuarto la lista de miembros separados por comas. Puede ser editado a mano sin peligro (¡suponiendo, por supuesto, que no se cometan errores de sintaxis!). Para una descripción más completa de la sintaxis, ver la página de manual group(5).
Si no quieres editar /etc/group manualmente, puedes usar el comando pw(8) para añadir y modificar grupos. Por ejemplo, para añadir un grupo llamado teamtwo y luego confirmar que existe puedes usar:
Ejemplo 13-7. Añadir un grupo usando pw(8)
# pw groupadd teamtwo # pw groupshow teamtwo teamtwo:*:1100:
El número 1100 en el ejemplo anterior es el ID de grupo del grupo teamtwo. Ahora mismo teamtwo no tiene miembros, y es por tanto bastante inútil. Cambiemos eso invitando a jru a formar parte del grupo teamtwo.
Ejemplo 13-8. Añadir a alguien a un grupo usando pw(8)
# pw groupmod teamtwo -M
jru
# pw groupshow teamtwo
teamtwo:*:1100:jru
El argumento de la opción -M
es una lista con los
usuarios que son miembros del grupo separados por comas. Sabemos de secciones anteriores
que el fichero de contraseñas también contiene un grupo para cada usuario. El
usuario es automáticamente añadido a la lista de grupos por el sistema; no
constará como miembro cuando usemos el comando groupshow
con pw(8), pero sí
cuando la información se consulte con id(1) u otra
herramienta similar. En otras palabras, pw(8) sólo
manipula el fichero /etc/group; nunca tratará de leer
datos adicionales de /etc/passwd.
Ejemplo 13-9. Determinar pertenencia a grupos con id(1)
% id jru uid=1001(jru) gid=1001(jru) groups=1001(jru), 1100(teamtwo)
Como puedes ver, jru es miembro de los grupos jru y teamtwo.
Para más información acerca de pw(8), consulta su página de manual, y para más información acerca del formato de /etc/group, consulta la página de manual de group(5).
Puede descargar éste y muchos otros documentos desde ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.
Si tiene dudas sobre FreeBSD consulte la documentación antes de escribir a la lista
<questions@FreeBSD.org>.
Envíe sus preguntas sobre la documentación a <doc@FreeBSD.org>.