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
<[email protected]>.
Envíe sus preguntas sobre la documentación a <[email protected]>.