-
Notifications
You must be signed in to change notification settings - Fork 0
03 Gestion de Usuarios
- Archivos de Gestión de Usuarios
- Gestión de Usuarios
- Recursos Recomendados
- Referencias
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.
El comando useradd permite crear usuarios y, opcionalmente, configurar sus
atributos en el momento de la creación.
useradd [options] LOGINDonde LOGIN es el nombre del usuario a crear.
| 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 migueluseradd -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/shellsImportant
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.
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' \
itzelAdicionalmente, 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 successfullyNote
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 passwdgetent passwd root
|
getent shadow [LOGIN ...] |
Muestra la entrada de /etc/shadow de los usuarios LOGIN ...; si se omite, muestra todas las entradas |
getent shadowgetent 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 |
whoamiecho $USER
|
Muestra el nombre del usuario actual |
whoamiecho $USER
|
groups [NEWGROUP] |
Muestra los grupos a los que pertenecen los usuarios LOGIN ...
|
idid miriam
|
id [LOGIN] |
Muestra el UID, el GID primario y los grupos secundarios del usuario LOGIN
|
idid miriam
|
id -u [LOGIN] |
Muestra el UID del usuario LOGIN
|
id -uid -u miriam
|
id -g [LOGIN] |
Muestra el GID del grupo primario del usuario LOGIN
|
id -gid -g enrique
|
id -G [LOGIN] |
Muestra los GIDs de todos los grupos del usuario LOGIN
|
id -Gid -G rosa
|
id -n -u|-g|-G [LOGIN] |
Muestra el nombre en lugar del número; debe combinarse con -u, -g o -G
|
id -unid -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).
El comando usermod permite modificar los atributos de las cuentas de usuario
existentes en el sistema.
usermod [options] LOGINDonde LOGIN es el nombre de la cuenta de usuario.
| 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.
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 \
adminAdicionalmente se desea renombrar su grupo primario de admin a sysadmin:
# groupmod -n sysadmin adminEl comando userdel permite eliminar una cuenta de usuario y, opcionalmente,
sus archivos asociados.
userdel [options] LOGINDonde LOGIN es el nombre de la cuenta de usuario.
| 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 |
-
Arch Wiki. (28 de febrero de 2026). Users and Groups. https://wiki.archlinux.org/title/Users_and_groups
-
shadow-utils. (27 de junio de 2025). USERADD(8). https://man.archlinux.org/man/useradd.8
-
shadow-utils. (27 de junio de 2025). USERMOD(8). https://man.archlinux.org/man/usermod.8
-
shadow-utils. (27 de junio de 2025). USERDEL(8). https://man.archlinux.org/man/userdel.8
- Definición y Estructura de un Shell
- Los Diferentes Tipos de Shell
- Definición y Sintaxis de un Comando
- Variables, Alias y Funciones
- Comandos de Utilidad y Consulta
- Linux como Sistema Multiusuario
- Introducción a los Usuarios y Grupos
- Gestión de Usuarios
- Gestión de Grupos
- Gestión de Contraseñas
- Búsqueda de Información de Usuarios y Grupos con
getent
- Atributos de Archivos: Propiedad y Permisos de los Archivos
- Cambio de Propiedad y Permisos
umask: Permisos Predeterminados de Archivos- Cambio de Identidad y Privilegios
- Gestión de Paquetes (Package Management)
- Compresión y Archivado de Archivos
- Optimización y Conversion de Archivos