Introducción
Linux es un sistema multiusuario, lo que significa que más de una persona puede interactuar con el mismo sistema al mismo tiempo. Como administrador del sistema, usted es responsable de administrar los usuarios y grupos del sistema creando y eliminando usuarios y asignándolos a diferentes grupos.
En Linux, puede crear una cuenta de usuario y asignar el usuario a diferentes grupos usando el comando useradd
useradd
es una utilidad de bajo nivel, los usuarios de Debian y Ubuntu probablemente usarán el comando adduser en su lugar.
En este artículo, hablaremos sobre cómo usar el useradd
y exploraremos sus opciones.
Sintaxis del comando useradd
La sintaxis general del useradd
es la siguiente:
useradd [OPTIONS] USERNAME
Para utilizar el useradd
y crear nuevos usuarios, debe iniciar sesión como root o como usuario con acceso sudo.
Cuando se invoca, useradd
crea una nueva cuenta de usuario usando las opciones especificadas en la línea de comando más los valores predeterminados especificados en el /etc/default/useradd
.
Las variables definidas en este archivo difieren de una distribución a otra, lo que hace que el useradd
produzca resultados diferentes en diferentes sistemas.
El comando también lee el contenido del archivo /etc/login.defs
Este archivo contiene la configuración del conjunto de contraseñas ocultas, como las políticas de caducidad de contraseñas, los rangos de ID de usuario utilizados durante la creación del sistema y los usuarios habituales, y más.
Cómo crear un nuevo usuario en Linux
Para crear una nueva cuenta de usuario, escriba useradd
seguido del nombre de usuario.
Por ejemplo, para crear un nuevo usuario llamado username
ejecute este comando:
sudo useradd username
En su forma más simple, cuando se usa sin ninguna opción, useradd creará una nueva cuenta de usuario con la configuración predeterminada especificada en el /etc/default/useradd
.
El comando agrega una entrada a los /etc/passwd
, /etc/shadow
, /etc/group
y /etc/gshadow
.
Para iniciar sesión con el usuario recién creado, se debe establecer la contraseña del usuario. Para hacer esto, ejecute el passwd
seguido del nombre de usuario:
sudo passwd username
Se le pedirá que ingrese y confirme su contraseña. Asegúrese de utilizar una contraseña segura.
Changing password for user username.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
Cómo agregar un nuevo usuario y crear el directorio de inicio
En la mayoría de las distribuciones de Linux, cuando crea una nueva cuenta de usuario con el useradd
, no se crea el directorio de inicio del usuario.
Utilice la -m
( --create-home
) para crear el directorio de inicio del usuario como /home/username
:
sudo useradd -m username
El comando anterior crea el directorio de inicio del nuevo usuario y copia los archivos del /etc/skel
directorio de inicio del usuario. Si enumera los archivos en el /home/username
, se mostrarán los archivos de inicialización:
ls -la /home/username/
drwxr-xr-x 2 username username 4096 Dec 11 11:23.
drwxr-xr-x 4 root root 4096 Dec 11 11:23..
-rw-r--r-- 1 username username 220 Apr 4 2018.bash_logout
-rw-r--r-- 1 username username 3771 Apr 4 2018.bashrc
-rw-r--r-- 1 username username 807 Apr 4 2018.profile
Dentro del directorio de inicio, el usuario puede escribir, modificar y eliminar archivos y directorios.
Crea un usuario con un directorio de inicio específico
Si desea crear el directorio de inicio del usuario en otra ubicación, el /home
utiliza la d
( --home
).
Por ejemplo, para crear un nuevo usuario llamado username
con un directorio de inicio /opt/username
necesita ejecutar el siguiente comando:
sudo useradd -m -d /opt/username username
Crea un usuario con un ID de usuario específico
En los sistemas operativos Linux y Unix, los usuarios se identifican por su UID y nombre de usuario únicos.
El identificador de usuario (UID) es un número entero positivo único asignado por el sistema Linux a cada usuario. El UID junto con otras políticas de control de acceso se utiliza para determinar los tipos de acciones que un usuario puede realizar en los recursos del sistema.
De forma predeterminada, cuando se crea un nuevo usuario, el sistema asigna el siguiente UID disponible del rango de ID de usuario especificado en el archivo login.defs
Utilice la -u
( --uid
) para crear un usuario con un UID específico. Por ejemplo, para crear un nuevo usuario llamado username
con UID 1500
, escriba:
sudo useradd -u 1500 username
Puede verificar el UID del usuario mediante el comando id
id -u username
1500
Crea un usuario con un ID de grupo específico
Los grupos de Linux son unidades organizativas que se utilizan para organizar y administrar cuentas de usuario en Linux. El propósito principal de los grupos es definir un conjunto de privilegios como leer, escribir o ejecutar la autorización para un recurso determinado que se puede compartir entre los usuarios dentro del grupo.
Al crear un nuevo usuario, el comportamiento predeterminado del useradd
es crear un grupo con el mismo nombre que el nombre de usuario y el mismo GID que el UID.
Utilice la -g
( --gid
) para crear un usuario con un grupo de inicio de sesión inicial específico. Puede especificar el nombre del grupo o el número GID. El nombre del grupo o GID ya debe existir.
Por ejemplo, para crear un nuevo usuario llamado username
y configurar el grupo de acceso de users
sudo useradd -g users username
Para verificar el GID del usuario, use el comando id
:
id -gn username
users
Crear un usuario y asignar varios grupos
Hay dos tipos de grupos en los sistemas operativos Linux Grupo primario y Grupo secundario o complementario. Cada usuario puede pertenecer exactamente a un grupo primario y a cero o más grupos secundarios.
La -G
( --groups
) especifica una lista de grupos adicionales de los que el usuario será miembro.
El siguiente comando creará un nuevo usuario llamado username
con el grupo de users
wheel
y docker
grupos secundarios.
sudo useradd -g users -G wheel,developers username
Puede verificar los grupos de usuarios escribiendo
id username
uid=1002(username) gid=100(users) groups=100(users),10(wheel),993(docker)
Crear un usuario con un shell de inicio de sesión específico
De forma predeterminada, el shell de inicio de sesión del nuevo usuario se establece en el especificado en el /etc/default/useradd
. En algunas distribuciones de Linux como Ubuntu 18.04, el shell predeterminado se establece en /bin/sh
mientras que en otras se establece en /bin/bash
.
La -s
( --shell
) especifica el shell de inicio de sesión del nuevo usuario.
Por ejemplo, para crear un nuevo usuario llamado username
con /usr/bin/zsh
como tipo de shell de inicio de sesión:
sudo useradd -s /usr/bin/zsh username
Verifique la entrada del usuario en el /etc/passwd
para verificar el shell de inicio de sesión del usuario:
grep username /etc/passwd
username:x:1001:1001::/home/username:/usr/bin/zsh
Crea un usuario con comentario personalizado
La -c
( --comment
) le permite agregar una breve descripción para el nuevo usuario. Por lo general, el nombre completo del usuario o la información de contacto se agrega como comentario.
En el siguiente ejemplo, estamos creando un nuevo usuario llamado username
con la cadena de texto Test User Account
sudo useradd -c "Test User Account" username
El comentario se guarda en el /etc/passwd
:
grep username /etc/passwd
username:x:1001:1001:Test User Account:/home/username:/bin/sh
El campo de comentarios también se conoce como GECOS
.
Creando un usuario con una fecha de vencimiento
La -e
( --expiredate
) le permite definir una hora en la que expirarán las nuevas cuentas de usuario. Esta opción es útil para crear cuentas temporales. La fecha debe especificarse utilizando el YYYY-MM-DD
.
Por ejemplo, para crear una nueva cuenta de usuario denominada username
con fecha de vencimiento establecida en 05 de enero de 2020, ejecute:
sudo useradd -e 2022-01-05 username
Puede usar el chage
para verificar la fecha de vencimiento de la cuenta de usuario:
sudo chage -l username
La salida se verá así:
Last password change: Dec 11, 2018
Password expires: never
Password inactive: never
Account expires: Jan 05, 2020
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
Crear un usuario del sistema
No existe una diferencia técnica real entre el sistema y los usuarios normales (normales). Normalmente, los usuarios del sistema se crean durante la instalación del sistema operativo y los nuevos paquetes.
En algunas situaciones, puede ser necesario crear un usuario del sistema que será utilizado por algunas aplicaciones.
Utilice la -r
( --system
) para crear una cuenta de usuario del sistema. Por ejemplo, para crear un nuevo usuario del sistema llamado username
, debe ejecutar:
sudo useradd -r username
Los usuarios del sistema se crean sin fecha de vencimiento. Sus UID se eligen del rango de ID de usuario del sistema especificado en el login.defs
, que es diferente del rango utilizado para usuarios normales.
Cambiar los valores predeterminados de useradd
Las opciones predeterminadas de useradd se pueden ver y cambiar usando la -D
, --defaults
, o editando manualmente los valores en el /etc/default/useradd
.
Para ver las opciones predeterminadas actuales, escriba:
useradd -D
La salida se verá así:
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/sh
SKEL=/etc/skel
CREATE_MAIL_SPOOL=no
Supongamos que desea cambiar el shell de inicio de sesión predeterminado de /bin/sh
a /bin/bash
. Para hacer esto, especifique el nuevo shell como se muestra a continuación:
sudo useradd -D -s /bin/bash
Puede verificar que el valor de shell predeterminado se cambia ejecutando el siguiente comando:
sudo useradd -D | grep -i shell
SHELL=/bin/bash
Conclusión
En este tutorial, le mostramos cómo crear nuevas cuentas de usuario usando el comando useradd