Cómo Crear Usuarios en Linux [15 Ejemplos de Comandos useradd]

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.
Create a User in Linux

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
View User Info in Linux

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
Create a User with a Home Directory in Linux

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
Create a User with the User ID in Linux

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
Create a User with Group ID in Linux

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
Add User to Group in Linux

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
Create User Without Home Directory in Linux

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
Create User With Account Expiry Date

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
Create User With Password Expiry Date

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
Create User with Full Name

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
Create a User with a Login Shell

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
Create a User with Home Directory and Login Shell

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
Create a User with UID and GID

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
Create a User with UID and Nologin

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
Create a User with Shell and UID

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
Create a User with NoLogin and Group

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.

Source:
https://www.tecmint.com/add-users-in-linux/