Crear usuarios en un sistema Linux o Unix es una tarea rutinaria para los administradores de sistemas.
En ocasiones, puedes crear un solo usuario con una configuración predeterminada, o crear un solo usuario con una configuración personalizada, o crear varios usuarios al mismo tiempo utilizando algún método de creación masiva de usuarios.
En este artículo, repasaremos cómo crear usuarios de Linux en 4 métodos diferentes usando el comando useradd, adduser y newusers con ejemplos prácticos.
Método 1: Comando Linux useradd – Crear usuario con configuraciones predeterminadas
Esta es una herramienta fundamental de bajo nivel para la creación de usuarios. Para crear usuarios con configuraciones predeterminadas, utiliza useradd como se muestra a continuación.
1 |
Syntax: # useradd LOGIN-NAME |
Al crear usuarios como se mencionó anteriormente, se tomarán todas las opciones predeterminadas excepto la identificación del grupo. Para ver las opciones predeterminadas, ejecuta el siguiente comando con la opción -D.
1 2 3 4 5 6 7 8 |
$ useradd -D GROUP=1001 HOME=/home INACTIVE=-1 EXPIRE= SHELL=/bin/sh SKEL=/etc/skel CREATE_MAIL_SPOOL=no |
- GROUP: Esta es la única opción que no se tomará como predeterminada. Porque si no especificas la opción -n, se creará un grupo con el mismo nombre que el usuario y el usuario se agregará a ese grupo. Para evitar eso y hacer que el usuario sea miembro del grupo predeterminado, debes agregar la opción -n.
- HOME: este es el prefijo de ruta predeterminado para el directorio de inicio. En este momento, el directorio de inicio se creará como /home/USERNAME.
- INACTIVE: -1 por defecto deshabilita la función de deshabilitar la cuenta una vez que la contraseña del usuario ha expirado. Para cambiar este comportamiento, debeS proporcionar un número positivo, lo que significa que, si la contraseña caduca después de la cantidad de días dada, la cuenta de usuario se desactivará.
- EXPIRE: La fecha en que la cuenta de usuario se desactivará.
- SHELL: Shell de inicio de sesión de los usuarios.
- SKEL: El contenido del directorio skel se copiará en el directorio de inicio de los usuarios.
- CREATE_MAIL_SPOOL: Según el valor crea o no crea el spool de correo.
Ejemplo 1: Crear un usuario con todas las opciones predeterminadas y con su propio grupo.
El siguiente ejemplo crea el usuario cesar con el grupo cesar. Usa el comando passwd de Linux para cambiar la contraseña del usuario inmediatamente después de la creación del usuario.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
# useradd cesar # passwd cesar Changing password for user cesar. New UNIX password: Retype new UNIX password: passwd: all authentication tokens updated successfully. # grep cesar /etc/passwd ramesh:x:500:500::/home/cesar:/bin/bash # grep cesar /etc/group ramesh:x:500: [Note: default useradd command created cesar as username and group] |
Ejemplo 2: Crear un usuario con todas las opciones predeterminadas y con el grupo predeterminado.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
# useradd -n sathiya # grep sathiya /etc/passwd sathiya:x:511:100::/home/sathiya:/bin/bash # grep sathiya /etc/group [Note: No rows returned, as group sathiya was not created] # grep 100 /etc/group users:x:100: [Note: useradd -n command created user sathiya with default group id 100] # passwd sathiya Changing password for user sathiya. New UNIX password: Retype new UNIX password: passwd: all authentication tokens updated successfully. [Note: Always set the password immediately after user creation] |
Ejemplo 3: Edición de las opciones predeterminadas utilizadas por useradd.
El siguiente ejemplo muestra cómo cambiar el shell predeterminado de /bin/bash a /bin/ksh durante la creación del usuario.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
Syntax: # useradd -D --shell=<SHELLNAME> # useradd -D GROUP=100 HOME=/home INACTIVE=-1 EXPIRE= SHELL=/bin/bash SKEL=/etc/skel [Note: The default shell is /bin/bash] # useradd -D -s /bin/ksh # useradd -D GROUP=100 HOME=/home INACTIVE=-1 EXPIRE= SHELL=/bin/ksh SKEL=/etc/skel [Note: Now the default shell changed to /bin/ksh] # adduser priya # grep priya /etc/passwd priya:x:512:512::/home/priya:/bin/ksh [Note: New users are getting created with /bin/ksh] # useradd -D -s /bin/bash [Note: Set it back to /bin/bash, as the above is only for testing purpose] |
Método 2: Comando useradd de Linux: crear usuarios con configuraciones personalizadas
En lugar de aceptar los valores predeterminados (por ejemplo, grupo, shell, etc.) que proporciona el comando useradd como se muestra en el método anterior, puedes especificar valores personalizados en la línea de comando como parámetros para el comando useradd.
1 |
Syntax: # useradd -s <SHELL> -m -d <HomeDir> -g <Group> UserName |
- -s SHELL: Shell de inicio de sesión para el usuario.
- -m: Crea el directorio de inicio del usuario si no existe.
- -d HomeDir: Directorio de inicio del usuario.
- -g Group: nombre del grupo o número del usuario.
- UserName: id de inicio de sesión del usuario.
Ejemplo 4: Crear un usuario de Linux con configuraciones personalizadas utilizando el comando useradd
El siguiente ejemplo crea una cuenta (lebron) con el directorio de inicio /home/king, shell predeterminado como /bin/csh y con el comentario “LeBron James”.
1 2 3 4 |
# useradd -s /bin/csh -m -d /home/king -c "LeBron James" -g root lebron # grep lebron /etc/passwd lebron:x:513:0:LeBron James:/home/king:/bin/csh |
Nota: Puedes proporcionar la contraseña con la opción -p, que debe ser una contraseña cifrada. O puedes usar el comando passwd para cambiar la contraseña del usuario.
Método 3: Comando adduser de Linux: crear usuarios de forma interactiva
Estas son las herramientas más amigables para el usuario de bajo nivel. Por defecto, elige el formato de política de Debian para UID y GID. Una forma muy simple de crear usuarios en la línea de comandos de manera interactiva es usar el comando adduser.
1 |
Syntax: # adduser USERNAME |
Ejemplo 5: Crear un usuario interactivamente con el comando adduser
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
# adduser spidey Adding user `spidey' ... Adding new group `spidey' (1007) ... Adding new user `spidey' (1007) with group `spidey' ... Creating home directory `/home/spidey' ... Copying files from `/etc/skel' ... Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully Changing the user information for spidey Enter the new value, or press ENTER for the default Full Name []: Peter Parker Room Number []: Work Phone []: Home Phone []: Other []: Is the information correct? [y/N] y |
Método 4: Comando newusers de Linux: creación de usuarios masivos
A veces es posible que desees crear varios usuarios al mismo tiempo. El uso de cualquiera de los 3 métodos anteriores para la creación masiva de usuarios puede ser muy tedioso y lento. Afortunadamente, Linux ofrece una forma de crear usuarios usando el comando newusers. Esto también se puede ejecutar en modo por lotes, ya que no puede solicitar ninguna entrada.
1 |
# newusers FILENAME |
Este formato de archivo es el mismo que el archivo de contraseña.
1 |
loginname:password:uid:gid:comment:home_dir:shell |
Ejemplo 6: Creación de un gran número de usuarios con el comando newusers
Si la familia Simpson decide unirse a tu organización y necesitan acceso a tu servidor Linux, puedes crear una cuenta para todos juntos usando el comando newusers como se muestra a continuación.
1 2 3 4 5 6 |
# cat homer-family.txt homer:HcZ600a9:1008:1000:Homer Simpson:/home/homer:/bin/bash marge:1enz733N:1009:1000:Marge Simpson:/home/marge:/bin/csh bart:1y5eJr8K:1010:1000:Bart Simpson:/home/bart:/bin/ksh lisa:VGz638i9:1011:1000:Lisa Simpson:/home/lisa:/bin/sh maggie:5lj3YGQo:1012:1000:Maggie Simpson:/home/maggie:/bin/bash |
Nota: Al especificar contraseñas para los usuarios debes seguir las mejores prácticas de creación de contraseñas
Ahora debes crear cuentas para toda la familia Simpsons usando el comando newusers como se muestra a continuación.
1 |
# newusers homer-family.txt |