Cada usuario en el sistema tiene su propio entorno, permisos y configuraciones, y el correcto manejo de estas cuentas es crucial para mantener la seguridad y estabilidad del sistema.


Cada usuario en el sistema tiene su propio entorno, permisos y configuraciones, y el correcto manejo de estas cuentas es crucial para mantener la seguridad y estabilidad del sistema.

Uno de los comandos más utilizados para crear usuarios en GNU/Linux es useradd. A diferencia de adduser, que es un script más automatizado, useradd es un comando más bajo nivel que permite un control detallado sobre la creación de cuentas de usuario.

En este artículo, exploraremos el funcionamiento de useradd, su sintaxis básica y algunos ejemplos prácticos de su uso con diferentes opciones.

¿Para qué se usa el comando?

El comando useradd se utiliza para crear cuentas de usuario en sistemas GNU/Linux. A diferencia de adduser, useradd no hace preguntas interactivas, lo que lo convierte en una herramienta más adecuada para scripts automatizados y situaciones donde se requiere un control más preciso sobre la configuración del usuario. Además de crear la cuenta de usuario, useradd también puede configurar aspectos como el directorio de inicio, la shell, el grupo principal, y más.

En esencia, useradd es la herramienta básica para crear usuarios de manera programática y no interactiva, ideal para administradores que buscan automatizar la administración de cuentas o necesitan configuraciones específicas desde el inicio.

Sintaxis básica del comando useradd

La sintaxis general del comando useradd es la siguiente:

useradd [opciones] NOMBRE_USUARIO

Aquí, NOMBRE_USUARIO es el nombre de la cuenta que deseas crear. A diferencia de adduser, useradd no solicita información adicional como la contraseña o el nombre completo del usuario de manera interactiva. Estas configuraciones deben ser realizadas manualmente o mediante opciones adicionales en el comando.

Principales opciones de useradd

El comando useradd ofrece una gran cantidad de opciones que permiten personalizar la creación de la cuenta de usuario. Algunas de las más comunes y útiles son:

  • -d, --home DIR: Especifica un directorio de inicio personalizado para el usuario. Si no se especifica, se utiliza /home/NOMBRE_USUARIO.
  • -s, --shell SHELL: Define la shell predeterminada para el nuevo usuario. Por defecto, se utiliza la shell especificada en el archivo /etc/default/useradd.
  • -g, --gid GRUPO: Especifica el grupo principal del usuario. Si no se proporciona, se crea un grupo con el mismo nombre que el usuario.
  • -G, --groups GRUPOS: Define una lista de grupos secundarios a los que el usuario también pertenecerá.
  • -c, --comment COMENTARIO: Añade un comentario, que normalmente se usa para almacenar el nombre completo del usuario o información adicional.
  • -m, --create-home: Crea el directorio de inicio del usuario si no existe. Si esta opción no se especifica, useradd no crea el directorio de inicio.
  • -p, --password CONTRASEÑA: Define la contraseña del usuario. Se debe proporcionar la contraseña encriptada, por lo que generalmente esta opción se utiliza junto con herramientas para generar hashes de contraseña.
  • -e, --expiredate FECHA: Define la fecha de expiración de la cuenta en formato YYYY-MM-DD. Después de esta fecha, el usuario no podrá iniciar sesión.
  • -f, --inactive INACTIVIDAD: Especifica el número de días después de que expire la contraseña del usuario antes de que se desactive la cuenta.

Ejemplos prácticos

A continuación os dejamos algunos ejemplos prácticos del comando:

Crear un usuario con configuraciones básicas

El uso más simple de useradd crea una cuenta de usuario con configuraciones predeterminadas:

useradd t3rr0rz0n3

Este comando crea un usuario llamado "t3rr0rz0n3". Sin embargo, no se creará un directorio de inicio ni se asignará una contraseña. Estos pasos adicionales deben ser realizados manualmente.

Crear un usuario con un directorio de inicio

Para asegurarte de que el usuario tiene un directorio de inicio, utiliza la opción -m:

useradd -m t3rr0rz0n3

Este comando crea al usuario "t3rr0rz0n3" y también un directorio de inicio en /home/t3rr0rz0n3.

Crear un usuario con un directorio de inicio personalizado

Si prefieres que el directorio de inicio del usuario esté en otra ubicación, usa la opción -d:

useradd -m -d /mnt/data/t3rr0rz0n3 t3rr0rz0n3

Este comando crea al usuario "t3rr0rz0n3" con su directorio de inicio en /mnt/data/t3rr0rz0n3.

Crear un usuario con una shell específica

Si deseas asignar una shell diferente para el usuario, utiliza la opción -s. Por ejemplo, para usar zsh en lugar de bash:

useradd -m -s /bin/zsh t3rr0rz0n3

Esto creará el usuario "t3rr0rz0n3" y configurará /bin/zsh como su shell predeterminada.

Crear un usuario y asignarlo a un grupo específico

Para asignar al usuario a un grupo principal diferente del predeterminado, usa la opción -g. Por ejemplo, si quieres que el grupo principal del usuario sea "sysadmin":

useradd -m -g desarrolladores t3rr0rz0n3

Este comando crea el usuario "t3rr0rz0n3" y lo asigna al grupo "sysadmin" como su grupo principal.

Crear un usuario y asignarlo a múltiples grupos

Si deseas que el usuario pertenezca a varios grupos, usa la opción -G para especificar los grupos secundarios:

useradd -m -G sudo,docker t3rr0rz0n3

Este comando crea el usuario "t3rr0rz0n3" y lo agrega a los grupos sudo y docker, además de su grupo principal.

Crear un usuario con una fecha de expiración

Para configurar una fecha de expiración en la cuenta del usuario, usa la opción -e. Por ejemplo, para que la cuenta expire el 31 de diciembre de 2024:

useradd -m -e 2024-12-31 t3rr0rz0n3

Este comando creará al usuario "t3rr0rz0n3", pero su cuenta expirará en la fecha especificada, después de la cual no podrá iniciar sesión.

Crear un usuario con una cuenta deshabilitada

Si quieres crear la cuenta de usuario pero mantenerla deshabilitada hasta que se configure completamente, puedes usar la opción -s con /usr/sbin/nologin como shell:

useradd -m -s /usr/sbin/nologin t3rr0rz0n3

Esto creará la cuenta "t3rr0rz0n3", pero el usuario no podrá iniciar sesión hasta que se cambie la shell predeterminada.

Conclusión

A diferencia de adduser, useradd ofrece un control más detallado y preciso sobre el proceso de creación de cuentas, lo que lo hace ideal para automatizaciones y situaciones donde se requiere un manejo más fino de las configuraciones del usuario.

Aprender a utilizar las diversas opciones de useradd te permitirá gestionar usuarios de manera más eficiente y adaptada a las necesidades específicas de tu sistema. Ya sea que necesites crear cuentas con configuraciones predeterminadas o altamente personalizadas, useradd te proporciona las herramientas necesarias para lograrlo.


¿Buscas otro comando?

¡Revisa nuestro "Diccionario de comandos para GNU/Linux"!

Diccionario de comandos para GNU/Linux
Haz que cada palabra cuente: tu donación nos inspira a seguir creando contenido. Accede al apartado de Donación para hacer tu aportación