Introducción al comando useradd de Linux

| |

COMPARTE EL ARTÍCULO!!!

Añadir un usuario es uno de los ejercicios más fundamentales en cualquier sistema informático; este artículo se centra en cómo hacerlo en un sistema Linux.

Más recursos de Linux

  • ¿Qué es Linux?
  • ¿Qué son los contenedores Linux?
  • Hoja de referencia de comandos avanzados de Linux
  • Hoja de referencia de comandos de Linux
  • Hoja de trucos de SELinux
  • Hoja de trucos para redes Linux
  • Nuestros últimos artículos de Linux

Antes de empezar, quiero mencionar tres aspectos fundamentales a tener en cuenta. En primer lugar, como con la mayoría de los sistemas operativos, los usuarios de Linux necesitan una cuenta para poder iniciar sesión. Este artículo cubre específicamente las cuentas locales, no las cuentas de red como LDAP. Segundo, las cuentas tienen un nombre (llamado nombre de usuario) y un número (llamado ID de usuario). En tercer lugar, los usuarios suelen ser colocados en un grupo. Los grupos también tienen un nombre y un ID de grupo.

Como era de esperar, Linux incluye una utilidad de línea de comandos para añadir usuarios; se llama useradd . También puede encontrar el comando adduser . Muchas distribuciones han añadido este enlace simbólico al comando useradd como cuestión de conveniencia.

$ fichero `which adduser`
/usr/sbin/adduser: enlace simbólico a useradd

.

Echemos un vistazo a useradd .

Nota: Los valores por defecto descritos en este artículo reflejan los de Red Hat Enterprise Linux 8.0. Puede encontrar sutiles diferencias en estos archivos y ciertos valores predeterminados en otras distribuciones de Linux u otros sistemas operativos Unix como FreeBSD o Solaris.

Comportamiento predeterminado

El uso básico de useradd es bastante simple: Un usuario puede ser añadido con sólo proporcionar su nombre de usuario.

$ sudo useradd sonny

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>.

En este ejemplo, el comando useradd crea una cuenta llamada sonny . También se crea un grupo con el mismo nombre, y sonny se coloca en él para ser utilizado como grupo primario. Hay otros parámetros, como el idioma y el shell, que se aplican según los valores predeterminados y los valores establecidos en los archivos de configuración /etc/default/useradd y /etc/login.defs . Por lo general, esto es suficiente para un sistema personal único o para un pequeño entorno empresarial de un servidor.

Mientras que los dos archivos anteriores gobiernan el comportamiento de useradd , la información del usuario se almacena en otros archivos que se encuentran en el directorio /etc , a los que me referiré a lo largo de este artículo.

Archivo Descripción Campos (en negrita por useradd) contraseña Almacena los detalles de la cuenta de usuario nombre de usuario :no utilizado: uid : gid : comentario : homedir : shell seguir de cerca Almacena los detalles de seguridad de la cuenta de usuario nombre de usuario :contraseña:último cambio:mínimo:máximo:aviso: inactivo : expirar :no utilizado agruparse Detalles del grupo de tiendas nombre de grupo :no utilizado: gid : miembros

Comportamiento personalizable

La línea de comandos permite la personalización para los momentos en que un administrador necesita un control más preciso, como por ejemplo para especificar el número de identificación de un usuario.

Números de identificación de usuario y grupo

Por defecto, useradd intenta utilizar el mismo número para el ID de usuario (UID) y el ID de grupo primario (GID), pero no hay garantías. Aunque no es necesario que la UID y el GID coincidan, es más fácil para los administradores administrarlos cuando lo hacen.

Tengo que explicarle el escenario. Suponga que añado otra cuenta, esta vez para Timmy. Comparando los dos usuarios, sonny y timmy , muestra que tanto los usuarios como sus respectivos grupos primarios fueron creados usando el comando getent .

$ getent passwd sonny timmy
sonny:x:1001:1002:Sonny:/home/sonny:/bin/bash
timmy:x:1002:1003::/home/timmy:/bin/bash

getent group sonny timmy
sonny:x:1002:
timmy:x:1003:>

Desafortunadamente, ni el UID de los usuarios ni el GID primario coinciden. Esto se debe a que el comportamiento por defecto es asignar el siguiente UID disponible al usuario e intentar asignar el mismo número al grupo primario. Sin embargo, si ese número ya se utiliza, se asigna al grupo el siguiente GID disponible. Para explicar lo que pasó, hipotetico que ya existe un grupo con GID 1001 e introduzco un comando para confirmarlo.

$ getent grupo 1001
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> libro:x:1001:alan

El libro del grupo con el ID 1001 ha causado que los GIDs estén apagados por uno. Este es un ejemplo en el que un administrador del sistema necesitaría tomar más control del proceso de creación de usuarios. Para resolver este problema, primero debo determinar el siguiente ID de usuario y grupo disponible que coincida. Los comandos getent group y getent passwd serán útiles para determinar el siguiente número disponible. Este número se puede pasar con el argumento -u .

$ sudo useradd -u 1004 bobby
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>.
getent passwd bobby; getent group bobby
bobby:x:1004:1004::/home/bobby:/bin/bash
bobby:x:1004:>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>)

Otra buena razón para especificar el ID es para los usuarios que accederán a los archivos en un sistema remoto utilizando el Sistema de Archivos de Red (NFS). NFS es más fácil de administrar cuando todos los sistemas cliente y servidor tienen el mismo ID configurado para un usuario determinado. Lo explico con más detalle en mi artículo sobre el uso de autofs para montar recursos compartidos NFS.

Más personalización

Sin embargo, muy a menudo es necesario especificar otros parámetros de cuenta para un usuario. A continuación, se incluyen breves ejemplos de las personalizaciones más comunes que puede necesitar utilizar.

Comentario

La opción de comentario es un campo de texto plano para proporcionar una descripción corta u otra información utilizando el argumento -c .

$ sudo useradd -c «Bailey is cool» bailey
getent passwd bailey
bailey:x:1011:1011:Bailey es genial:/home/bailey:/bin/bash

Grupos

A un usuario se le puede asignar un grupo primario y varios grupos secundarios. El argumento -g especifica el nombre o GID del grupo primario. Si no se especifica, useradd crea un grupo primario con el mismo nombre del usuario (como se ha demostrado anteriormente). El argumento -G (mayúsculas) se utiliza para pasar una lista de grupos separados por comas en los que se colocará el usuario; estos se conocen como grupos secundarios.

$ sudo useradd -G tgroup,fgroup,libvirt milly
id milly
uid=1012(milly) gid=1012(milly) grupos=1012(milly),981(libvirt),4000(fgroup),3000(tgroup)

Directorio principal

El comportamiento por defecto de useradd es crear el directorio raíz del usuario en /home . Sin embargo, diferentes aspectos del directorio raíz pueden ser anulados con los siguientes argumentos. El -b establece otro directorio donde se pueden colocar los hogares de los usuarios. Por ejemplo, /home2 en lugar del valor por defecto /home .

$ sudo useradd -b /home2 vicky
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>. getent passwd vicky
vicky:x:1013:1013::/home2/vicky:/bin/bash

El -d le permite especificar un directorio raíz con un nombre diferente al del usuario.

$ sudo useradd -d /home/ben jerry
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>. getent passwd jerry
jerry:x:1014:1014::/home/ben:/bin/bash

El directorio skeleton

El -k instruye al nuevo directorio raíz del nuevo usuario para que se complete con cualquier archivo en el directorio /etc/skel . Por lo general, se trata de archivos de configuración de shell, pero pueden ser cualquier cosa que un administrador del sistema desee poner a disposición de todos los nuevos usuarios.

Shell

El argumento -s puede usarse para especificar el shell. El valor predeterminado se utiliza si no se especifica nada más. Por ejemplo, a continuación, shell bash está definido en el archivo de configuración por defecto, pero Wally ha solicitado zsh .

$ grep SHELL /etc/default/useradd 
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>i). SHELL=/bin/bash

sudo useradd -s /usr/bin/zsh wally
getent passwd wally
wally:x:1004:1004::/home/wally:/usr/bin/zsh

Seguridad

La seguridad es una parte esencial de la gestión de usuarios, por lo que hay varias opciones disponibles con el comando useradd . A una cuenta de usuario se le puede dar una fecha de expiración, en la forma AAAA-MM-DD, usando el argumento -e .

$ sudo useradd -e 20191231 sammy
sudo getent shadow sammy
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ 999999999¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡!!!

Una cuenta también puede ser desactivada automáticamente si la contraseña expira. El argumento -f establecerá el número de días después de que la contraseña expire antes de que la cuenta sea desactivada. Cero es inmediato.

$ sudo useradd -f 30 willy
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>. sudo getent shadow willy
18171:0:99999:7:30::

Un ejemplo del mundo real

En la práctica, varios de estos argumentos pueden utilizarse al crear una nueva cuenta de usuario. Por ejemplo, si necesito crear una cuenta para Perry, podría usar el siguiente comando:

$ sudo useradd -u 1020 -c "Perry Example"
-G tgroup -b /home2
-s /usr/bin/zsh
-e 20201901 -f 5 perry

Consulte las secciones anteriores para entender cada opción. Verifique los resultados con:

. perry:x:1020:1020:1020:Perry Ejemplo:/home2/perry:/usr/bin/zsh
perry:x:1020:
18171:0:99999:7:5:20201901:
uid=1020(perry) gid=1020(perry) groups=1020(perry),3000(tgroup)

Algunos consejos finales

El comando useradd es un «must know» para cualquier administrador de Unix (no sólo de Linux). Es importante entender todas sus opciones ya que la creación de usuarios es algo que usted quiere hacer bien la primera vez. Esto significa tener una convención de nomenclatura bien pensada que incluye un rango UID/GID dedicado reservado para los usuarios de toda la empresa, no sólo en un único sistema, especialmente cuando se trabaja en una organización en crecimiento.

COMPARTE EL ARTÍCULO!!!

Previous

El equipo Pi de Frambuesa anuncia la zona de usuarios de ARM de código abierto

El curso universitario enseña la interacción entre la computadora y el ser humano con el hardware abierto y el OSS

Next

Deja un comentario

shares