Usuarios y grupos en Linux

La mantención de cuentas de usuarios y grupos en Linux es una tarea fundamental de cualquier administrador de sistemas. En este post mostraremos cómo crear, modificar, y eliminar cuentas de usuario y grupos de nuestro sistema Linux.

Crear usuarios y grupos en Linux

Para crear el usuario fulano, agregando el nombre completo (Fulano De Tal) en el campo comentario utilizaremos el comando usermod con la opción -c. Por defecto, también se creará el directorio home del usuario en /home/fulano y se le asignará /bin/bash como shell:

[pastacode lang=»bash» manual=»useradd%20fulano%20-c%20%22Fulano%20De%20Tal%22″ message=»» highlight=»» provider=»manual»/]

Si queremos cambiar el shell del usuario fulano a /bin/sh, el contenido del campo comentario a Fulano De Tal actualizado y el directorio home a /mnt/homes/fulano (el cual debe ser creado primero) usaremos la opción -s (cambiar shell) y -d (cambiar home), junto con -c (actualizar comentario):

[pastacode lang=»bash» manual=»mkdir%20-p%20%2Fmnt%2Fhomes%2Ffulano%0Ausermod%20-s%20%2Fbin%2Fsh%20-c%20%22Fulano%20De%20Tal%20actualizado%22%20-d%20%2Fmnt%2Fhomes%2Ffulano%20fulano» message=»» highlight=»» provider=»manual»/]

Para asignar una contraseña inicial al usuario fulano emplearemos el comando passwd. Luego de iniciar sesión por primera vez, él podrá cambiarla utilizando el mismo comando.

[pastacode lang=»bash» manual=»passwd%20fulano» message=»» highlight=»» provider=»manual»/]

Validez de cuentas de usuario

Una vez que hemos creado la cuenta de usuario, el comando chage con su opción -l nos permitirá ver información detallada sobre el período de validez de la misma (por defecto, una cuenta de usuario nunca expira) y de la contraseña. Como medida de seguridad es una buena idea requerir un cambio de clave cada cierto período de tiempo.

La salida del comando

[pastacode lang=»bash» manual=»chage%20-l%20fulano» message=»» highlight=»» provider=»manual»/]

debería ser similar al siguiente:

[root@server ~]# chage -l fulano
Last password change                                    : Jul 16, 2016
Password expires                                        : never
Password inactive                                       : never
Account expires                                         : never
Minimum number of days between password change          : 0
Maximum number of days between password change          : 99999
Number of days of warning before password expires       : 7

Ahora veremos cómo editar la cuenta de fulano de tal manera que la cuenta expire (-E) el 31 de diciembre de 2016, y mientras tanto se le permita cambiarla solamente (-m) una vez por semana (7 días). Cada contraseña será válida como máximo (-M) durante 60 días, y 3 días antes se le debe enviar un recordatorio para que la modifique (-W). Finalmente, 5 días después de la fecha de vencimiento de la contraseña se procederá a bloquear (-I) la cuenta:

[pastacode lang=»bash» manual=»chage%20-E%202016-12-31%20-m%207%20-M%2060%20-W%203%20-I%205%20fulano» message=»» highlight=»» provider=»manual»/]

Veamos el resultado nuevamente con chage:

[root@server ~]# chage -l fulano
Last password change                                    : Jul 16, 2016
Password expires                                        : Sep 14, 2016
Password inactive                                       : Sep 19, 2016
Account expires                                         : Dec 31, 2016
Minimum number of days between password change          : 7
Maximum number of days between password change          : 60
Number of days of warning before password expires       : 3

Por seguridad, podemos forzar a que fulano cambie su contraseña la próxima vez que inicie sesión:

[pastacode lang=»bash» manual=»chage%20-d%200%20fulano» message=»» highlight=»» provider=»manual»/]

Administración de grupos

En Linux, los grupos constituyen el primer método de control de acceso a los recursos del sistema (lo cual veremos más en detalle en el próximo post). Cuando se crea una cuenta de usuario, también se crea un grupo con el mismo nombre y ambos son vinculados.

Para crear un nuevo grupo adicional llamado migrupo y agregar a fulano al mismo volveremos a usar el comando usermod con sus opciones -a (append) y -G (group) seguidos por el nombre del grupo y el usuario que deseamos agregar al mismo:

[pastacode lang=»bash» manual=»groupadd%20migrupo%0Ausermod%20-a%20-G%20migrupo%20fulano» message=»» highlight=»» provider=»manual»/]

Para ver la lista de grupos a los que pertenece un determinado usuario podemos utilizar los comandos groups o id, seguido por el nombre de usuario:

[pastacode lang=»bash» manual=»groups%20fulano%0Aid%20fulano» message=»» highlight=»» provider=»manual»/]

Para remover a fulano del grupo migrupo nuevamente haremos uso de usermod -G seguido de todos los grupos a los que se desea que continúe perteneciendo el usuario salvo el indicado).

[pastacode lang=»bash» manual=»usermod%20-G%20fulano%20fulano» message=»» highlight=»» provider=»manual»/]

En la Fig. 1 podemos ver la lista de grupos a los que pertenece fulano antes y después de removerlo de migrupo:

Usuarios y grupos en Linux: pertenencia a grupos
Figura 1: Usuarios y grupos en Linux: pertenencia a grupos

Si lo que queremos es borrar la cuenta del usuario fulano, junto con su directorio home, la cola de correos (/var/spool/mail/fulano por defecto), y los contenidos de dichos directorios:

[pastacode lang=»bash» manual=»userdel%20-r%20fulano» message=»» highlight=»» provider=»manual»/]

Para borrar un grupo dado, utilizaremos groupdel:

[pastacode lang=»bash» manual=»groupdel%20migrupo» message=»» highlight=»» provider=»manual»/]

En el próximo post profundizaremos en el uso de grupos y de restricción de acceso a los recursos del sistema. ¡Hasta entonces!

Deja una respuesta