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 backend 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. Deberías correr 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 al usuario (‘factura’) una nueva contraseña.
$ sudo useradd bill $ sudo passwd bill
Esto crea el usuario con el directorio de inicio como /home/bill
y copia 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 la distribución relacionada 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 con el comando mkdir antes de ejecutar el comando.
Creemos el directorio de inicio base llamado ‘devops’:
$ sudo mkdir /devops
Ahora el siguiente comando crea el usuario ‘factura’ 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 de 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 la salida anterior.
4) Crear usuario con un 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 un 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 seleccionando 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). Mediante el uso -b
opción, puede tener un directorio de inicio base diferente para el nuevo usuario.
El siguiente comando establece el directorio ‘/ mnt’ como 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) Crea un usuario con fecha de caducidad
Al crear un nuevo usuario, puede establecer una fecha de vencimiento 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 marcando 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 que el 1 de enero de 1970 la cuenta está deshabilitada.
$ 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
los -f
La opción proporciona el número de días desde que caduca una contraseña hasta que la cuenta se deshabilita permanentemente. El valor de 0
desactiva la cuenta tan pronto como la contraseña ha expirado.
$ sudo useradd -f 20 bill
Como se muestra en el archivo de sombra, 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 en Linux debe permanecer en un grupo primario y cero o más grupos secundarios (grupo complementario).
El grupo principal de un usuario al que pertenece se puede configurar con la opción -g. El grupo provisto 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. los -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 primario ‘equipos’ y los grupos secundarios ‘admin’ y ‘apache’.
$ sudo useradd -g teams -G admin,apache bill
8) Crear ID de usuario duplicado
los -o
La opción permite crear una cuenta de usuario con un ID de usuario duplicado (no único). Debe proporcionar un número UID con -u
opción.
Mira el siguiente ejemplo:
$ sudo useradd -o -u 503 bill
Aquí podemos ver que existen dos cuentas con 503 ID.
$ sudo grep 503 /etc/passwd jenny:x:503:503::/home/jenny:/bin/bash bill:x:503:505::/home/bill:/bin/bash
9) Cree 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 le da 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 -m
opción.
10) Cree 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 factura no existe.
11) Cree un usuario con contraseña
La contraseña del usuario está deshabilitada de forma predeterminada. Puede establecer manualmente la contraseña mediante el comando passwd. Pero si desea proporcionar la contraseña en el momento de la creación del usuario, puede utilizar -p
opción.
Pero la contraseña proporcionada aquí debe estar cifrada, 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 usar 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). los -D
La opción se usa no solo para ver los valores predeterminados, sino también para cambiarlos.
13) Crea un usuario con comentario personalizado
Podemos proporcionar el nombre completo o una breve descripción sobre el usuario (un comentario) al crear un usuario. Tienes que usar -c
opción para agregar comentarios personalizados.
Dejame 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.