GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo crear usuarios usando el comando Useradd en Linux

En los sistemas operativos Linux y similares a Unix, el comando más común para crear usuarios es 'useradd' o 'adduser'. Como administrador del sistema, a menudo requiere agregar usuarios, eliminar usuarios, crear grupos y asignar usuarios.

No hay diferencia entre los dos comandos mencionados anteriormente en cuanto a funciones. El comando adduser es más amigable y a algunos administradores de Debian/Ubuntu les encanta usarlo. Useradd es binario compilado con el sistema Linux y funciona como back-end para adduser.

En este tutorial, aprendemos cómo crear usuarios en Linux desde la terminal usando el comando useradd.

Comando y sintaxis de Useradd

La siguiente línea muestra la sintaxis del comando useradd:

useradd [OPTIONS] username

Se puede agregar un usuario simplemente dando el nombre de usuario seguido del comando. Debes ejecutar useradd comando con privilegios de usuario root o sudo.

Aprendamos más sobre useradd comando y sus opciones.

1) Cómo crear un nuevo usuario en Linux

Como se mencionó anteriormente, para crear un nuevo usuario usamos el comando useradd.

El siguiente comando crea un nuevo usuario llamado 'factura' y el segundo comando establece una nueva contraseña para el usuario ('factura').

$ sudo useradd bill
$ sudo passwd bill

Esto crea el usuario con el directorio de inicio como /home/bill y copia los archivos del directorio '/etc/skel' al directorio de inicio del usuario.

$ ls -al /home/bill/
total 20
drwx------. 2 bill bill 4096 Mar  9 06:49 .
drwxr-xr-x. 4 root root 4096 Mar  9 06:49 ..
-rw-r--r--. 1 bill bill   18 Nov  8 16:21 .bash_logout
-rw-r--r--. 1 bill bill  141 Nov  8 16:21 .bash_profile
-rw-r--r--. 1 bill bill  312 Nov  8 16:21 .bashrc

Este comando agrega una entrada a los archivos /etc/passwd, /etc/shadow, /etc/group y /etc/gshadow.

Nota:En las distribuciones relacionadas con Ubuntu y Debian, useradd no creará un directorio de inicio predeterminado a menos que tenga que especificar con opciones. En su lugar, Debian recomienda usar el comando adduser.

2) Cree un usuario con un directorio de inicio específico

Para crear un usuario con un directorio de inicio específico como valor para el inicio de sesión del usuario, use -d opción. Asegúrese de crear el directorio de inicio base usando el comando mkdir antes de ejecutar el comando.

Vamos a crear el directorio de inicio base llamado 'devops':

$ sudo mkdir /devops

Ahora, el siguiente comando crea el usuario 'bill' y establece su directorio de inicio como '/devops/billhome'.

$ sudo useradd -d /devops/billhome bill
Output
$ sudo useradd -d /devops/billhome bill
$ ls -al /devops/billhome
total 12
drwxr-xr-x  2 bill bill  100 Dec 31 05:13 .
drwxr-xr-x 17 root root 3680 Dec 31 05:13 ..
-rw-r--r--  1 bill bill  220 Apr  4  2018 .bash_logout
-rw-r--r--  1 bill bill 3771 Apr  4  2018 .bashrc
-rw-r--r--  1 bill bill  807 Apr  4  2018 .profile

Puede usar una combinación de -m (crear un directorio de inicio si no existe) y -d (establecer la ruta dada como el nombre del directorio de inicio de sesión del usuario) para crear un usuario.

$ sudo useradd -m -d /home/bobhome bob

3) Creación de un usuario con ID de usuario específico

De forma predeterminada, cuando crea un usuario, asigna el siguiente UID disponible definido en el archivo login.defs. Pero usando -u opción puede crear un usuario con UID específico.

En el siguiente ejemplo, la factura del usuario se crea con un UID específico (3210).

$ useradd -u 3210 bill 
$ grep bill /etc/passwd bill:x:3210:3210::/home/bill:/bin/bash

El UID se puede ver en el archivo '/etc/passwd' como se muestra en el resultado anterior.

4) Crear usuario con shell de inicio de sesión específico

A veces necesitamos crear un usuario con un shell de inicio de sesión específico (como ksh, tcsh, zsh, etc.) o sin inicio de sesión de shell ('/sbin/nologin').

Podemos especificar el shell de inicio de sesión asociado con la cuenta del usuario con -s opción como se muestra a continuación:

$ useradd -s /bin/tcsh bill

Puede verificar el shell de inicio de sesión extrayendo el nombre de usuario del archivo /etc/passwd:

$ grep bill /etc/passwd bill:x:504:505::/home/bill:/bin/tcsh

5) Crear un directorio de inicio base específico

Por defecto, los directorios de inicio de los usuarios se encuentran en el directorio '/home' (variable en /etc/default/useradd). Usando -b puede tener un directorio de inicio base diferente para el nuevo usuario.

El siguiente comando establece el directorio '/mnt' como el directorio base y crea un directorio de inicio del usuario 'bill' como '/mnt/bill'.

$ useradd -b /mnt bill 
$ grep bill /etc/passwd bill:x:504:505::/mnt/bill:/bin/bash

6) Crear un usuario con fecha de caducidad

Mientras crea un nuevo usuario, puede establecer una fecha de caducidad para la cuenta de usuario usando -e opción.

El siguiente ejemplo establece la fecha de caducidad (el formato de la fecha es AAAA-MM-DD) para la 'factura' del usuario.

$ sudo useradd -e 2013-06-23 bill

Esto se puede verificar revisando el último campo del archivo '/etc/shadow'. El último campo (15879) muestra la fecha de vencimiento en términos de la cantidad de días desde el 1 de enero de 1970 que la cuenta está inhabilitada.

$ sudo grep bill /etc/shadow bill:!!:15813:0:99999:7::15879:

Una forma más fácil de verificar la fecha de vencimiento del usuario es usar el comando chage como se muestra a continuación:

$ sudo chage -l bill
Last password change                                    : Feb 10, 2013
Password expires                                        : never
Password inactive                                       : never
Account expires                                         : Jun 23, 2013
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

El -f La opción proporciona la cantidad de días después de que una contraseña caduca hasta que la cuenta se deshabilita permanentemente. El valor de 0 desactiva la cuenta tan pronto como la contraseña haya caducado.

$ sudo useradd -f 20 bill

Como se muestra en el archivo shadow, el número de días se establece en 20 (en la penúltima columna).

$ sudo grep bill /etc/shadow bill:!!:15813:0:99999:7:20::

7) Crear un usuario y agregarlo a varios grupos

Cada usuario de Linux debe permanecer en un grupo principal y cero o más grupos secundarios (grupo complementario).

El grupo principal de un usuario al que pertenece se puede establecer con la opción -g. El grupo proporcionado con esta opción ya debe existir.

$ sudo useradd -g xero bill
$ sudo id bill uid=504(bill) gid=505(xero) groups=505(xero) context=root:system_r:unconfined_t:SystemLow-SystemHigh

El grupo se puede verificar con el comando id. El -G La opción se utiliza para agregar un usuario a grupos adicionales.

$ sudo useradd -G g1,g2,g3 bill

$ sudo id bill uid=504(bill) gid=509(bill) groups=509(bill),506(g1),507(g2),508(g3) context=root:system_r:unconfined_t:SystemLow-SystemHigh

Veamos cómo crear un usuario y asignarlo a varios grupos. El comando creará un nuevo usuario llamado 'factura' con el grupo principal 'equipos' y los grupos secundarios 'admin' y 'apache'.

$ sudo useradd -g teams -G admin,apache bill

8) Crear ID de usuario duplicado

El -o La opción permite crear una cuenta de usuario con una identificación de usuario duplicada (no única). Debe proporcionar un número UID con -u opción.

Compruebe el siguiente ejemplo:

$ sudo useradd -o -u 503 bill

Aquí podemos ver que existen dos cuentas con ID 503.

$ sudo grep 503 /etc/passwd 
jenny:x:503:503::/home/jenny:/bin/bash 
bill:x:503:505::/home/bill:/bin/bash

9) Crear un usuario como cuenta del sistema

Normalmente, los UID hasta 500 o 1000 están reservados para cuentas del sistema y no se asignan a usuarios normales. Con -r opción, se otorga una cuenta con ID en el rango de usuarios del sistema al usuario que se está creando.

$ sudo useradd -r bill 
$ sudo grep bill /etc/passwd bill:x:101:102::/home/bill:/bin/bash

Aquí, no se crea el directorio de inicio para el usuario. Debe crearse manualmente o proporcionarse con -m opción.

10) Crear un usuario sin directorio de inicio

Si no desea crear un directorio de inicio por sí mismo, -M se puede dar la opción.

$ sudo useradd -M bill 
$ sudo grep bill /etc/passwd 
bill:x:504:505::/home/bill:/bin/bash
$ ls /home/bill 
ls: /home/bill: No such file or directory

En la salida del comando ls, se puede ver que el directorio de inicio para el usuario de la factura no existe.

11) Crear un usuario con contraseña

La contraseña del usuario está deshabilitada por defecto. Puede configurar manualmente la contraseña usando el comando passwd. Pero si desea proporcionar la contraseña en el momento de la creación del usuario, puede usar -p opción.

Pero la contraseña proporcionada aquí debe estar encriptada, tal como la devuelve crypt(3).

$ sudo useradd -p '$1$ZsQB81$RCCVDuI5VR6q905nUPz4a/' bill

12) Cambiar las opciones predeterminadas

Cuando se agrega un usuario a un sistema, algunos valores se toman como predeterminados, por ejemplo, shell, directorio base, etc. El directorio base es el directorio donde residen los directorios de inicio de los usuarios. En la mayoría de los sistemas Linux, los directorios de inicio de los usuarios residen en el directorio /home.

Por ejemplo, el directorio de inicio del usuario tom será '/home/tom' por defecto. Entonces /home será su directorio base. Estas opciones predeterminadas se definen en el archivo '/etc/defaults/useradd'. Estos valores predeterminados se pueden ver con -D opción para el comando useradd:

$ sudo useradd -D GROUP=100 HOME=/home INACTIVE=-1 EXPIRE= SHELL=/bin/sh SKEL=/etc/skel CREATE_MAIL_SPOOL=no

El comando anterior también puede ser ejecutado por usuarios normales (usuarios no root). El -D La opción se utiliza no solo para ver los valores predeterminados, sino también para cambiar los valores predeterminados.

13) Crear un usuario con comentario personalizado

Podemos proporcionar el nombre completo o una breve descripción del usuario (un comentario) al crear un usuario. Tienes que usar -c opción para agregar comentarios personalizados.

Déjame mostrarte un ejemplo:

$ sudo useradd -c "Bill Drape" bill

Este comentario se puede ver en la entrada del usuario en el archivo '/etc/passwd'.

$ sudo grep bill /etc/passwd bill:x:504:505:Bill Drape:/home/bill:/bin/bash

Conclusión

En este tutorial, aprendimos cómo crear usuarios en Linux y diferentes opciones del comando useradd. Espero que haya disfrutado de la lectura y deje sus sugerencias en la sección de comentarios a continuación.


Linux
  1. Cómo crear varias cuentas de usuario en Linux

  2. Cómo eliminar/eliminar usuarios en Linux usando el comando userdel

  3. Cómo crear un script de un comando de Linux

  4. Cómo administrar usuarios con useradd en linux

  5. Cómo crear un usuario en linux usando python

Cómo crear un enlace simbólico en Linux usando el comando Ln

Cómo crear usuarios usando el comando Useradd en Linux

Cómo crear un alias en Linux

Agregar nuevos usuarios en Linux con el comando Useradd

Cómo crear y administrar nuevos usuarios en Linux

Cómo crear/agregar usuarios en Linux