Estamos todos conscientes de los comandos más populares llamados ‘useradd‘ o ‘adduser‘ en Linux. Hay momentos en que a un Administrador de Sistemas Linux se le pide crear cuentas de usuario en Linux con propiedades, limitaciones o comentarios específicos.
En Linux, el comando ‘useradd‘ es una utilidad de bajo nivel utilizada para agregar o crear cuentas de usuario en Linux y otros sistemas operativos similares a Unix. El comando ‘adduser‘ es muy similar al comando ‘useradd‘, ya que es solo un enlace simbólico a él.
En algunas distribuciones de Linux, el comando ‘useradd‘ puede tener una versión ligeramente diferente. Sugiero leer su documentación antes de utilizar nuestras instrucciones para crear nuevas cuentas de usuario en Linux.
Cuando ejecutamos el comando ‘useradd‘ en la terminal de Linux, realiza las siguientes tareas principales:
- Edita los archivos /etc/passwd, /etc/shadow, /etc/group, y /etc/gshadow para las cuentas de usuario recién creadas.
- Crea y llena un directorio de inicio para el nuevo usuario.
- Establece permisos y propietarios al directorio de inicio.
Comando useradd Sintaxis
La sintaxis básica del comando ‘useradd‘ es:
useradd [options] username
En este artículo, demostraremos las 15 formas de uso más comunes del comando ‘useradd‘ con ejemplos prácticos en Linux.
1. Cómo Agregar un Nuevo Usuario en Linux
Para agregar o crear un nuevo usuario, debes usar el comando ‘useradd‘ o ‘adduser‘ seguido del ‘nombre de usuario‘. El ‘nombre de usuario‘ es el nombre de inicio de sesión que un usuario usa para acceder al sistema.
Solo se puede agregar un usuario a la vez, y el nombre de usuario debe ser único, y no debe existir previamente en el sistema.
Por ejemplo, para agregar un nuevo usuario llamado ‘tecmint‘ usa el siguiente comando:
useradd tecmint
Cuando agregamos un nuevo usuario en Linux con el comando ‘useradd‘, se crea en un estado bloqueado. Para desbloquear esa cuenta de usuario, necesitamos establecer una contraseña para esa cuenta usando el comando ‘passwd‘.
passwd tecmint Changing password for user tecmint. New UNIX password: Retype new UNIX password: passwd: all authentication tokens updated successfully.

Una vez que se crea un nuevo usuario, su entrada se agrega automáticamente al archivo ‘/etc/passwd‘. Este archivo se utiliza para almacenar la información del usuario, y la entrada debe ser.
tecmint:x:1000:1000:tecmint:/home/tecmint:/bin/bash

La entrada anterior contiene un conjunto de siete campos separados por dos puntos, cada campo tiene su propio significado.
Veamos cuáles son estos campos:
- Nombre de Usuario – El nombre de inicio de sesión del usuario se usa para acceder al sistema. Debe tener entre 1 y 32 caracteres de longitud.
- Contraseña – La contraseña del usuario (o el carácter
'x'
) se almacena en el archivo ‘/etc/shadow‘ en formato encriptado. - Identificador de Usuario (UID) – Cada usuario debe tener un Identificador de Usuario (UID), que representa el Número de Identificación del Usuario. Por defecto, UID 0 está reservado para el usuario raíz, y los UIDs que van desde 1 hasta 99 están reservados para otras cuentas predefinidas. Además, los UIDs que van desde 100 hasta 999 están reservados para cuentas y grupos del sistema.
- Identificador de Grupo (GID) – El Identificador de Grupo Primario (GID), que representa el Número de Identificación del Grupo, se almacena en el archivo ‘/etc/group‘.
- Información del Usuario – Este campo es opcional y te permite definir información adicional sobre el usuario, como el nombre completo del usuario. Esta información se puede completar utilizando el comando finger.
- Directorio Personal – La ubicación absoluta del directorio personal del usuario.
- Shell – La ubicación absoluta de la shell del usuario, es decir, /bin/bash.
2. Cómo Crear un Usuario con un Directorio Personal Diferente
Por defecto, el comando ‘useradd‘ crea el directorio personal del usuario bajo el directorio ‘/home‘ con el nombre de usuario. Por ejemplo, como se ve arriba, el directorio personal por defecto para el usuario ‘tecmint‘ es ‘/home/tecmint‘.
Sin embargo, este comportamiento puede ser cambiado utilizando la opción '-d'
junto con la ubicación del nuevo directorio de inicio (por ejemplo, ‘/data/projects‘). Por ejemplo, el siguiente comando creará un usuario ‘anusha‘ con un directorio de inicio establecido en ‘/data/projects‘.
# useradd -d /data/projects anusha # passwd anusha
Puede ver el directorio de inicio del usuario y otra información relacionada con el usuario, como el ID de usuario, el ID de grupo, el shell y los comentarios utilizando el siguiente comando cat.
cat /etc/passwd | grep anusha anusha:x:1001:1001::/data/projects:/bin/bash

3. Cómo Crear un Usuario con un ID de Usuario Específico
En Linux, cada usuario tiene su propio UID (Número de Identificación Único). Por defecto, cuando creamos una nueva cuenta de usuario en Linux, asigna IDs de usuario 500, 501, 502, y así sucesivamente.
Sin embargo, podemos crear usuarios con IDs de usuario personalizados utilizando la opción '-u'
. Por ejemplo, el siguiente comando creará un usuario ‘navin‘ con un ID de usuario personalizado ‘1002‘.
useradd -u 1002 navin
Ahora, verifiquemos que el usuario creado tiene un userid definido (1002) utilizando el siguiente comando.
cat /etc/passwd | grep navin navin:x:1002:1002::/home/navin:/bin/bash

NOTA: Asegúrese de que el valor de un ID de usuario debe ser único de cualquier otro usuario ya creado en el sistema.
4. Cómo Crear un Usuario con un ID de Grupo Específico
Del mismo modo, cada usuario tiene su propio GID (Identificador de Grupo). También podemos crear usuarios con identificadores de grupo específicos utilizando la opción '-g'
.
En este ejemplo, agregaremos un usuario ‘tarunika‘ con un UID y GID específicos simultáneamente con la ayuda de las opciones '-u'
y '-g'
.
useradd -u 1005 -g tecmint tarunika
Ahora, verifique el ID de usuario asignado y el ID de grupo en el archivo ‘/etc/passwd‘.
cat /etc/passwd | grep tarunika tarunika:x:1005:1000::/home/tarunika:/bin/bash
Para verificar el GID del usuario, use el comando id:
id -gn tarunika

5. Cómo Agregar un Usuario a Múltiples Grupos
La opción '-G'
se utiliza para agregar un usuario a grupos adicionales. Cada nombre de grupo se separa por una coma, sin espacios intermedios.
En este ejemplo, estamos agregando un usuario ‘tecmint‘ a múltiples grupos, como admins, webadmin y developers.
groupadd admins groupadd webadmin groupadd developers usermod -a -G admins,webadmin,developers tecmint useradd -G admins,webadmin,developers paddy
A continuación, verifique que los múltiples grupos estén asignados al usuario con el comando id.
id tecmint uid=1000(tecmint) gid=1000(tecmint) groups=1000(tecmint),1007(admins),1008(webadmin),1009(developers) context=root:system_r:unconfined_t:SystemLow-SystemHigh

6. Cómo Agregar un Usuario Sin Directorio de Inicio
En ciertas situaciones, donde no queremos asignar directorios de inicio para un usuario debido a razones de seguridad, el directorio de inicio del usuario será raíz cuando inicien sesión en un sistema que acaba de reiniciarse. Cuando dicho usuario utiliza el comando ‘su‘, su directorio de inicio de sesión será el directorio de inicio del usuario anterior.
Para crear usuarios sin sus directorios de inicio, se utiliza la opción '-M'
. Por ejemplo, el siguiente comando creará un usuario ‘shilpi‘ sin un directorio de inicio.
useradd -M shilpi
Ahora, verifiquemos que el usuario se ha creado sin un directorio de inicio usando el comando ls.
ls -l /home/shilpi ls: cannot access /home/shilpi: No such file or directory

7. Cómo Crear un Usuario con una Fecha de Caducidad en Linux
Por defecto, cuando agregamos usuarios con el comando ‘useradd‘, la cuenta de usuario nunca caduca, lo que significa que su fecha de caducidad se establece en 0 (lo que significa que nunca caduca).
Sin embargo, podemos establecer la fecha de caducidad usando la opción '-e'
, que debe estar en formato YYYY-MM-DD. Esto es útil para crear cuentas temporales por un período específico de tiempo.
En este ejemplo, creamos un usuario ‘aparna‘ con una fecha de caducidad de la cuenta, que es el 27 de agosto de 2021, en formato YYYY-MM-DD.
useradd -e 2021-08-27 aparna
A continuación, verifique la información de envejecimiento de la cuenta y la contraseña utilizando el comando ‘chage‘ para el usuario ‘aparna‘ después de establecer la fecha de caducidad de la cuenta.
chage -l aparna Last password change : Jun 25, 2021 Password expires : never Password inactive : never Account expires : Aug 27, 2021 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

8. Cómo Crear un Usuario con Fecha de Caducidad de Contraseña
El argumento '-f'
se utiliza para definir el número de días después de que caduque una contraseña. Un valor de 0 inactiva la cuenta de usuario tan pronto como la contraseña haya caducado. Por defecto, el valor de caducidad de la contraseña se establece en -1
, lo que significa que nunca caduca.
En este ejemplo, estableceremos una fecha de caducidad de la contraseña de 45 días para un usuario ‘mansi‘ utilizando las opciones '-e'
y '-f'
.
useradd -e 2014-04-27 -f 45 mansi

9. Cómo Agregar un Usuario con Comentarios en Linux
La opción '-c'
le permite agregar comentarios personalizados, como el nombre completo del usuario, número de teléfono, etc., al archivo ‘/etc/passwd‘. El comentario se puede agregar como una sola línea sin espacios.
Por ejemplo, el siguiente comando agregará un usuario ‘mansi‘ e insertará el nombre completo de ese usuario, Manis Khurana, en el campo de comentarios.
useradd -c "Manis Khurana" mansi
Puede ver el comentario insertado en el archivo ‘/etc/passwd‘ en la sección de comentarios utilizando el comando tail.
tail -1 /etc/passwd mansi:x:1010:1013:Manis Khurana:/home/mansi:/bin/sh

10. Cómo Crear un Shell de Inicio de Sesión de Usuario en Linux
A veces, agregamos usuarios que no tienen nada que ver con el shell de inicio de sesión o a veces se nos pide asignar shells diferentes a nuestros usuarios. Podemos asignar diferentes shells de inicio de sesión a cada usuario con la opción ‘-s‘.
Aquí en este ejemplo, agregaremos un usuario ‘tecmint‘ sin un shell de inicio de sesión, es decir, un shell ‘/sbin/nologin‘.
useradd -s /sbin/nologin tecmint
Puede verificar el shell asignado al usuario en el archivo ‘/etc/passwd‘.
tail -1 /etc/passwd tecmint:x:1011:1014::/home/tecmint:/sbin/nologin

11. Cómo crear un usuario con directorio de inicio, shell y comentario especificados
El siguiente comando creará un usuario ‘ravi‘ con un directorio de inicio ‘/var/www/tecmint‘, un shell predeterminado de /bin/bash y información adicional sobre el usuario.
useradd -m -d /var/www/ravi -s /bin/bash -c "TecMint Owner" -U ravi

En el comando anterior, las opciones '-m'
y '-d'
crean un usuario con un directorio de inicio especificado, y la opción '-s'
establece el shell predeterminado del usuario en /bin/bash. La opción '-c'
agrega información adicional sobre el usuario y el argumento '-U'
crea/agrega un grupo con el mismo nombre que el usuario.
12. Cómo crear un usuario con directorio de inicio, shell, comentario, UID/GID definidos
El comando es muy similar al anterior, pero aquí definimos el shell como ‘/bin/zsh‘ y establecemos UID y GID personalizados para un usuario ‘tarunika’. La opción '-u'
define el UID del nuevo usuario (es decir, 100), y la opción '-g'
define el GID (es decir, 1000).
useradd -m -d /var/www/tarunika -s /bin/zsh -c "TecMint Technical Writer" -u 1000 -g 100 tarunika

13. Cómo crear un usuario con directorio de inicio, sin shell, comentario y UID
El siguiente comando es muy similar a los dos anteriores. La única diferencia es que aquí deshabilitamos el inicio de sesión para un usuario llamado ‘avishek‘ con un ID de usuario personalizado (es decir, 1019).
La opción '-s'
establece el shell predeterminado en /bin/bash, pero en este caso, establecemos el shell de inicio de sesión en ‘/usr/sbin/nologin‘. Eso significa que el usuario ‘avishek‘ no podrá iniciar sesión en el sistema.
useradd -m -d /var/www/avishek -s /usr/sbin/nologin -c "TecMint Sr. Technical Writer" -u 1019 avishek

14. Cómo Crear un Usuario con un Directorio de Inicio, Shell, Esqueleto y UID Especificados
El único cambio en este comando es que utilizamos la opción '-k'
para establecer el directorio de esqueleto personalizado en /etc/custom.skell en lugar del predeterminado, /etc/skel. También usamos la opción '-s'
para definir un shell diferente, /bin/tcsh, para el usuario ‘navin‘.
useradd -m -d /var/www/navin -k /etc/custom.skell -s /bin/tcsh -c "No Active Member of TecMint" -u 1027 navin

15. Cómo Crear un Usuario sin Directorio de Inicio, Shell o Grupo, con Comentario
El siguiente comando es muy diferente de los otros comandos explicados anteriormente. Aquí, usamos la opción '-M'
para crear un usuario sin el directorio de inicio del usuario, y la opción '-N'
se utiliza para indicar al sistema que solo cree un nombre de usuario (sin un grupo). La opción '-r'
es para crear un usuario del sistema.
useradd -M -N -r -s /bin/false -c "Disabled TecMint Member" clayton

Para obtener más información y opciones sobre ‘useradd‘, ejecute el comando ‘useradd‘ en el terminal para ver las opciones disponibles.
useradd
Si desea modificar atributos de la cuenta de usuario, como modificar el nombre de usuario, el ID de usuario (UID), el directorio de inicio, la shell y más, utilice el comando usermod.