Skip to content

03 Gestion de Usuarios

Alan edited this page Jun 13, 2026 · 1 revision

Introducción a la Gestión de Usuarios

Tabla de Contenidos

Archivos de Gestión de Usuarios

Como vimos en Introducción a los Usuarios y Grupos existen una serie de archivos que contienen las bases de datos (colon-separated values) de los usuarios del sistema. Entre ellos se encuentran:

Archivo (base de datos) Nombre Contenido
/etc/passwd the password file Información de las cuentas de usuario
/etc/shadow shadowed password file Información confidencial de los usuarios (e.g., contraseñas hasheadas)

Caution

Se recomienda NO editar estos archivos manualmente. Existen utilidades que nos permiten gestionar los usuarios evitando agregar información inválida en estas bases de datos. Véase #Gestión de Usuarios.

Gestión de Usuarios

Creación de Usuarios (useradd)

El comando useradd permite crear usuarios y, opcionalmente, configurar sus atributos en el momento de la creación.

Sintaxis de useradd

useradd [options] LOGIN

Donde LOGIN es el nombre del usuario a crear.

Opciones de useradd

Uso Descripción Ejemplo
useradd LOGIN Crea el usuario LOGIN como usuario normal (i.e., UID dentro del rango UID_MIN-UID_MAX, definido en el archivo login.defs) useradd karla
useradd -u UID LOGIN Crea el usuario LOGIN con el UID especificado useradd -u 1500 carlos
useradd -m LOGIN Crea el usuario LOGIN y su directorio home en la ruta predeterminada (e.g., /home/LOGIN) useradd -m andres
useradd -b PATH LOGIN Crea el usuario LOGIN y su directorio home en PATH/LOGIN useradd -b /home/marketing rodrigo
useradd -d PATH LOGIN Crea el usuario LOGIN y establece PATH como su directorio home (ruta completa, no base) useradd -d /sysadmin sysadmin
useradd -G GROUP[,GROUP2,...] LOGIN Crea el usuario LOGIN y lo agrega a los grupos secundarios especificados (separados por comas) useradd -G sudo miguel
useradd -G networking,it maria
useradd -c COMMENT LOGIN Crea el usuario LOGIN con un comentario en el campo GECOS useradd -c 'Valeria Perez,12-3456-7890,valeria@empresa.com' valeria
useradd -s SHELL LOGIN Crea el usuario LOGIN y establece SHELL (ruta hacia el shell) como su shell predeterminado useradd -s /usr/bin/zsh mario
useradd -r LOGIN Crea al usuario LOGIN como cuenta del sistema (i.e., sin directorio home y UID dentro del rango SYS_UID_MIN-SYS_UID_MAX, definido en el archivo login.defs) useradd -r backups
useradd -e YYYY-MM-DD LOGIN Crea el usuario LOGIN con fecha de expiración de cuenta YYYY-MM-DD. Si se especifica un -1 o una cadena vacía (""), la cuenta no tendrá fecha de expiración useradd -e 2026-12-31 contractor

Tip

Para ver las shells disponibles en el sistema puedes ejecutar cualquiera de los siguientes comandos:

chsh -l
cat /etc/shells

Important

Al usar la opción -G, se producirá un error si alguno de los grupos especificados no existe previamente en el sistema.

Caution

Después de crear un usuario, es altamente recomendable asignarle una contraseña con el comando passwd como método de autenticación al momento de iniciar sesión. Véase Ejemplo de Creación de un Usuario.

Ejemplo de Creación de un Usuario

Se requiere crear al usuario itzel que pertenezca a los grupos devops, developers y operations, con el directorio home /home/devops/itzel, shell predeterminado /usr/bin/zsh y un comentario con la siguiente sintaxis, con campos separados por ,:

Nombre completo,Rol,Piso,Número telefónico de trabajo (formato 2-4-4)
# useradd -G devops,developers,operations \
    -b /home/devops \
    -s /usr/bin/zsh \
    -c 'Itzel Torres Espinoza,Ingeniero en DevOps,3,12-3456-7890' \
    itzel

Adicionalmente, se requiere asignarle una contraseña segura. Véase Lineamientos para la Creación de Contraseñas.

# passwd itzel
New password:
Retype new password:
passwd: password updated successfully

Consulta de Información de Cuentas de Usuario

Note

LOGIN es el nombre de la cuenta de usuario. En los comandos que lo aceptan, también puede especificarse el UID numérico directamente (e.g., id 1000). Si se omite, el comando aplica al usuario actual.

Comando Descripción Ejemplo
getent passwd [LOGIN ...] Muestra la entrada de /etc/passwd de los usuarios LOGIN ...; si se omite, muestra todas las entradas getent passwd
getent passwd root
getent shadow [LOGIN ...] Muestra la entrada de /etc/shadow de los usuarios LOGIN ...; si se omite, muestra todas las entradas getent shadow
getent shadow $USER
echo ~[LOGIN] Muestra el directorio home del usuario LOGIN echo ~
echo ~carlos
echo $SHELL Muestra la shell de la sesión actual echo $SHELL
whoami
echo $USER
Muestra el nombre del usuario actual whoami
echo $USER
groups [NEWGROUP] Muestra los grupos a los que pertenecen los usuarios LOGIN ... id
id miriam
id [LOGIN] Muestra el UID, el GID primario y los grupos secundarios del usuario LOGIN id
id miriam
id -u [LOGIN] Muestra el UID del usuario LOGIN id -u
id -u miriam
id -g [LOGIN] Muestra el GID del grupo primario del usuario LOGIN id -g
id -g enrique
id -G [LOGIN] Muestra los GIDs de todos los grupos del usuario LOGIN id -G
id -G rosa
id -n -u|-g|-G [LOGIN] Muestra el nombre en lugar del número; debe combinarse con -u, -g o -G id -un
id -Gn juan

Tip

Para más información acerca del comando getent véase Búsqueda de Información de Usuarios y Grupos con getent y getent(1).

Modificación de Usuarios (usermod)

El comando usermod permite modificar los atributos de las cuentas de usuario existentes en el sistema.

Sintaxis de usermod

usermod [options] LOGIN

Donde LOGIN es el nombre de la cuenta de usuario.

Opciones de usermod

Uso Descripción Ejemplo
usermod -l NEW_LOGIN LOGIN Renombra la cuenta LOGIN a NEW_LOGIN usermod -l bkps backups
usermod -aG GROUP[,GROUP2,[...GROUPN]] LOGIN Agrega al usuario LOGIN a los grupos especificados, conservando sus grupos actuales usermod -aG support ramon
usermod -G GROUP[,GROUP2,[...GROUPN]] LOGIN Agrega al usuario LOGIN a los grupos especificados, removiendo a sus grupos actuales (exceptuando a su grupo primario) usermod -G databases,development paola
usermod -s SHELL LOGIN Cambia la shell predeterminada del usuario LOGIN por SHELL (ruta hacia el shell) usermod -s /usr/bin/fish ricardo
usermod -c COMMENT LOGIN Cambia el comentario del usuario LOGIN por COMMENT usermod -c 'Administrador de Redes' angel
usermod -d HOME_DIR LOGIN Cambia el directorio home del usuario LOGIN a HOME_DIR sin mover su contenido usermod -d /home/it/daniela daniela
usermod -md HOME_DIR LOGIN Cambia el directorio home del usuario LOGIN a HOME_DIR y mueve el contenido del directorio anterior al nuevo usermod -md /home/security/soc/eduardo eduardo
usermod -e YYYY-MM-DD LOGIN Cambia la fecha de expiración de la cuenta LOGIN a YYYY-MM-DD. Si se especifica un -1 o una cadena vacía (""), la cuenta no tendrá fecha de expiración usermod -e 2027-01-31 contractor
usermod -L LOGIN Bloquea la cuenta del usuario LOGIN deshabilitando su contraseña usermod -L itzel
usermod -U LOGIN Desbloquea la cuenta del usuario LOGIN usermod -U itzel

Note

usermod -l solo renombra la cuenta del usuario. Para reubicar el directorio home combínalo con -md NEW_HOME. Adicionalmente para renombrar el grupo primario ejecuta groupmod -n NEW_GROUP GROUP.

Ejemplo de Modificación de un Usuario

Se desea renombrar al usuario admin como sysadmin, cambiar su comentario a Administrador de Sistemas y reubicar su directorio home a /sysadmin, moviendo el contenido actual:

# usermod -l sysadmin \
    -c 'Administrador de Sistemas' \
    -md /sysadmin \
    admin

Adicionalmente se desea renombrar su grupo primario de admin a sysadmin:

# groupmod -n sysadmin admin

Eliminación de Usuarios (userdel)

El comando userdel permite eliminar una cuenta de usuario y, opcionalmente, sus archivos asociados.

Sintaxis de userdel

userdel [options] LOGIN

Donde LOGIN es el nombre de la cuenta de usuario.

Opciones de userdel

Uso Descripción Ejemplo
userdel LOGIN Elimina al usuario LOGIN userdel ricardo
userdel -r LOGIN Elimina al usuario LOGIN junto a su directorio home y su mail spool (cola de correo) userdel -r andres
userdel -f LOGIN Elimina al usuario LOGIN forzosamente, ignorando los chequeos de seguridad. Esta opción es PELIGROSA y puede dañar el sistema userdel -f itzel

Recursos Recomendados

Referencias

Introducción a los Sistemas Operativos

Introducción a Linux

Licencias de Software

Archivos y Directorios

Introducción a la CLI

Manipulación de Archivos y Directorios

Documentación y Exploración de Comandos

Redirección

Búsqueda de Archivos y Texto

Editores de Texto de Terminal

Gestión de Usuarios y Grupos

Propiedad y Permisos

Herramientas Esenciales

Hardware

Apéndice

Clone this wiki locally