-->

Comando useradd

useradd

El comando useradd es una herramienta de línea de comandos utilizada en Linux para crear nuevas cuentas de usuario en el sistema. Permite definir diferentes características de la cuenta, como el directorio personal, el grupo principal, grupos adicionales, el intérprete de comandos y otros parámetros relacionados con la configuración del usuario.

Categoría Usuarios y administración del sistema
Disponible en Linux (Debian / Ubuntu / derivadas y otras distribuciones)
Equivalente en Windows net user o New-LocalUser en PowerShell
Sustituye a No sustituye directamente a otro comando. Es una herramienta tradicional para crear cuentas de usuario desde la terminal.
¿Requiere permisos de administrador? Sí. Normalmente debe ejecutarse con privilegios de superusuario mediante sudo.

¿Qué significa su nombre?

USERADD procede de la combinación de las palabras inglesas USER (usuario) y ADD (añadir).

Por tanto, useradd significa literalmente «añadir un usuario» y hace referencia a la creación de una nueva cuenta de usuario en el sistema.

¿Para qué sirve?

El comando useradd sirve para crear nuevas cuentas de usuario en Linux desde la línea de comandos. Durante la creación se puede indicar información como el directorio personal del usuario, su grupo principal, otros grupos a los que pertenecerá y el shell que utilizará.

Es una herramienta especialmente importante en la administración de sistemas, ya que permite crear cuentas de forma automatizada y reproducible. Por ejemplo, un administrador puede utilizar useradd en scripts para crear varias cuentas con una configuración determinada.

Es importante diferenciar la creación de una cuenta de la asignación de una contraseña. Dependiendo de la distribución y de las opciones utilizadas, useradd puede crear la cuenta pero dejarla sin una contraseña válida. Para establecer una contraseña se utiliza posteriormente el comando passwd.

Sintaxis

sudo useradd [opciones] nombre_usuario

Las opciones más habituales son:

Opción Descripción
-m (make) Crea el directorio personal del nuevo usuario si no existe.
-d [directorio] Especifica el directorio personal que utilizará el usuario.
-s [shell] Indica el intérprete de comandos que utilizará el usuario.
-g [grupo] Establece el grupo principal del usuario.
-G [grupos] Añade al usuario a uno o varios grupos secundarios.
-c [comentario] Añade información descriptiva sobre la cuenta, normalmente el nombre completo del usuario.
-u [UID] Permite especificar manualmente el identificador numérico del usuario.
-e [fecha] Establece una fecha de expiración para la cuenta.
-r Crea una cuenta de sistema en lugar de una cuenta de usuario normal.
-M No crea el directorio personal del usuario.

Comandos más utilizados

Comando Descripción
sudo useradd usuario Crea una nueva cuenta de usuario.
sudo useradd -m usuario Crea el usuario y su directorio personal.
sudo useradd -m -s /bin/bash usuario Crea el usuario, su directorio personal y establece Bash como shell.
sudo useradd -m -G grupo usuario Crea el usuario y lo añade a un grupo secundario.
sudo passwd usuario Establece o modifica la contraseña del usuario.
id usuario Muestra el UID, GID y grupos a los que pertenece el usuario.

Equivalencia con otros sistemas

Acción Linux Windows CMD Windows PowerShell
Crear usuario sudo useradd usuario net user usuario /add New-LocalUser usuario
Establecer contraseña sudo passwd usuario net user usuario * $Password = Read-Host -AsSecureString
Consultar usuario id usuario net user usuario Get-LocalUser usuario
Eliminar usuario sudo userdel usuario net user usuario /delete Remove-LocalUser usuario

Ejemplos

Crear un usuario básico

sudo useradd alumno

Crear un usuario junto con su directorio personal

sudo useradd -m alumno

Crear un usuario utilizando Bash como shell

sudo useradd -m -s /bin/bash alumno

Crear un usuario y añadirlo a un grupo secundario

sudo useradd -m -G usuarios alumno

Crear un usuario especificando su nombre completo

sudo useradd -m -c "Juan García López" alumno

Crear un usuario con un directorio personal personalizado

sudo useradd -m -d /home/alumno alumno

Establecer una contraseña para el usuario

sudo passwd alumno

Comprobar la información de la cuenta creada

id alumno

Ejemplo de salida

$ sudo useradd -m -s /bin/bash alumno

$ id alumno
uid=1001(alumno) gid=1001(alumno) groups=1001(alumno)

¿Cómo interpretar la salida?

  • uid=1001: indica el identificador numérico (UID) asignado al usuario.
  • alumno: es el nombre de la cuenta asociada al UID.
  • gid=1001: indica el identificador del grupo principal del usuario.
  • groups=1001(alumno): muestra los grupos a los que pertenece actualmente la cuenta.

Los UID y GID son identificadores numéricos que utiliza Linux internamente para distinguir usuarios y grupos. El nombre que aparece entre paréntesis es simplemente la representación legible asociada a ese identificador.

Errores habituales

  • Olvidar utilizar sudo, lo que provoca un error de permisos al intentar crear la cuenta.
  • Crear un usuario sin utilizar -m y asumir que siempre se generará automáticamente su directorio personal. El comportamiento predeterminado puede depender de la configuración de la distribución.
  • Crear una cuenta con useradd y olvidar establecer posteriormente una contraseña mediante passwd.
  • Confundir -g con -G. La opción -g establece el grupo principal, mientras que -G permite indicar grupos secundarios.
  • Especificar un shell que no existe. Por ejemplo, utilizar una ruta incorrecta con la opción -s puede impedir que el usuario disponga del intérprete esperado.
  • Asignar manualmente un UID que ya está siendo utilizado por otro usuario. En general, es preferible dejar que el sistema asigne automáticamente el siguiente identificador disponible.

Conceptos relacionados

  • Usuario
  • Grupo
  • UID
  • GID
  • Directorio personal
  • Shell
  • Permisos
  • Superusuario
  • /etc/passwd
  • /etc/group

Comandos relacionados

  • adduser
  • passwd
  • usermod
  • userdel
  • groupadd
  • groupmod
  • groupdel
  • id
  • groups

Curiosidades

En Debian y Ubuntu existe también el comando adduser, que proporciona una interfaz más amigable para crear usuarios. Mientras que useradd es una herramienta de bajo nivel con numerosas opciones para configurar la cuenta, adduser funciona como un script que facilita el proceso y solicita interactivamente información como la contraseña y los datos del usuario.

Por este motivo, en sistemas Debian y Ubuntu es habitual utilizar adduser cuando una persona administra cuentas manualmente desde la terminal, mientras que useradd resulta especialmente interesante para aprender cómo se crean y configuran las cuentas a bajo nivel y para utilizarlo en determinados scripts de administración.

Cuando se crea una cuenta, Linux no identifica internamente al usuario únicamente por su nombre. Cada usuario dispone de un UID numérico, que es el identificador que utiliza el sistema para aplicar permisos sobre archivos y recursos.

Prácticas propuestas

  1. Crea un usuario llamado alumno1 utilizando sudo useradd -m alumno1. Comprueba que se ha creado su directorio personal dentro de /home.
  2. Establece una contraseña para alumno1 utilizando sudo passwd alumno1. Después, comprueba que puedes iniciar una sesión con dicha cuenta.
  3. Utiliza id alumno1 para consultar el UID, GID y grupos asociados a la cuenta.
  4. Crea un segundo usuario llamado alumno2 utilizando la opción -s para establecer /bin/bash como intérprete de comandos.
  5. Crea un grupo llamado clase utilizando sudo groupadd clase. Después, crea un usuario llamado alumno3 y añádelo al grupo mediante la opción -G.
  6. Comprueba mediante id alumno3 que el usuario pertenece al grupo clase.
  7. Compara las opciones -g y -G. Crea diferentes usuarios y observa la diferencia entre grupo principal y grupos secundarios.
  8. Consulta el archivo /etc/passwd y localiza las líneas correspondientes a los usuarios que acabas de crear. Identifica su nombre de usuario, UID, GID, directorio personal y shell.
  9. Compara el funcionamiento de useradd y adduser. Explica qué diferencias encuentras en la forma de crear una cuenta.
  10. Elimina las cuentas de prueba creadas durante la práctica utilizando userdel. Comprueba previamente qué archivos existen en sus directorios personales.

Consejo: En Debian y Ubuntu, utiliza useradd -m cuando quieras crear explícitamente el directorio personal del usuario. Recuerda que crear una cuenta y establecer su contraseña son operaciones independientes: después de crear el usuario puedes utilizar passwd para establecer sus credenciales.

Preguntas de reflexión:

  1. ¿Qué diferencia existe entre crear un usuario con useradd y establecer posteriormente su contraseña con passwd?
  2. ¿Para qué sirve la opción -m y qué problema puede aparecer si no se crea el directorio personal?
  3. ¿Qué diferencia existe entre el grupo principal indicado mediante -g y los grupos secundarios indicados mediante -G?
  4. ¿Qué información representa el UID y por qué Linux utiliza identificadores numéricos para los usuarios?
  5. ¿Qué función desempeña el archivo /etc/passwd en la gestión de usuarios de Linux?
  6. ¿Qué diferencias existen entre useradd y adduser en Debian y Ubuntu?
  7. ¿Por qué es importante especificar correctamente el shell mediante la opción -s?
  8. ¿Qué diferencia existe entre una cuenta de usuario normal y una cuenta de sistema creada mediante useradd -r?
Haz clic aquí para ver las soluciones y explicaciones

1. ¿Qué diferencia existe entre crear un usuario con useradd y establecer posteriormente su contraseña con passwd?

useradd crea y configura la cuenta de usuario, pero no debe confundirse con la gestión de su contraseña. El comando passwd se utiliza específicamente para establecer o modificar la contraseña. Por tanto, son dos operaciones diferentes dentro de la administración de una cuenta.


2. ¿Para qué sirve la opción -m y qué problema puede aparecer si no se crea el directorio personal?

La opción -m solicita la creación del directorio personal del usuario. Este directorio es normalmente /home/nombre_usuario y sirve para almacenar sus archivos personales y configuraciones. Si no existe, el usuario puede encontrarse con un entorno de trabajo incompleto o no disponer del espacio personal esperado.


3. ¿Qué diferencia existe entre el grupo principal indicado mediante -g y los grupos secundarios indicados mediante -G?

El grupo principal es el grupo asociado por defecto a la cuenta y se utiliza, entre otras cosas, como grupo propietario de los archivos nuevos creados por el usuario. Los grupos secundarios permiten añadir permisos y pertenencia a otros grupos sin cambiar el grupo principal. La opción -g establece el grupo principal, mientras que -G especifica grupos secundarios.


4. ¿Qué información representa el UID y por qué Linux utiliza identificadores numéricos para los usuarios?

El UID es el identificador numérico único que Linux utiliza internamente para identificar una cuenta de usuario. Aunque las personas trabajan normalmente con nombres como alumno1, el sistema utiliza el UID para asociar propietarios y permisos a los archivos y otros recursos.


5. ¿Qué función desempeña el archivo /etc/passwd en la gestión de usuarios de Linux?

/etc/passwd contiene información básica sobre las cuentas locales del sistema, como el nombre de usuario, UID, GID, comentario, directorio personal y shell. A pesar de su nombre, en los sistemas Linux modernos las contraseñas no se almacenan normalmente en este archivo, sino que sus valores cifrados se encuentran en /etc/shadow, que tiene permisos de acceso más restrictivos.


6. ¿Qué diferencias existen entre useradd y adduser en Debian y Ubuntu?

useradd es una herramienta de bajo nivel que proporciona numerosas opciones para configurar una cuenta de manera precisa. adduser, disponible habitualmente en Debian y Ubuntu, proporciona una interfaz más sencilla y guiada para la creación de usuarios. Por ejemplo, puede solicitar interactivamente información como la contraseña y los datos descriptivos del usuario.


7. ¿Por qué es importante especificar correctamente el shell mediante la opción -s?

El shell es el programa que interpreta los comandos que introduce el usuario en la terminal. Si se especifica un shell incorrecto o que no está instalado, el usuario puede no disponer del entorno de terminal esperado al iniciar sesión. Un ejemplo habitual es /bin/bash, aunque existen otros shells como /bin/sh o /bin/zsh.


8. ¿Qué diferencia existe entre una cuenta de usuario normal y una cuenta de sistema creada mediante useradd -r?

Las cuentas de sistema están pensadas normalmente para servicios y procesos del propio sistema operativo, no para personas que inician sesión habitualmente. Una cuenta creada con -r utiliza la configuración destinada a usuarios del sistema, como un rango de UID apropiado y otras características definidas por la distribución. Las cuentas normales están destinadas a usuarios humanos que utilizan el sistema de forma interactiva.


Otros recursos: