Usuarios en Linux I
Como ya sabemos Linux es un sistema multiusuario, por lo tanto, la gestión de usuarios y grupos es algo de lo mas habitual. Es importante tener claro todo esto, pues si no tendremos un gran agujero de seguridad en nuestros sistemas.
Primero vamos a dejar algunos conceptos claros y luego los comandos con sus funciones. Para realizar este trabajo desde el terminal tenemos varios comandos. Tienen varias funciones, creación, borrado, cambios, etc. Vamos a ver algunos de ellos.
Tipos de usuarios:
Usuario root
- También conocido como superusuario o administrador.
- Su UID (User ID) es 0.
- Cuenta con poder sobre todo el sistema.
- Acceso total a los archivos y directorios.
- Controla las de cuentas del resto de usuarios.
- Ejecuta tareas de mantenimiento.
- Instala software.
- Puede modificar cualquier parametro del sistema.
Puede realizar cualquier accion sobre el sistema
Usuarios especiales
- bin, daemon, adm, lp, sync, etc.
- Conocidos también como cuentas de sistema.
- Dependiendo de la cuenta tiene privilegios alguna de root.
- No tienen contraseñas.
- Normalmente se les asigna un UID entre 1 y 100.
Usuarios normales
- Se usan para usuarios individuales.
- Cada usuario dispone de un directorio de trabajo conocido como home que esta generalmente en /home.
- Tienen solo privilegios completos en su HOME.
- Normalmente se les asigna generalmente un UID superior a 500.
Gestión de usuarios
Para la gestión de usuario utilizamos varios comandos, lo mas importantes son:
- useradd
- usermod
- userdel
- passwd
- chage
Ahora veremos como utilizar cada uno de ellos.
Añadir
El comando que nos permite añadir un usuario es “adduser”, Lo utilizaremos desde el terminal como root. Las opciones más utilizadas son:
-c añade un comentario.
-d indica el home del usuario. Si no existe no se creará.
-m crea el home del usuario si no existe.
-e indica la fecha de expiración de la cuenta, formato AAAA-MM-DD.
-G otros grupos a los que puede pertenecer el usuario, separados por comas.
-s shell por defecto, bash.
-u UID del usuario, automáticamente el siguiente disponible.
Si utilizamos el comando sin especificar ninguna opcion, se utilizaran las que tenga el sistema por defecto, que se almacenan en/ etc/default/useradd. Estas se pueden consultar con el comando:
#useradd -D
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/sh
SKEL=/etc/skel
CREATE_MAIL_SPOOL=no
Con este mismo comando podemos modificar o añadir variables por defecto.
Ejemplo:
#useradd -m -d /home/sistemas -s /bin/bash -c "Sistemas" sistemas
Con el comando anterior hemos creado un usuario llamado sistemas, con su home en /home/sistemas, creando el home y con un comentario en el que pone Sistemas.
Una vez creado el usuario le ponemos contraseña del siguiente modo:
#passwd sistemas
Nueva contraseña:
Vuelva a escribir la nueva contraseña:
Modificar
El comando que nos permite modificar o actualizar las características de un usuario es “usermod”, Lo utilizaremos desde el terminal como root. Las opciones más utilizadas son:
-c añade o modifica el comentario.
-d modifica home del usuario.
-e cambia o establece la fecha de expiración de la cuenta, formato AAAA-MM-DD.
-l cambia el login o nombre del usuario.
-L bloque la cuenta del usuario. No borra ni cambia nada del usuario, solo lo deshabilita.
-s cambia el shell por defecto del usuario.
-U desbloquea una cuenta bloqueada con la opción -L.
Borrar
El comando borra un usuario es “userdel”, Lo utilizaremos desde el terminal como root. Las opciones más utilizadas son:
-f fuerza la eliminación de la cuenta de usuario, incluso si esta conectado. Borra su home y el spool de correo
Nota: Esta opción es peligrosa y puede dejar su sistema en un estado inconsistente.
-r borra el home y el spool de correo. Si el usuario tiene ficheros en otros sistemas no los borrar.
Contraseñas
Para la gestión de contraseñas se pueden utilizar varios comandos (passwd,chage,etc).
Con passwd el de usuario al ejecutarlo cambia su contraseañ. Si lo eejecuta root indicando un usuario concreto cambia la contraseña del usuario indicado como hemos visto anteriormente en la creación del usuario. El proceso tiene varios pasos:
- Sollicita la antigua contraseña, si existe.
- Se comprueba, se verifica que el usuario puede cambiarla.
- Solicita la nueva contraseña.
- Solicita repetir la nueva contraseña.
Este proceso es cuando el comando lo utiliza un usuario, si lo utiliza root no realia ninguna comprobación.
Las opciones más utilizadas son:
-d borra la contraseña. Forma rápida de desactivar el usuario.
-e expira. Fuerza al usuario a cambiar su contraseña en el próximo inicio de sesión.
-i desactiva después de que la contraseña haya caducado.
-l Bloquea la contraseña. Esta opción deshabilita una contraseña (añade un '!' al principio de la contraseña).
** Esto no desactiva la cuenta si usuario esta utilizando otro token de autenticación (por ejemplo, una clave SSH).
Para deshabilitar utilizar usermod --expiredate 1 (fecha de expiración 02/01/).**
-n número mínimo de días entre cambios, si el es cero puede cambiar cuando quiera.
-S información del estado.
-u desbloquea la contraseña, deja el valor anterior de la opción -l.
-w número de días de advertencia antes de solicitar el cambio.
Los usuarios con una contraseña bloqueada no pueden cambiar su contraseña.