Introducción
Linux es un entorno multiusuario y el aprovisionamiento de usuarios es una responsabilidad esencial en la gestión del sistema. Los administradores del sistema agregan, eliminan y administran usuarios y grupos en el sistema.
El useradd
El comando proporciona varias opciones, lo que da como resultado una forma completa de automatizar la administración de identidades y accesos.
Este artículo muestra cómo crear y agregar usuarios en Linux.
Requisitos previos
- Acceso a la terminal para ejecutar los comandos.
- Accede a un usuario con permisos sudo o root.
- Un editor de texto, como nano o Vim.
- Comandos básicos de Linux (obtenga nuestra hoja de trucos de comandos de Linux).
Sintaxis del comando useradd
La sintaxis básica para useradd
el comando es:
useradd <options> <username>
Ejecutar el comando crea una nueva cuenta de usuario o actualiza un usuario existente según los valores en:
- /etc/default/useradd - Los valores predeterminados para el
useradd
comando. - /etc/login.defs - Valores de control de configuración para el paquete de inicio de sesión.
- El
<options>
proporcionado 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 guión 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 en un signo de dólar (
$
).
La expresión regular para verificar la validez del nombre de usuario es:
[a-z_][a-z0-9_-]*[$]
Además, el comando también crea un grupo para el nuevo usuario. Agregar un nuevo usuario requiere permisos sudo para modificar los archivos para almacenar información de usuarios y grupos.
Opciones de comando useradd
El useradd
El comando viene con varias opciones. Las opciones comunes se encuentran en la siguiente tabla:
Opción | Descripción |
---|---|
-b <directory> --base-dir <directory> | Establece un directorio base predeterminado para el sistema. |
-c <information> --comment <information> | Establece una breve descripción del usuario, como el nombre completo o el rol. |
-d <home directory> --home-dir <home directory> | El directorio de inicio de sesión del usuario. |
-D --defaults | Muestra los valores predeterminados o los cambia cuando se combinan con otras opciones. |
-e <YY-MM-DD> --expiredate <YY-MM-DD> | La fecha en que caduca la cuenta de usuario. |
-f <days> --inactive <days> | Establece el tiempo en días que la cuenta se vuelve inactiva después de que expira la contraseña. |
-g <name or number> --gid <name or number> | Establece el grupo de inicio de sesión inicial del usuario. |
-G <group1,group2,etc> --groups <group1,group2,etc> | Agrega usuarios a grupos adicionales. |
-k <skeleton directory> --skel <skeleton directory> | Copia archivos y directorios en el directorio de inicio del usuario. |
-m --create-home | Crea un directorio de inicio para un usuario si no existe. |
-M --no-create-home | No crea un directorio de inicio (anula la configuración del sistema). |
-o --non-unique | Combina con -u para permitir UID duplicados. |
-p <password> --password <password> | Establece la contraseña del usuario (no recomendado). |
-r --system | Agrega una cuenta del sistema. |
-s <shell path> --shell <shell path> | Define el shell de inicio de sesión del usuario. |
-u <uid> --uid <uid> | ID de valor numérico único. |
-U --user-group | Crea un grupo con el mismo nombre que el usuario y agrega el usuario al grupo. |
Creación de nuevos usuarios en Linux
La creación de nuevos usuarios en Linux hace lo siguiente:
1. Proporciona un UID y un GID únicos .
- 0 está reservado para root y se asigna automáticamente.
- 1-999 es para cuentas y servicios del sistema.
1000 y superiores son para usuarios habituales.
2. Edita archivos que almacenan información de la cuenta.
- /etc/contraseña - Enumera todos los usuarios registrados en el sistema.
- /etc/sombra - Almacena contraseñas de usuario encriptadas.
- /etc/grupo - Define grupos de usuarios.
- /etc/gshadow - Almacena contraseñas de grupo encriptadas.
3. Establece permisos de usuario en el directorio de inicio a través del grupo.
Siga los ejemplos a continuación para ver cómo agregar usuarios en Linux.
Agregar un usuario en Linux
Para agregar un usuario en Linux, ejecute el siguiente comando en la terminal:
sudo useradd <username>
Si se le solicita, ingrese la contraseña sudo para continuar.
Sin ninguna opción, el useradd
El comando agrega un usuario según las opciones predefinidas en /etc/useradd expediente. El nuevo usuario está bloqueado y requiere una contraseña para desbloquearlo. Use el comando passwd para desbloquear la cuenta:
sudo passwd <username>
El comando solicita ingresar y confirmar la contraseña.
Después de crear una contraseña, aparece automáticamente una nueva entrada en /etc/passwd expediente. Para ver la información, vea el archivo con el comando cat y grep para el usuario:
sudo cat /etc/passwd | grep <username>
Los campos tienen el siguiente formato:
username:password:UID:GID:info:/home/directory:shell/path
El x
carácter representa y oculta la contraseña del usuario por razones de seguridad. La contraseña cifrada está en /etc/shadow expediente.
Agregar un usuario en Linux y crear un directorio de inicio
Por defecto, el useradd
El comando no crea un directorio de inicio. El /etc/contraseña El archivo muestra un enlace absoluto (/home//
) después de iniciar sesión.
Para crear un usuario y el directorio de inicio automáticamente, use el -m
opción:
sudo useradd -m <username>
Compruebe si el directorio existe con el comando ls:
ls -lah /home/<username>
El directorio contiene archivos de inicialización copiados de /etc/skel directorio.
Adición de un usuario con un directorio de inicio específico
Para agregar un usuario en Linux con un directorio de inicio específico, use el -m
opción con -d
y proporcione la ruta del directorio:
sudo useradd -m -d <path> <username>
El useradd
El comando advierte que el directorio ya existe y no copia archivos de /etc/skel . Utilice esta opción para crear un directorio de inicio personalizado o compartido.
Adición de un usuario sin directorio de inicio
Si /etc/login.defs configuración CREATE_HOME
el valor de la variable es yes
, el useradd
El comando crea automáticamente un directorio de inicio.
Para anular la configuración predeterminada y agregar un usuario sin un directorio de inicio, use el -M
opción:
sudo useradd -M <username>
El comando agrega al usuario sin crear un directorio de inicio, anulando la configuración predeterminada.
Adición de un usuario con ID de usuario específico
Para agregar un usuario con una identificación de usuario específica, use el -u
etiquete y proporcione el UID:
sudo useradd -u <uid> <username>
Si el UID no es único, el terminal emite un mensaje y no agrega al usuario. Verifica el UID con el id
comando:
id <username>
Utilice un UID superior a 1000 para indicar un usuario normal.
Adición de un usuario con ID de grupo específico
Para crear un usuario y agregarlo a un grupo específico, use el -g
etiqueta:
sudo useradd -g <group name or GID> <username>
El nombre del grupo o GID debe existir. De lo contrario, el comando arroja un error. Verifique el GID del usuario con:
id <username>
La salida imprime el ID de grupo del usuario.
Adición de un usuario a varios grupos
Agregue un usuario a varios grupos con el -G
y enumere los nombres de grupo o GID en una lista separada por comas, seguida del nombre de usuario. Por ejemplo:
sudo useradd -G <group1,group2,group3> <username>
Verifique los grupos de usuarios con:
id <username>
Los grupos deben existir y la lista no debe contener espacios. El comando no agrega al usuario si no existe ningún grupo.
Agregar un usuario con un shell de inicio de sesión específico
Cada nuevo usuario obtiene un shell de inicio de sesión predeterminado (como el Bourne shell o el Bourne Again Shell). Para definir explícitamente el shell del usuario, agregue el -s
etiquete y proporcione la ruta del shell:
sudo useradd -s <shell path> <username>
Por ejemplo, para agregar un usuario y configurar Bash como shell de inicio de sesión predeterminado, ejecute:
sudo useradd -s /bin/bash <username>
Compruebe el /etc/passwd archivo para confirmar la selección de shell:
cat /etc/passwd | grep <username>
El campo final muestra el shell de inicio de sesión para el nuevo usuario.
Adición de un usuario con un comentario específico
Para agregar un usuario con un comentario específico, ejecute:
sudo useradd -c <comment> <username>
Para ver el comentario, consulte /etc/passwd archivo y grep para el usuario:
sudo cat /etc/passwd | grep <username>
El comentario es solo para fines descriptivos y no tiene ninguna funcionalidad real.
Agregar un usuario con fecha de caducidad de la cuenta
Agregue un usuario con una fecha de caducidad de la cuenta para eliminar automáticamente la cuenta después de la fecha proporcionada:
sudo useradd -e <YY-MM-D> <username>
Ver la información de caducidad de la cuenta con:
sudo chage -l <username>
La salida imprime la fecha de caducidad de la cuenta (Account expires
). Utilice esta opción para cuentas temporales.
Adición de un usuario con un período de desactivación
Si un usuario tiene configurada una caducidad de contraseña, el useradd
El comando permite establecer un período antes de que la cuenta se desactive después del vencimiento. Si una cuenta caduca, el período de caducidad permitirá a los usuarios cambiar su contraseña y reactivar la cuenta.
Usa el -f
comando y agregue el número de días:
sudo useradd -f <days> <username>
Por ejemplo, para que una cuenta se desactive tres días después de que caduque la contraseña, ejecute:
sudo useradd -f 3 <username>
Ver la información de caducidad con:
sudo cat /etc/shadow | grep <username>
El /etc/sombra El archivo almacena información de contraseñas, incluido el tiempo de inactividad (tercero al último campo).
Utilice este método para desactivar a los usuarios que no cambien su contraseña en el plazo previsto.
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 dictan cuál es la duración perfecta antes de que caduque la cuenta. Si el valor es demasiado bajo, las consecuencias son costosas para un administrador, mientras que un valor alto afecta la seguridad.
Adición de un usuario del sistema
Los programas y sistemas crean cuentas de usuario del sistema, que son diferentes de los usuarios regulares. Los programas como MySQL o Tomcat requieren una cuenta de usuario única para trabajar en el sistema, y los demonios suelen crear usuarios del sistema durante la instalación.
Para crear un usuario del sistema, use el -r
opción:
sudo useradd -r <username>
Verifique la información del usuario con:
sudo cat /etc/passwd | grep <username>
El usuario tiene un UID inferior a 1000, lo que indica que es un usuario del sistema.
El comando agregarusuario
El adduser
El comando 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, ejecute:
sudo adduser <username>
El comando imprime el usuario y el grupo en la consola.
A continuación, el comando solicita lo siguiente:
- Contraseña, que se debe volver a ingresar para continuar.
- Información del usuario. Los datos actúan como un comentario (igual que
useradd -c
comando y opción).
Presiona Y para completar el proceso. En caso de error, presione N y vuelva a ingresar la información correcta.
Verifique los parámetros del adduser
comando con:
sudo cat /etc/passwd | grep <username>
El comando agrega todos los valores ingresados durante la ejecución del comando y el shell Bash por defecto.
Añadir varios usuarios
El useradd
y adduser
Los comandos no admiten agregar varios usuarios a la vez. Para agregar varios usuarios, use un bucle for de Bash en un script o en la terminal directamente para recorrer una lista de nombres de usuario.
Por ejemplo, para agregar diez usuarios, haga lo siguiente:
1. Cree un archivo de texto usando un editor de texto:
nano user_list.txt
2. Agregue nombres de usuario al archivo, ingresando cada uno en una nueva línea. Por ejemplo:
alice
bob
charlie
dave
Guarde el archivo y cierre nano (CTRL +X , Y , luego Introducir ).
3. Usa un for
haga un bucle para ver los nombres en el archivo y ejecute useradd
en cada:
for i in `cat ~/user_list.txt` ; do useradd $i ; done
4. Mostrar los usuarios creados con:
for i in `cat ~/user_list.txt` ; do id $i ; done
Para agregar contraseñas, intercambie el comando en el do
cláusula con passwd
e ingrese la contraseña para cada usuario. Alternativamente, use el comando expect para automatizar el proceso de creación de contraseñas, especialmente si trabaja con una gran cantidad de usuarios.
Conclusión
Después de completar esta guía, sabrá cómo agregar nuevos usuarios a un sistema Linux con el useradd
dominio.
A continuación, lea sobre la administración de acceso privilegiado y cómo ayuda a reducir los ataques de seguridad y las filtraciones de datos.