Inicio APP y Software ¿Cómo Crear/Agregar Usuarios en Linux?

¿Cómo Crear/Agregar Usuarios en Linux?

645
0

Introducción

Linux es un entorno multiusuario y la provisión de usuarios es una responsabilidad esencial en la gestión del sistema. Los administradores del sistema agregan, eliminan y gestionan usuarios y grupos en el sistema.

El comando useradd proporciona varias opciones, lo que resulta en una forma completa de automatizar la gestión de identidad y acceso.

Este artículo muestra cómo crear y agregar usuarios en Linux.

Prerrequisitos

  • Acceso a la terminal para ejecutar los comandos.
  • Acceso a un usuario con permisos de sudo o root.
  • Un editor de texto, como nano o Vim.
  • Comandos básicos de Linux (consulta nuestra hoja de trucos de comandos de Linux).

Sintaxis del Comando useradd

La sintaxis básica del comando useradd es:

useradd <opciones> <nombre de usuario>

Al ejecutar el comando se crea una nueva cuenta de usuario o se actualiza un usuario existente según los valores en:

  • /etc/default/useradd: Los valores predeterminados para el comando useradd.
  • /etc/login.defs: Valores de control de configuración para el paquete de inicio de sesión.
  • Las proporcionadas con el comando, que actualizan o anulan la configuración predefinida.

Los valores predeterminados varían entre diferentes sistemas.

Las reglas limitan el nombre de usuario a:

  • Longitud entre 1 y 32 caracteres.
  • El nombre de usuario comienza con una letra minúscula o un guion bajo.
  • El nombre de usuario puede contener cualquier combinación de letras mayúsculas y minúsculas, números, guiones y guiones bajos.
  • El nombre de usuario puede terminar con un signo de dólar ($).

La expresión regular para verificar la validez del nombre de usuario es:

[a-z_][a-z0-9_-]*[$]

Nota: Debian sigue un conjunto diferente de reglas para los nombres de usuario. Sin embargo, las reglas proporcionadas son un buen punto de partida para todos los sistemas y ayudan a evitar problemas.

Además, el comando también crea un grupo para el nuevo usuario. Agregar un nuevo usuario requiere permisos de sudo para modificar los archivos que almacenan información de usuario y grupo.

Opciones del Comando useradd

El comando useradd viene con varias opciones. Las opciones comunes se encuentran en la siguiente tabla:

OpciónDescripción
-b <directorio>–base-dir <directorio>
-c <información>–comment <información>
-d <directorio principal>–home-dir <directorio principal>
-D–defaults
-e <AA-MM-DD>–expiredate <AA-MM-DD>
-f <días>–inactive <días>
-g <nombre o número>–gid <nombre o número>
-G <grupo1,grupo2,etc>–groups <grupo1,grupo2,etc>
-k <directorio plantilla>–skel <directorio plantilla>
-m–create-home
-M–no-create-home
-o–non-unique
-p <contraseña>–password <contraseña>
-r–system
-s <ruta del shell>–shell <ruta del shell>
-u <uid>–uid <uid>
-U–user-group

Creación de Nuevos Usuarios en Linux

La creación de nuevos usuarios en Linux realiza lo siguiente:

  1. Proporciona un UID y GID únicos.
    • 0 está reservado para root y se asigna automáticamente.
    • 1-999 es para cuentas y servicios del sistema.
    • 1000 y superior es para usuarios regulares.

    Nota: Los números varían entre diferentes sistemas operativos. Los valores de ejemplo son para Ubuntu.

  2. Edita archivos que almacenan información de la cuenta.
    • /etc/passwd: Lista de todos los usuarios registrados en el sistema.
    • /etc/shadow: Almacena las contraseñas de usuario encriptadas.
    • /etc/group: Define los grupos de usuarios.
    • /etc/gshadow: Almacena las contraseñas de grupo encriptadas.
  3. Establece permisos de usuario en el directorio principal a través del grupo.

Nota: Linux también proporciona un comando para modificar usuarios existentes con usermod.

Sigue los ejemplos a continuación para ver cómo agregar usuarios en Linux.

Agregar un Usuario en Linux

Para agregar un usuario en Linux, ejecuta el siguiente comando en la terminal:

sudo useradd <nombre de usuario>
agregar usuarios en linux 1
agregar usuarios en linux 1

Si se solicita, ingresa la contraseña de sudo para continuar.

Sin opciones adicionales, el comando useradd agrega un usuario en base a las opciones predefinidas en el archivo /etc/default/useradd. El nuevo usuario estará bloqueado y requerirá una contraseña para desbloquearlo. Usa el comando passwd para establecer la contraseña:

sudo passwd <nombre de usuario>
agregar usuarios en linux 2
agregar usuarios en linux 2

El comando solicitará ingresar y confirmar la contraseña.

Después de crear una contraseña, aparecerá automáticamente una nueva entrada en el archivo /etc/passwd. Para ver la información, puedes ver el archivo con el comando cat y buscar el usuario con grep:

sudo cat /etc/passwd | grep <nombre de usuario>

Los campos tienen el siguiente formato:

agregar usuarios en linux 3
agregar usuarios en linux 3
nombre de usuario:contraseña:UID:GID:información:/directorio principal:ruta del shell

El carácter “x” representa y oculta la contraseña del usuario por razones de seguridad. La contraseña encriptada se encuentra en el archivo /etc/shadow.

Agregar un Usuario en Linux y Crear un Directorio Principal

Por defecto, el comando useradd no crea un directorio principal. El archivo /etc/passwd muestra un enlace absoluto (/home/<nombre de usuario>). Si el directorio no existe, el usuario se redirige al directorio principal (/) después de iniciar sesión.

Para crear un usuario y el directorio principal automáticamente, usa la opción -m:

sudo useradd -m <nombre de usuario>

Verifica si el directorio existe con el comando ls:

ls -lah /home/<nombre de usuario>
agregar usuarios en linux 4
agregar usuarios en linux 4

El directorio contendrá archivos de inicialización copiados desde el directorio /etc/skel.

Agregar un Usuario con un Directorio Principal Específico

Para agregar un usuario en Linux con un directorio principal específico, usa la opción -m junto con -d y proporciona la ruta del directorio:

sudo useradd -m -d <ruta> <nombre de usuario>
agregar usuarios en linux 5
agregar usuarios en linux 5

El comando useradd advierte que el directorio ya existe y no copia archivos desde /etc/skel. Usa esta opción para crear un directorio principal personalizado o compartido.

Agregar un Usuario sin Directorio Principal

Si la variable CREATE_HOME del archivo de configuración /etc/login.defs tiene el valor “yes”, el comando useradd crea automáticamente un directorio principal.

Para anular la configuración predeterminada y agregar un usuario sin directorio principal, usa la opción -M:

sudo useradd -M <nombre de usuario>
agregar usuarios en linux 6
agregar usuarios en linux 6

El comando agrega al usuario sin crear un directorio principal, anulando la configuración predeterminada.

Agregar un Usuario con un ID de Usuario Específico

Para agregar un usuario con un ID de usuario específico, usa la opción -u y proporciona el UID:

sudo useradd -u <UID> <nombre de usuario>

Si el UID no es único, la terminal mostrará un mensaje y no agregará el usuario. Verifica el UID con el comando id:

id <nombre de usuario>
agregar usuarios en linux 7
agregar usuarios en linux 7

Usa un UID mayor a 1000 para indicar un usuario regular.

Agregar un Usuario con un ID de Grupo Específico

Para crear un usuario y agregarlo a un grupo específico, usa la opción -g:

sudo useradd -g <nombre o ID del grupo> <nombre de usuario>

El nombre o ID del grupo debe existir, de lo contrario, el comando mostrará un error. Verifica el GID del usuario con:

id <nombre de usuario>
agregar usuarios en linux 8
agregar usuarios en linux 8

La salida mostrará el ID del grupo del usuario.

Agregar un Usuario a Múltiples Grupos

Agrega un usuario a múltiples grupos con la opción -G y lista los nombres o IDs de los grupos separados por comas, seguido del nombre de usuario. Por ejemplo:

sudo useradd -G <grupo1,grupo2,grupo3> <nombre de usuario>

Verifica los grupos del usuario con:

id <nombre de usuario>
agregar usuarios en linux 9
agregar usuarios en linux 9

Los grupos deben existir y la lista no debe contener espacios. El comando no agregará al usuario si algún grupo no existe.

Nota: Para agregar un usuario existente a un grupo, consulta la siguiente guía: Cómo Agregar un Usuario a un Grupo en Linux.

Agregar un Usuario con un Shell de Inicio Específico

Cada nuevo usuario obtiene un shell de inicio predeterminado (como el shell Bourne o Bourne Again). Para definir explícitamente el shell de inicio del usuario, usa la opción -s y proporciona la ruta del shell:

sudo useradd -s <ruta del shell> <nombre de usuario>

Por ejemplo, para agregar un usuario y establecer Bash como el shell de inicio predeterminado, ejecuta:

sudo useradd -s /bin/bash <nombre de usuario>

Verifica el archivo /etc/passwd para confirmar la selección del shell:

cat /etc/passwd | grep <nombre de usuario>
agregar usuarios en linux 10
agregar usuarios en linux 10

El último campo muestra el shell de inicio del nuevo usuario.

Agregar un Usuario con un Comentario Específico

Para agregar un usuario con un comentario específico, ejecuta:

sudo useradd -c <comentario> <nombre de usuario>

Para ver el comentario, verifica el archivo /etc/passwd y busca el usuario con grep:

sudo cat /etc/passwd | grep <nombre de usuario>
agregar usuarios en linux 11
agregar usuarios en linux 11

El comentario es únicamente para propósitos descriptivos y no tiene funcionalidad real.

Agregar un Usuario con Fecha de Expiración de la Cuenta

Agrega un usuario con una fecha de expiración de cuenta para eliminar automáticamente la cuenta después de la fecha proporcionada:

sudo useradd -e <YY-MM-DD> <nombre de usuario>

Consulta la información de expiración de la cuenta con:

sudo chage -l <nombre de usuario>
agregar usuarios en linux 12
agregar usuarios en linux 12

La salida mostrará la fecha de expiración de la cuenta (Account expires). Usa esta opción para cuentas temporales.

Agregar un Usuario con un Período de Desactivación

Si un usuario tiene una contraseña con fecha de vencimiento establecida, el comando useradd permite especificar un período antes de que la cuenta se desactive después del vencimiento de la contraseña. Si una cuenta expira, el período de desactivación permitirá a los usuarios cambiar su contraseña y reactivar la cuenta.

Usa la opción -f y proporciona el número de días:

sudo useradd -f <días> <nombre de usuario>

Por ejemplo, para que una cuenta se desactive tres días después de que la contraseña expire, ejecuta:

sudo useradd -f 3 <nombre de usuario>

Verifica la información de expiración con:

sudo cat /etc/shadow | grep <nombre de usuario>
agregar usuarios en linux 13
agregar usuarios en linux 13

El archivo /etc/shadow almacena información de contraseñas, incluido el tiempo de inactividad (tercer campo contando desde el final).

Usa este método para desactivar usuarios que no cambien su contraseña dentro del plazo establecido.

El período de desactivación es una buena medida de seguridad y la duración recomendada es de 35 días. Los requisitos comerciales determinan cuál es la duración perfecta antes de que la cuenta expire. Si el valor es demasiado bajo, las consecuencias son costosas para un administrador, mientras que un valor alto afecta la seguridad.

Agregar un Usuario de Sistema

Los programas y sistemas crean cuentas de usuario de sistema, que son diferentes de los usuarios regulares. Programas como MySQL o Tomcat requieren una cuenta de usuario única para funcionar en el sistema y los demonios suelen crear usuarios de sistema durante la instalación.

Para crear un usuario de sistema, usa la opción -r:

sudo useradd -r <nombre de usuario>

Verifica la información del usuario con:

sudo cat /etc/passwd | grep <nombre de usuario>
agregar usuarios en linux 14
agregar usuarios en linux 14

El usuario tiene un UID inferior a 1000, lo que indica que es un usuario de sistema.

El Comando adduser

El comando adduser es una forma alternativa de agregar usuarios a un sistema Linux y actúa como una interfaz interactiva simple para useradd.

Para agregar un usuario, ejecuta:

sudo adduser <nombre de usuario>

El comando imprime el usuario y el grupo en la consola.

A continuación, el comando solicita lo siguiente:

  • Contraseña, que debe volver a ingresarse para continuar.
  • Información del usuario. Los datos actúan como un comentario (igual que el comando y opción useradd -c).

Pulsa Y para completar el proceso. En caso de un error, pulsa N y vuelve a ingresar la información correcta.

agregar usuarios en linux 15
agregar usuarios en linux 15

Verifica los parámetros del comando adduser con:

sudo cat /etc/passwd | grep <nombre de usuario>
agregar usuarios en linux 16
agregar usuarios en linux 16

El comando agrega todos los valores ingresados durante la ejecución del comando y selecciona el shell Bash de forma predeterminada.

Agregar Múltiples Usuarios

Los comandos useradd y adduser no admiten agregar múltiples usuarios al mismo tiempo. Para agregar múltiples usuarios, usa un bucle for en un script de Bash o en la terminal directamente para recorrer una lista de nombres de usuarios.

Nota: Aprende cuáles son las diferencias entre los comandos useradd y adduser.

Por ejemplo, para agregar diez usuarios, realiza lo siguiente:

    1. Crea un archivo de texto usando un editor de texto:
nano lista_usuarios.txt
    1. Agrega los nombres de usuario al archivo, ingresando cada uno en una nueva línea. Por ejemplo:
alice
bob
charlie
dave
    1. Guarda el archivo y cierra nano (CTRL+X, Y y luego Enter).
    2. Usa un bucle for para recorrer los nombres en el archivo y ejecutar useradd en cada uno:
for i in `cat ~/lista_usuarios.txt` ; do useradd $i ; done
    1. Muestra los usuarios creados con:
for i in `cat ~/lista_usuarios.txt` ; do id $i ; done
agregar usuarios en linux 17
agregar usuarios en linux 17

Para agregar contraseñas, reemplaza el comando en la cláusula do por passwd e ingresa la contraseña para cada usuario. Alternativamente, usa el comando expect para automatizar el proceso de creación de contraseñas, especialmente si estás trabajando con un gran número de usuarios.

Conclusión

Después de completar esta guía, sabes cómo agregar nuevos usuarios a un sistema Linux con el comando useradd.

Te recomendamos  ¿Qué es el Servicio Bonjour en Windows 10?