Administrar usuarios y grupos en Linux con ejemplos
Administrar usuarios y grupos en Linux con ejemplos

Master en administrar usuarios y grupos en Linux

Administrar grupos de usuarios en sistemas Linux es fácil, pero los comandos pueden ser más flexibles de lo que te imaginas.

Los grupos de usuarios juegan un papel importante en los sistemas Linux. Proporcionan una manera fácil para que grupos selectos de usuarios compartan archivos entre ellos. También permiten que los administradores de sistemas administren de manera más efectiva los privilegios de los usuarios, ya que pueden asignar privilegios a grupos en lugar de usuarios individuales.

Si bien generalmente se crea un grupo de usuarios cada vez que se agrega una cuenta de usuario a un sistema, todavía hay mucho que saber sobre cómo funcionan y cómo trabajar con ellos.

1. ¿Un usuario, un grupo?

La mayoría de las cuentas de usuario en sistemas Linux se configuran con los nombres de usuario y grupo de la misma. El usuario “alexynior” se configurará con un grupo llamado “alexynior” y será el único miembro de ese grupo recién creado. El nombre de inicio de sesión del usuario, la identificación del usuario y la identificación del grupo se agregarán a los archivos /etc/passwd/etc/group cuando se agrega la cuenta, como se muestra en este ejemplo:

sudo useradd alexynior
grep alexynior /etc/passwd
grep alexynior /etc/group
Ejemplo de agregar usuario y grupo por defecto en Linux
Ejemplo de agregar usuario y grupo por defecto en Linux

Los valores en estos archivos permiten que el sistema traduzca entre las versiones de texto (alexynior) y numéricas (1000) del ID de usuario: alexynior es 1000 y 1000 es alexynior.

El UID asignado (ID de usuario) y el GID (ID de grupo) para cada usuario son generalmente iguales y configurados secuencialmente. Si alexynior en el ejemplo anterior fuera el usuario agregado más recientemente, el próximo nuevo usuario probablemente se le asignaría 1001 como ID de usuario y grupo.

2. ¿GID = UID?

Los UID y GID se pueden de-sincronizar. Por ejemplo, si agregas un grupo usando el comando groupadd sin especificar una identificación de grupo, tu sistema asignará la siguiente identificación de grupo disponible (en este caso, 1001). El siguiente usuario que se agregará al sistema obtendría 1001 como UID pero 1002 como GID.


Puedes evitar este problema especificando un ID de grupo más pequeño cuando agregas un grupo en lugar de ir con el predeterminado. En este comando, agregaré un nuevo grupo y proporcionaré un GID que es más pequeño que el rango utilizado para las cuentas de usuario.

sudo groupadd -g 500 devops

Si funciona mejor para ti, puedes especificar un grupo compartido cuando creas cuentas. Por ejemplo, es posible que desees asignar nuevos miembros del personal de desarrollo (staff) a un grupo devops en lugar de poner a cada uno en su propio grupo.

sudo useradd -g staff bennyg
grep bennyg /etc/passwd
Crear y asignar grupos de usuario en Linux
Crear y asignar grupos de usuario en Linux

3. Grupos primarios y secundarios

En realidad, hay dos tipos de grupos: primario y secundario.

  • El grupo primario es el que está registrado en el archivo /etc/passwd, configurado al crear la cuenta. Cuando un usuario crea un archivo, es su grupo principal el que está asociado con él.
whoami
grep jdoe /etc/passwd
touch nuevoarchivo
ls -l nuevoarchivo
Grupo primario de usuarios en Linux
Grupo primario de usuarios en Linux
  • Los grupos secundarios son aquellos a los que podrían agregarse usuarios una vez que ya tienen cuentas. Las membresías de grupos secundarios se muestran en el archivo /etc/group.
grep devops /etc/group
Grupos secundarios de usuarios en Linux
Grupos secundarios de usuarios en Linux

El archivo /etc/group asigna nombres a los grupos de usuarios (p. Ej., 500 = devops) y registra los miembros del grupo secundario.

Convención preferida: chgrp

La convención de que cada usuario sea miembro de su propio grupo y, opcionalmente, miembro de cualquier número de grupos secundarios permite a los usuarios separar más fácilmente los archivos que son personales de aquellos que necesitan compartir con sus compañeros de trabajo. Cuando un usuario crea un archivo, los miembros de los diversos grupos de usuarios a los que pertenecen no necesariamente tienen acceso. Un usuario tendrá que usar el comando chgrp para asociar un archivo con un grupo secundario.


Un detalle importante al agregar una nueva cuenta es que el comando useradd no agrega necesariamente un directorio home para un nuevo usuario. Si deseas que este paso se realice solo una parte del tiempo, puedes agregar -m (make) con tus comandos useradd.

Las opciones en este comando:

sudo useradd -m -g devops -c "Alexis Junior" alexynior2
  • -m crea el directorio home
  • -g especifica el grupo al que asignará el usuario
  • -c agrega un descriptor para la cuenta (generalmente el nombre de la persona)
Crear usuario grupo y home en Linux
Crear usuario grupo y home en Linux

Si deseas que se cree un directorio home todo el tiempo, puedes cambiar el comportamiento predeterminado editando el archivo /etc/login.defs. Cambia o agregua una configuración para la variable CREATE_HOME y configúrala como “yes“:

$ grep CREATE_HOME /etc/login.defs
CREATE_HOME     yes

Otra opción es configurar un alias para que useradd siempre use la opción -m.

$ alias useradd=’useradd -m’

Asegúrate de agregar el alias a tu ~/.bashrc o un archivo de inicio similar para que sea permanente.

4. Buscando en /etc/login.defs

Aquí hay un comando para enumerar toda la configuración en el archivo /etc/login.defs. Los comandos grep están ocultando comentarios y líneas en blanco.

cat /etc/login.defs | grep -v "^#" | grep -v "^$"
Buscar en archivo etc-login.defs
Buscar en archivo etc-login.defs

Observa que los distintos ajustes en este archivo determinan el rango de identificadores de usuario que se utilizarán junto con la antigüedad de la contraseña y otros ajustes (por ejemplo, umask).

5. Cómo mostrar los grupos de un usuario

Los usuarios pueden ser miembros de múltiples grupos por varias razones. La membresía grupal le da al usuario acceso a los archivos y directorios propiedad del grupo, y a veces este comportamiento es crítico. Para generar una lista de los grupos a los que pertenece algún usuario, usa el comando groups.

groups alexynior

Puede enumerar tus propios grupos, escribe groups sin un argumento.

  • Mostrar solo la ID del grupo, ingresa:
id -g
id -g {usuario/grupo}
id -gn {grupo/usuario}
  • Visualizar solo la ID del grupo y los grupos suplementarios, ingresa:
id -G 
id -G {usuario/grupo}
id -Gn {grupo/usuario}

6. Cómo agregar usuarios a grupos

Si deseas agregar un usuario existente a otro grupo, puedes hacerlo con un comando como este:

sudo usermod -a -G devops esgeeks
Agregar editar y modificar usuarios en Linux
Agregar editar y modificar usuarios en Linux

También puedes agregar un usuario a varios grupos especificando los grupos en una lista separada por comas:

sudo usermod -a -G devops,staff esgeeks

El argumento -a significa “agregar” mientras que -G enumera los grupos.

Puede eliminar un usuario de un grupo editando el archivo /etc/group y eliminando el nombre de usuario de la lista. El comando usermod también puede tener una opción para eliminar un miembro de un grupo.

Editar archivo etc.group
Editar archivo etc.group

7. Conclusión

Agregar y administrar grupos de usuarios no es particularmente difícil, pero la coherencia en la forma de configurar las cuentas puede facilitarte a largo plazo.

¿Te ha gustado este artículo? ¡Da clic aquí por favor! Sígue este blog en su fanpage de  FacebookTwitterInstagram y/o YouTube para que no te pierdas del mejor contenido informático y hacking!

Mi Carro Close (×)

Tu carrito está vacío
Ver tienda