Regístrate para acceder a más de 15 cursos gratuitos de programación con un simulador

Usuarios y grupos Fundamentos de la línea de comandos

Cuando usamos un sistema operativo como Linux, siempre lo hacemos desde un usuario específico. En esta lección vamos a conocer mejor qué son los usuarios, los grupos y cómo se relacionan con los procesos y archivos.

Acompáñanos paso a paso mientras exploramos estos conceptos y aprendemos a interactuar con ellos desde la consola.


¿Quién soy en el sistema?

Primero, vamos a identificar con qué nombre de usuario estamos usando el sistema. Para eso usamos el comando:

whoami

Esto simplemente nos muestra el nombre del usuario actual que estamos utilizando.

⬇️ Ejemplo de salida:

miguel.m

¿Qué son los Derechos de los Usuarios?

Cada vez que algo se ejecuta en el sistema (un programa, un servicio, una tarea), ese "algo" se está ejecutando bajo el nombre de un usuario en particular. A eso le llamamos un proceso.

# Ver los procesos en ejecución
ps aux

⬇️ Ejemplo de salida (solo una parte):

USER       PID  ...
root      7717  ...
miguel.m  7718  ...

Como puedes ver, hay múltiples procesos y cada uno tiene asociado un usuario en la primera columna.

Esto significa que los permisos y límites de ese usuario se aplican a cada proceso. Por ejemplo, un proceso que se ejecuta como root tiene más privilegios que uno ejecutado como miguel.m.

💡 Cuando decimos que “un proceso se ejecuta bajo un usuario”, es una forma técnica de decir que ese proceso tendrá los mismos permisos que ese usuario.

Usuarios especiales para procesos

El sistema muchas veces crea usuarios especiales con permisos muy limitados, solo para ejecutar tareas específicas. Esto es una medida de seguridad: así, si ese proceso es atacado o tiene un error, el daño se limita al mínimo.

Para ver todos los procesos y quién los ejecuta, usamos:

ps aux

Observa que algunos procesos son del usuario root, mientras que otros tienen nombres diferentes, como alejand+ o incluso nombres de servicios.


¿Y los archivos? ¿Quién es su dueño?

Cuando trabajamos con archivos, cada uno tiene un dueño o propietario. Por lo general, cuando tú creas un archivo, este te pertenece.

Veamos esto en la práctica. Desde tu carpeta personal (también conocida como tu “home”), prueba este comando:

ls -la

⬇️ Ejemplo de salida (simplificada):

-rw-r--r-- 1 miguel.m miguel.m  220 .bash_logout
drwx------ 2 miguel.m miguel.m 4096 .cache

Aquí:

  • La columna 3 dice quién es el propietario del archivo (por lo general, tú).
  • La columna 4 indica el grupo al que pertenece ese archivo.

¿Dónde viven los usuarios en el sistema?

Por convención, la mayoría de los usuarios comunes tienen sus carpetas personales dentro de /home.

ls -la /home/

⬇️ Salida:

drwxr-xr-x  5 miguel.m miguel.m 4096 Aug 29 11:34 miguel.m
drwxr-xr-x  5 alejandro.v alejandro.v 4096 Jan 22  2018 alejandro.v

Cada carpeta corresponde a un usuario, y es su espacio personal para trabajar, almacenar archivos, configuraciones, etc.


Cambiar el nombre de usuario

Cada usuario tiene dos cosas importantes:

Elemento Qué significa
username El nombre visible del usuario
UID El identificador numérico único del usuario

Puedes ver ambos usando:

id

⬇️ Ejemplo:

uid=1002(miguel.m) gid=1002(miguel.m) groups=1002(miguel.m),999(docker)
El UID es quien realmente define los permisos. Si cambias el nombre de usuario pero mantienes el mismo UID, seguirás teniendo acceso a tus archivos antiguos. Pero si cambias el UID, perderás acceso a archivos anteriores, aunque uses el mismo nombre.

El archivo /etc/passwd

Toda la información relacionada con los usuarios se guarda en este archivo:

cat /etc/passwd

⬇️ Una entrada típica se ve así:

miguel.m:x:1002:1002::/home/miguel.m:/bin/bash
Campo Significado
miguel.m Nombre del usuario
x Contraseña (ahora se guarda en otro archivo)
1002 UID
1002 GID (Grupo principal)
(vacío) Información adicional
/home/miguel.m Carpeta personal
/bin/bash Shell por defecto

Algunos usuarios especiales tienen configurado /usr/sbin/nologin como shell, lo que indica que no pueden iniciar sesión. Esto es común en cuentas que solo se usan para ejecutar procesos.

Esquema de registros en el archivo /etc/passwd


¿Qué es un grupo de usuarios?

El grupo es una manera de agrupar usuarios con un propósito común, por ejemplo, compartir archivos sin darles acceso a todo.

Cada usuario:

  • Tiene un grupo principal (se muestra como gid).
  • Puede pertenecer a otros grupos adicionales.

Para saberlo:

id

⬇️ Ejemplo:

uid=1002(miguel.m) gid=1002(miguel.m) groups=1002(miguel.m),999(docker)

Aquí miguel.m es el grupo principal, y también pertenece al grupo docker. Más adelante aprenderemos cómo los grupos influyen en los permisos de archivos.


El usuario root

El usuario root es el administrador principal en sistemas basados en UNIX y Linux. Con privilegios especiales, el usuario root tiene acceso completo al sistema, lo que significa que puede leer, modificar o eliminar cualquier archivo o configurar cualquier aspecto del sistema sin restricciones.
  • Tiene UID = 0
  • Puede acceder, modificar o eliminar cualquier cosa

Este usuario también aparece en /etc/passwd:

root:x:0:0:root:/root:/bin/bash

Esquema de registros en el archivo /etc/passwd para el usuario root

⚠️ Es muy importante tener cuidado al usar root. Un comando mal ejecutado como root puede dañar gravemente el sistema.

Resumen

  • Los procesos siempre se ejecutan bajo un usuario, y este define qué permisos tiene ese proceso.
  • Cada archivo tiene un propietario (usuario) y un grupo asignado.
  • Los grupos ayudan a compartir recursos entre varios usuarios.
  • Podemos identificar nuestro UID y grupos con el comando id.
  • El archivo /etc/passwd almacena toda la información sobre los usuarios.
  • El superusuario root tiene acceso completo al sistema; usarlo con precaución es clave para evitar errores graves.

Para acceder completo a curso necesitas un plan básico

El plan básico te dará acceso completo a todos los cursos, ejercicios y lecciones de Códica, proyectos y acceso de por vida a la teoría de las lecciones completadas. La suscripción se puede cancelar en cualquier momento.

Obtener acceso
130
cursos
1000
ejercicios
2000+
horas de teoría
3200
test

Obtén acceso

Cursos de programación para principiantes y desarrolladores experimentados. Comienza tu aprendizaje de forma gratuita

  • 130 cursos, 2000+ horas de teoría
  • 1000 ejercicios prácticos en el navegador
  • 360 000 estudiantes
Al enviar el formulario, aceptas el «Política de privacidad» y los términos de la «Oferta», y también aceptas los «Términos y condiciones de uso»

Nuestros graduados trabajan en empresas como:

Bookmate
Health Samurai
Dualboot
ABBYY