En este tutorial, aprenderemos cómo crear un grupo en Linux usando groupadd comando.
¿Qué es un grupo Linux?
Un grupo de Linux se utiliza para administrar los privilegios de un usuario. Podemos definir un conjunto de privilegios para un grupo, como acceso de lectura y escritura a un recurso específico. Luego, todos los usuarios del grupo obtienen automáticamente el acceso a ese recurso.
En términos simples, un grupo es una colección de usuarios. Nos ayuda a otorgar privilegios a un grupo de usuarios rápidamente. Por ejemplo, "sudo" es un grupo y cualquier usuario de ese grupo obtiene automáticamente los privilegios de superusuario.
¿Cómo crear un grupo en Linux?
El comando groupadd de Linux se usa para crear un grupo en Linux. Es un comando específico de Linux y se puede usar en todas las distribuciones, como Ubuntu, CentOS y Debian.
Sintaxis del comando groupadd de Linux
La sintaxis del comando groupadd es:
groupadd [options] GROUP
Veamos algunos ejemplos para comprender el uso del comando groupadd y sus diversas opciones.
Grupo de creación de Linux
El comando groupadd puede ser ejecutado por un usuario root o como un superusuario usando privilegios sudo.
root@localhost:~# groupadd test_users
Si se crea el grupo, no habrá ningún mensaje de error o éxito.
La información de los grupos se almacena en /etc/group
expediente. Podemos verificar este archivo para la información del grupo recién creado.
root@localhost:~# cat /etc/group | grep test_users test_users:x:1004: root@localhost:~#
El número anterior denota la identificación del grupo, que es un valor entero. También podemos usar el getent
comando para obtener los detalles del grupo.
root@localhost:~# getent group test_users test_users:x:1004:journaldev root@localhost:~#
Error si el grupo ya existe
Si el grupo ya existe, se muestra el mensaje de error. Ejecutemos el comando anterior nuevamente.
root@localhost:~# groupadd test_users groupadd: group 'test_users' already exists root@localhost:~#
Creación de un grupo con ID de grupo
También podemos especificar la identificación del grupo al crear el grupo usando la opción -g.
root@localhost:~# groupadd -g 1005 test_users1 root@localhost:~# cat /etc/group | grep 1005 test_users1:x:1005: root@localhost:~#
Si la identificación del grupo ya está en uso, recibirá un mensaje de error.
root@localhost:~# groupadd -g 1005 test_users2 groupadd: GID '1005' already exists root@localhost:~#
Linux groupadd Forzar opción de éxito
Podemos especificar la opción -f o –force para salir con éxito si el grupo ya existe.
root@localhost:~# groupadd -f test_users root@localhost:~#
Si estamos creando un grupo con la opción Forzar éxito y la identificación del grupo ya existe, entonces la identificación del grupo se ignora y se crea el grupo.
root@localhost:~# groupadd -f -g 1005 test_users2 root@localhost:~# cat /etc/group | grep test_users2 test_users2:x:1006: root@localhost:~#
Tenga en cuenta que el grupo de Linux se crea con una identificación de grupo diferente porque usamos la opción -f.
Ayuda para agregar grupos de Linux
Si desea ayuda con el uso del comando groupadd, use la opción -h.
root@localhost:~# groupadd -h Usage: groupadd [options] GROUP Options: -f, --force exit successfully if the group already exists, and cancel -g if the GID is already used -g, --gid GID use GID for the new group -h, --help display this help message and exit -K, --key KEY=VALUE override /etc/login.defs defaults -o, --non-unique allow to create groups with duplicate (non-unique) GID -p, --password PASSWORD use this encrypted password for the new group -r, --system create a system account -R, --root CHROOT_DIR directory to chroot into --extrausers Use the extra users database root@localhost:~#
Linux groupadd -K Opción
Podemos usar la opción -K para anular los valores GID_MIN y GID_MAX presentes en el archivo /etc/login.defs.
Significa que la nueva identificación del grupo se tomará del rango provisto usando la opción -K. Veamos un ejemplo para entender claramente esta función.
root@localhost:~# cat /etc/login.defs | grep GID GID_MIN 1000 GID_MAX 60000 root@localhost:~# root@localhost:~# groupadd -K GID_MIN=20000 -K GID_MAX=21000 test_users6 root@localhost:~# cat /etc/group | grep test_users6 test_users6:x:20000: root@localhost:~#
Si observa los comandos anteriores, los ID de grupo asignados estaban cerca de 1000. Pero en el comando groupadd anterior, el ID de grupo utilizado es 20000.
Crear un grupo con contraseña
Podemos usar la opción -p para crear un grupo con contraseña.
root@localhost:~# groupadd -p abc123 test_users_pwd root@localhost:~#
Pero, nunca lo he usado yo mismo o no he visto a nadie usándolo. De hecho, la página de manual de gpasswd indica que esto es un problema de seguridad.
root@localhost:~# man gpasswd Notes about group passwords Group passwords are an inherent security problem since more than one person is permitted to know the password. However, groups are a useful tool for permitting co-operation between different users.'
Creación de un grupo de sistemas
Podemos usar la opción -r para crear un grupo de sistemas.
No hay diferencia entre un grupo normal y un grupo de sistema. La única diferencia es la asignación de ID de grupo.
Para grupos normales, los ID de grupo se asignan de 1000 a 60000 (valor predeterminado). Para un grupo de sistemas, la identificación del grupo es inferior a 1000.
Una vez más, la identificación del grupo no tiene importancia o no proporciona ningún privilegio adicional.
root@localhost:~# groupadd -r system_group root@localhost:~# cat /etc/group | grep system_group system_group:x:999: root@localhost:~#
Tenga en cuenta que el ID de grupo asignado es 999.
Conclusión
Podemos usar el comando groupadd para agregar grupos en Linux. Es un comando muy simple y común que se puede usar con cualquier distribución de Linux para crear un grupo.
Referencias:
- Discusión de StackExchange sobre casos de uso de contraseñas de grupo
- Debate de AskUbuntu sobre los grupos del sistema