La administración de usuarios es uno de los pilares fundamentales en cualquier sistema Linux. Comprender cómo crear, modificar y eliminar usuarios, así como gestionar permisos y grupos, permite mantener entornos más seguros, organizados y eficientes.
En esta guía aprenderás desde los conceptos básicos hasta las operaciones más utilizadas por administradores y desarrolladores: creación de usuarios, edición de cuentas existentes, eliminación segura, asignación de permisos y administración de grupos. Además, conocerás comandos prácticos y ejemplos reales que te ayudarán a aplicar estos conceptos en distribuciones Linux como Ubuntu, Debian, CentOS, Rocky Linux y otras.
Al finalizar, tendrás una base sólida para gestionar accesos y controlar recursos dentro de un sistema Linux.
¿Qué son los usuarios en Linux?
En Linux, los usuarios son cuentas que permiten identificar quién utiliza el sistema operativo y qué acciones puede realizar. Cada usuario tiene permisos específicos sobre archivos, carpetas, programas y recursos del sistema.
Linux es un sistema multiusuario, lo que significa que varias personas pueden utilizar el mismo servidor o computadora al mismo tiempo, cada una con su propia cuenta y permisos.
Los usuarios son fundamentales para:
- Controlar acceso a archivos y directorios.
- Separar configuraciones personales.
- Mejorar la seguridad del sistema.
- Evitar modificaciones no autorizadas.
- Administrar servidores y aplicaciones.
Tipos de usuarios en Linux
Usuario root
El usuario root es el administrador principal del sistema y tiene control total sobre Linux. Puede instalar programas, modificar configuraciones, eliminar archivos críticos y administrar usuarios.
root
El usuario root debe utilizarse con cuidado porque cualquier comando incorrecto puede afectar el sistema operativo.
Usuarios normales
Son cuentas utilizadas por personas para trabajar diariamente en Linux. Tienen permisos limitados y normalmente solo pueden modificar sus propios archivos.
oscar
juan
maria
Usuarios del sistema
Son usuarios creados automáticamente para ejecutar servicios y aplicaciones del sistema.
www-data
mysql
postgres
nginx
Estos usuarios normalmente no pueden iniciar sesión.
¿Dónde se almacena la información de usuarios?
Linux almacena la información de usuarios en varios archivos importantes:
Archivo /etc/passwd
Muestra el contenido del archivo /etc/passwd, que contiene información básica de las cuentas de usuario del sistema.
Este archivo puede ser leído por cualquier usuario porque no almacena las contraseñas.
Es una base de datos de usuarios local de Linux.
Puedes verificar sus permisos con ls -l:
ls -l /etc/passwd
Salida típica:
-rw-r--r-- 1 root root 3000 May 30 10:00 /etc/passwd
Observa que tiene permisos de lectura para todos los usuarios.
Al ejecutar:
cat /etc/passwd
Ejemplo de salida:
oscar:x:1001:1001:Oscar:/home/oscar:/bin/bash
Los campos estan separados por :.
usuario:password:UID:GID:comentario:home:shell
Significado:
usuario (oscar):nombre del usuariopassword (x):contraseña cifrada, actual mente se almacena en /etc/shadowUID (1001):UID (ID del usuario)GID (1001):GID (ID del grupo)comentario (Oscar):descripciónhome (/home/oscar):carpeta personalshell (/bin/bash):shell predeterminado
El siguiente comando puede buscar los usuarios que son humanos:
awk -F: '$3 >= 1000 {print $1}' /etc/passwd
Archivo /etc/shadow
Es un archivo crítico de Linux que almacena información relacionada con las contraseñas de los usuarios del sistema.
Normalmente solo puede ser leído por el usuario root porque contiene información sensible.
Puedes verificar sus permisos con ls -l:
ls -l /etc/shadow
Respuesta:
-rw-r----- 1 root shadow 1234 May 30 10:00 /etc/shadow
Esto significa que:
rootpuede leer y escribir.- Los miembros del grupo
shadowpueden leer. - Los demás usuarios no tienen acceso.
Ahora al ejecutar:
sudo cat /etc/shadow
Respondera una línea típica podría verse así:
oscar:$y$j9T$abc123xyz...:19800:0:99999:7:::
Los campos están separados por :.
usuario:password:lastchange:min:max:warn:inactive:expire:reserved
Donde:
usuario: Nombre de usuariopassword: Hash de la contraseñalastchange: Días desde 01/01/1970 del último cambiomin: Días mínimos antes de cambiar contraseñamax: Días máximos de validezwarn: Días de advertencia antes de expirarinactive: Días de inactividad permitidosexpire: Fecha de expiración de la cuentareserved: Reservado
Archivo /etc/group
Contiene información de los grupos del sistema.
cat /etc/group
Cómo crear usuarios en Linux
Crear usuarios es una de las tareas más comunes para un administrador Linux. Aunque existen varias herramientas, las más utilizadas son useradd y adduser.
Tenemos el posts Comandos useradd y adduser de Linux donde explicamos el tema detalle
Crear usuario con useradd
Crea una nueva cuenta de usuario llamada oscar en el sistema Linux.
sudo useradd oscar
Este comando crea el usuario pero no crea automáticamente su carpeta personal en algunas distribuciones.
Crear usuario con carpeta personal
sudo useradd -m oscar
El parámetro -m crea el directorio:
/home/oscar
Crear usuario con shell específica
sudo useradd -m -s /bin/bash oscar
Asignar contraseña al usuario
sudo passwd oscar
El sistema solicitará la nueva contraseña.
Crear usuario usando adduser
En distribuciones como Ubuntu es más sencillo utilizar:
sudo adduser oscar
Este comando:
- Crea el usuario.
- Crea la carpeta personal.
- Configura permisos.
- Solicita contraseña.
Cómo listar usuarios en Linux
Listar todos los usuarios
El comandos más clásicos de Linux para inspeccionar información de usuarios del sistema
cat /etc/passwd
Mostrar el contenido completo del archivo /etc/passwd en pantalla.
Respuesta:
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
Estructura: usuario:password:UID:GID:comentario:HOME:SHELL
- Usuario: Nombre del usuario.
- Contraseña: Antiguamente aquí estaba el hash. Actualmente: x, la contraseña está almacenada en
/etc/shadow - UID (User ID): Identificador único del usuario.
- GID (Group ID): Grupo principal del usuario.
- Comentario (GECOS): Información descriptiva.
- Directorio HOME: Carpeta personal.
- Shell: Programa que inicia al entrar.
Listar solo nombres de usuarios
Podemos añadir filtros para buscar
cut -d: -f1 /etc/passwd
Respuesta
root
daemon
bin
Ver usuario actual
Podemos usar el Comando whoami en Linux para ver el usuario logeado
whoami
Ver usuarios conectados
Podemos usar el comando who para ver usuario conectado
who
Cómo editar usuarios en Linux
Cambiar nombre de usuario
Sirve para cambiar el nombre (login) de un usuario existente en Linux.
sudo usermod -l nuevo_usuario oscar
En este ejemplo: Renombrar el usuario oscar → nuevo_usuario
Importante: esto cambia el nombre del usuario, no necesariamente su carpeta HOME ni otros recursos asociados.
Cambiar carpeta personal
Sirve para cambiar el directorio HOME de un usuario existente y mover automáticamente el contenido del HOME anterior al nuevo.
sudo usermod -d /home/nueva_carpeta -m oscar
En este caso: Cambiar el HOME del usuario oscar → /home/nueva_carpeta
Cambiar shell
Sirve para cambiar el shell de inicio (login shell) del usuario oscar.
sudo usermod -s /bin/bash oscar
Bloquear usuario
Sirve para bloquear (lock) la contraseña de un usuario, impidiendo que pueda autenticarse usando contraseña.
sudo usermod -L oscar
En este caso: Bloquear el acceso por contraseña del usuario oscar.
Importante: No elimina el usuario, no borra archivos y no deshabilita automáticamente procesos ya activos.
Desbloquear usuario
Sirve para desbloquear (unlock) la contraseña de un usuario que previamente fue bloqueado.
sudo usermod -U oscar
Cómo eliminar usuarios en Linux
Eliminar usuario
Sirve para eliminar una cuenta de usuario del sistema Linux.
sudo userdel oscar
En este caso: Eliminar el usuario oscar.
Importante: Eliminar el usuario NO significa necesariamente eliminar sus archivos personales.
Eso depende de las opciones usadas.
Eliminar usuario y carpeta personal
sudo userdel -r oscar
El parámetro -r elimina:
- La cuenta del usuario.
- Su carpeta personal.
- Archivos relacionados.
¿Qué son los grupos en Linux?
Puede revisar el posts grupos en linux
Cómo funcionan los permisos en Linux
Tenemos el posts Comando chmod en Linux donde explicamos a detalle los permisos en sistema linux
Ver permisos
ls -l
Ejemplo: -rwxr-xr-- 1 oscar desarrolladores archivo.sh
Interpretación:
- rwx → permisos del propietario
- r-x → permisos del grupo
- r-- → permisos de otros
Cómo cambiar permisos en Linux
Usar chmod
Permite modificar permisos.
Dar permisos de ejecución
chmod +x script.sh
Quitar permisos de escritura
chmod -w archivo.txt
Permisos numéricos
chmod 755 script.sh
Significado:
- 7 = lectura + escritura + ejecución
- 5 = lectura + ejecución
- 5 = lectura + ejecución
Cómo cambiar propietario y grupo
Usar chown
Permite cambiar el propietario de archivos y carpetas.
sudo chown oscar archivo.txt
Cambiar propietario y grupo
sudo chown oscar:desarrolladores archivo.txt
Cambiar permisos recursivamente
sudo chown -R oscar:desarrolladores /proyectos
Cómo dar permisos administrativos con sudo
El grupo sudo o wheel permite ejecutar comandos administrativos.
Agregar usuario a sudo
Ubuntu/Debian:
sudo usermod -aG sudo oscar
CentOS/RHEL:
sudo usermod -aG wheel oscar
Ejemplo completo paso a paso
Crear usuario
sudo adduser desarrollador1
Crear grupo
sudo groupadd backend
Agregar usuario al grupo
sudo usermod -aG backend desarrollador1
Crear carpeta compartida
sudo mkdir /proyectos
Asignar grupo propietario
sudo chown :backend /proyectos
Asignar permisos
sudo chmod 775 /proyectos
Ahora todos los usuarios del grupo backend podrán trabajar en la carpeta.
Buenas prácticas
- No trabajar siempre como root.
- Asignar permisos mínimos necesarios.
- Utilizar grupos para administrar accesos.
- Eliminar usuarios que ya no se utilizan.
- Usar contraseñas seguras.
- Auditar permisos regularmente.
Conclusión
La administración de usuarios y permisos en Linux es una de las bases más importantes de la seguridad y administración del sistema. Comprender cómo crear usuarios, administrar grupos y asignar permisos permite controlar correctamente el acceso a archivos, aplicaciones y servicios.
Dominar comandos como:
- useradd
- adduser
- usermod
- userdel
- chmod
- chown
- groups
es esencial para cualquier administrador Linux, desarrollador o ingeniero DevOps.