Usuarios y Grupos
Conceptos Claves
- Agregar, modificar y remover usuarios y grupos
- Crear y gestionar cuentas con propósitos especiales.
Términos y Utilidades
- /etc/passwd
- /etc/shadow
- /etc/group
- /etc/skel
- chage
- groupadd
- groupdel
- groupmod
- passwd
- useradd
- userdel
- usermod
Introducción
Linux es un sistema multiusuario, permite que estos usuarios interactúen entre ellos, el sistema, los archivos y los programas que componen el sistema. Para ellos debemos establecer que pueden y que no pueden hacer estos usuatios; además de indicar de que manera deben hacerlo. Para facilitar la gestión de los usuarios, Linux ofrece grupos lógicos en los cuales podemos agrupar usuarios cuyas características sean similares.
Cuentas de usuario y el archivo /etc/passwd
Cuando se agrega una nueva cuenta de usuario a un sistema Linux, se añade una entrada a una lista de usuarios en el archivo que se almacena en el archivo /etc/passwd.
Cada línea del archivo contiene información para una sola cuenta del sistema y contiene los siguientes elementos de información en campos separados por dos puntos:
Nombre de usuario
El primer campo de una línea es un nombre de usuario único para la persona o servicio que utilicen la cuenta.
Contraseña
Cada usuario tiene una contraseña asociada. La contraseña almacenada en este campo que se encuentra cifrada. Además del cifrado, por razones de seguridad, la mayoría de los sistemas almacena contraseñas en un archivo separado, el archivo/etc/shadow. Si no se incluye la contraseña, su campo se rellena por la letra x, que indica que el sistema de contraseñas shadow está en uso.
ID de usuario
Cada nombre de usuario requiere un identificador de usuario único o UID. El UID es simplemente un entero no negativo. La cuenta root se le asigna el UID de 0. Por convención, los valores de UID de 0 a 99 están reservados para uso administrativo, los mayores de 99 son para los usuarios regulares del sistema. En algunos sistemas, se empiezan a asignar UID para usuarios regulares a partir del numero 500.
ID de grupo
Cada usuario tiene un identificador de grupo primario o GID. El GID es también un entero no negativo. Los números de grupo y sus nombres asociados se especifican en el archivo /etc/group. El GID almacenado para cada usuario en /etc/passwd es su ID de grupo por defecto, aunque el usuario puede pertenecer a varios grupos.
El nombre completo del usuario o miscelánea
El nombre del usuario u otra información se almacena como texto sin formato y por lo general contiene el nombre completo del usuario. Este campo puede contener espacios.
Directorio de inicio
El directorio de inicio el directorio por defecto en el sistema de archivos para la cuenta. Si una cuenta es para una persona, probablemente se creará un directorio en el sistema de archivos con archivos de configuración estándar que el usuario puede personalizar. La ruta completa al directorio de inicio está aquí.
Shell por defecto
Este campo especifica el shell por defecto para el usuario o el servicio, que es el shell que se ejecuta cuando el usuario inicia sesión o abre una ventana de shell. En la mayoría de los casos, el shell será /bin/bash o /bin/tcsh, pero puede ser cualquier shell, o incluso otro programa ejecutable.
Grupos y el archivo /etc/group
Los grupos son similares a los usuarios en su administración y se definen en el archivo /etc/group. Al igual que el archivo passwd, el archivo de grupo contiene campos separados por dos puntos:
Nombre del grupo
Este campo indica el nombre del grupo. Cada grupo debe tener un nombre único.
Contraseña
Al igual que las cuentas de usuario tienen contraseñas, los grupos pueden tener contraseñas para sus miembros. Si el campo de la contraseña está vacío, el grupo no requiere una contraseña. La contraseña en un grupo puede usarse para acceder temporariamente al grupo por medio el comando newgrp.
ID de grupo
Cada grupo requiere un GID único. Como los UID, los GID son números enteros no negativos.
Miembros del Grupo
El último campo es una lista de los miembros del grupo por nombre de usuario, separados por comas.
El sistema shadow de contraseñas
En los comienzos de Linux, las contraseñas se podían leer, de manera encriptado, desde el archivo /etc/passwd. Eso los hacia susceptibles a ataques de fuerza bruta. Para corregir esa vulnerabilidad, se trasladaron las contraseñas a los archivos /etc/shadow para los usuarios y /etc/gshadow para los grupos. El único con permisos para leer estos archivos debería ser root.
Comandos de gestión de usuarios y grupos
Aunque es posible, rara vez es necesario (ni aconsejable) manipular la cuenta y los archivos de definición de grupo manualmente con un editor de texto. En cambio, una familia de comandos está disponible para la gestión de cuentas, grupos y contraseñas.
Comando useradd
Descripción
Crea cuentas de usuarios en el sistema. Tanto los valores por defecto del sistema y las opciones especificadas definen cómo se configurara la cuenta. Una contraseña inicial debe ser establecida posteriormente.
Una alternativa a useradd es el comando adduser, el cual nos permite ingresar los parámetros de manera interactiva.
Sintaxis
useradd [opciones] usuario
Opciones de uso más frecuente
Opción | Descripción |
---|---|
-c "comentario" | Define el campo de comentario, probablemente el nombre del usuario. |
-d directorio_inicio | Define el directorio de inicio (Home) del usuario. |
-m | Crea el directorio de inicio y los archivos de esqueleto. |
-s shell | Especifica el shell por defecto para la cuenta. |
Comando usermod
Descripción
Modifica una cuenta de usuario existente. El comando usermod acepta muchas de las mismas opciones que useradd..
Sintaxis
usermod [opciones] usuario
Opciones de uso más frecuente
-L: Bloquea la contraseña, deshabilitando la cuenta.
-U: Libera la contraseña, habilitando la cuenta.
Comando userdel
Descripción
Este comando sirve para eliminar una cuenta de usuario existente. Cuando se combina con la opción -r, se elimina el directorio home del usuario. Hay que tener en cuenta que eliminar por completo las cuentas puede llevar a la confusión cuando los archivos pertenecientes al usuario eliminado permanecen en otros directorios del sistema. Por esta razón, es común para desactivar una cuenta en lugar de eliminarla. Las cuentas pueden ser desactivadas mediante los comandos chage, usermod y passwd.
Sintaxis
userdel [-r] usuario
Comando groupadd
Descripción
Añade grupo al sistema. En el caso excepcional de que una contraseña de grupo sea necesaria para el grupo, hay que añadir el uso del comando gpasswd después de crear el grupo.
Sintaxis
groupadd [opciones] grupo
Comando groupmod
Descripción
Modifica los parámetros de un grupo existente.
Sintaxis
groupmod [opciones] grupo
Opción
-n nombre: Modifica el nombre del grupo
Comando groupdel
Descripción
Elimina un grupo del sistema.
Sintaxis
groupdel nombre_grupo
Comando passwd
Descripción
El comando passwd cambia las contraseñas de cuentas de usuario. Un usuario normal sólo puede cambiar la contraseña de su propia cuenta, mientras que root puede cambiar la contraseña de cualquier cuenta. También se puede usar para cambiar el período de validez de la contraseña asociada.
Sintaxis
passwd [opciones] usuario
Opción
-l: Bloquea la contraseña, deshabilitando así la cuenta.
Comando chage
Descripción
Modifica la expiración de las contraseñas .
Sintaxis
chage [opciones] usuario
Opciones
Opción | Descripción |
---|---|
-E fecha_expiración | Establece la fecha de expiración de la contraseña. |
-d ultimo_día | Establece la fecha en el que la contraseña se cambio por ultima vez. |
-I días_inactivo | Luego de cuantos días de expirada la contraseña se deshabilita la cuenta. |
-m días | Establece mínimo de días que tienen que pasar desde el ultimo cambio de contraseña para poder volver a cambiar. |
-M días | Estable máximo de días que un usuario puede mantener una mismo contraseña antes de cambiarla. |
-l | Lista las opciones de contraseña de un usuario. |
Ejemplo
El siguiente comando establece la fecha de expiración de la cuenta un usuario.