En la entrada anterior hemos visto cómo gestionar los usuarios y contraseñas de nuestra Raspberry Pi. Ahora nos toca profundizar en la gestión de usuarios con la creación de grupos de usuarios.
Los grupos de usuario facilitan la configuración de permisos en sistemas donde hay un gran número de usuarios, donde controlar los permisos de forma individual sería impracticable. Ten en cuenta que los sistemas basados en Unix y sus aplicaciones están pensadas con para sistemas con múltiples usuarios (incluso cientos o miles).
Si estás pensando que, si tu equipo es una máquina local y sólo vas a tener tu usuario, quizás esto no sea realmente importante para ti. Pero todo tu sistema se basa en esto así que, créeme, tarde o temprano te va a tocar lidiar con los grupos de usuarios. Pero tranquilo, ¡es mucho más fácil de lo que parece, como vamos a ver en esta entrada!
Todas las ordenes de esta entrada hacen referencia al control de usuarios. Por lo que, para emplearlas, deberemos estar loggeados como Super Usuario o usar el comando ‘sudo’ como vimos en esta entrada.
¿Por qué grupos de usuarios?
Si tienes un sistema con 1 o 2 usuarios, es posible que puedas gestionar los permisos a nivel individual. Pero a medida que el número de usuarios crece, con decenas o cientos de usuarios, la gestión se te va a volver un poco impracticable.
Imaginad una empresa, donde constantemente entran y salen trabajadores, cambios de departamentos… una locura. Ahora imagina un servidor con miles de usuarios. ¡Sería imposible configurar los permisos de forma individual!
Para eso, lo normal es trabajar con grupos de usuarios y conceder los permisos a carpetas o ejecución de programas a nivel de grupos de usuarios. Después, únicamente tienes que encargarte de que cada usuario forme parte de los grupos oportunos y tendrán los permisos que corresponden.
Los grupos de usuario pueden obedecer a una cuestión organizativa. Así, por ejemplo, el grupo ‘Marketing’ tiene permisos diferentes de ‘Finanzas’. O, por poner un ejemplo doméstico, el grupo ‘Familia’ distintos al grupo ‘Invitados’.
Otra aproximación bastante frecuente en algunas aplicaciones es crear un grupo que tiene permiso de ejecución de un programa, acceso a un dispositivo, o a una carpeta. Por ejemplo, al instalar la aplicación ‘A’ crea un grupo ‘A-Users’, que tienen permiso para ejecutarla. Para conceder permisos de ejecución a un usuario tienes que agregarlo a este grupo.
Gestionar grupos de usuarios
Añadir/quitar grupos de usuarios
Para crear un nuevo grupo de usuarios simplemente escribimos.
groupadd nombre_grupo
Siendo nombre_grupo el nombre del grupo que queremos crear. Si lo que queremos es borrar un grupo de usuarios existente usamos:
groupdel nombre_grupo
Para renombrar un grupo de usuarios tememos el comando
groupmod -n nombre_nuevo nombre_anterior
Añadir/quitar usuarios de grupos
Para añadir el usuario actual a un grupo podemos usar este comando:
newgrp nombre_grupo
Si queremos añadir otro usuario a un grupo usaremos el comando:
adduser nombre_usuario nombre_grupo
Alternativamente podemos usar el siguiente comando (útil si queremos añadirlo a más de un grupo en un único comando)
usermod -a -G nombre_grupo1, nombre_grupo2, nombre_grupo3 nombre_usuario
Finalmente, para quitar a un usuario de un grupo de usuarios, usamos el comando
deluser nombre_usuario nombre_grupo
Que únicamente quitará al usuario del grupo de usuarios, no eliminará al usuario en sí.
Listar grupos de usuarios
Para listar todos los grupos a los que pertenece el usuario actual, simplemente, usamos:
groups
También podemos mostrar los grupos a los que pertenece otro usuario con:
groups nombre_usuario
Por último, si lo que queremos es listar todos los grupos existentes en la máquina actual usamos el comando:
cut -d: -f1 /etc/group
Grupos de usuarios por defecto
La instalación de Raspbian crea ciertos grupos de usuarios por defecto. A continuación, un resumen de los principales grupos de usuarios por defecto y su propósito.
Grupo | Descripción |
---|---|
pi | Grupo de usuario. (Se crea un nuevo grupo automáticamente cada vez que se crea un usuario) |
sudo | Acceso sudo |
adm | Acceso a los ficheros de log ubicados en /var/log |
cdrom | Acceso a unidades ópticas |
audio | Aceeso a dispositivos de audio (micrófonos, tarjeta de sonido, etc) |
video | Accseo a dispositivos de video (tarjeta gráfica, framebuffer, webcams) |
plugdev | Acceso a dispositivos de almacenamiento externo |
input | Acceso a carpeta /dev/input/mice |
netdev | Acceso a dispositivos de red |
dialout | Acceso a puertos serie/modems, etc |
gpio | Acceso al puerto GPIO |
i2c | Acceso al bus I2C |
spi | Acceso al bus SPI |
¡Así de fácil! En las próximas entradas veremos cómo gestionar permisos tanto para usuarios como para grupos de usuarios. Si tenéis alguna duda o conocéis otros comandos, podéis dejarnos un comentario.