15%

Ahorra 15%<\/span> en todos los servicios de hosting

Pon a prueba tus habilidades y obtén Descuento<\/span> en cualquier plan de hosting

Usa el código:

Skills
Comenzar
02.01.2026
3 +2

Cómo Cambiar Usuario en Linux: La Guía Completa

Linux es un sistema operativo multiusuario por diseño, y la gestión de identidades de usuario es una de las habilidades más fundamentales que cualquier administrador de sistemas necesita dominar. Ya sea que estés administrando un entorno de VPS Hosting, configurando un servidor web o solucionando problemas de permisos de archivo después de una implementación, entender cómo cambiar usuarios en Linux es esencial.

La frase “cambiar usuario” en Linux en realidad cubre varias operaciones distintas, cada una con sus propias herramientas, riesgos y mejores prácticas:

  • Cambiar a otra cuenta en el shell (por ejemplo, de john a root) para una sesión interactiva
  • Ejecutar un único comando como un usuario diferente sin cambiar completamente de sesión
  • Cambiar qué usuario ejecuta un servicio o proceso — crítico para el endurecimiento de seguridad
  • Cambiar la propiedad de archivos y directorios — esencial después de migraciones, restauraciones o implementaciones
  • Modificar atributos de cuenta de usuario — renombrar usuarios, cambiar UIDs o ajustar membresías de grupo

Esta guía cubre todos estos escenarios en profundidad, explicando cuándo usar cada enfoque, cómo hacerlo de forma segura y qué errores evitar — para que puedas administrar usuarios de Linux con confianza sin romper permisos, servicios o acceso.

Tabla de contenidos

  1. Cambiar a otro usuario (Shell interactivo)
  2. Ejecutar un único comando como otro usuario
  3. Cambiar el usuario que ejecuta un servicio (systemd)
  4. Cambiar la propiedad de archivos con chown
  5. Confirmar tu identidad actual
  6. Modificar atributos de cuenta de usuario
  7. Hoja de referencia rápida

Cambiar a otro usuario (Shell interactivo)

Cuando necesitas una sesión de terminal interactiva completa como otro usuario — para administración del sistema, prueba del comportamiento de la aplicación bajo una cuenta diferente o acceso a una cuenta de servicio — Linux proporciona dos herramientas principales: su y sudo.

Usando su (Switch User)

El comando su sustituye tu identidad de usuario actual con otra:

su - username

La bandera - (también escrita como -l o --login) es importante: carga el entorno de inicio completo del usuario objetivo, incluyendo su directorio de inicio, PATH, perfil de shell y variables de entorno. Sin la bandera -, heredas gran parte de tu entorno actual, lo que puede causar comportamiento sutil y confuso — especialmente al ejecutar scripts o servicios.

Para cambiar directamente a root:

su -

> Nota de seguridad: En muchas distribuciones Linux modernas, la contraseña de la cuenta root está deshabilitada por defecto (particularmente en sistemas basados en Ubuntu). En estos casos, su a root fallará, y sudo es el enfoque correcto.

Usando sudo -i (Preferido para shells Root/Admin)

sudo -i

Esto te da un shell de inicio de root equivalente a su -, pero se autentica usando tus propios privilegios de sudo en lugar de requerir la contraseña de root. Este es el enfoque recomendado en la mayoría de distribuciones modernas porque:

  • Evita la necesidad de compartir o conocer la contraseña de root
  • Todas las acciones se registran a través del registro de auditoría de sudo
  • Respeta tu configuración de sudoers y restricciones

Cambiar a otro usuario con un shell de inicio a través de sudo

sudo -iu username

Esto combina -i (shell de inicio) y -u (usuario objetivo), dándote un entorno de inicio limpio como el usuario especificado — sin necesidad de la contraseña de ese usuario.

Ejecutar un único comando como otro usuario

A menudo no necesitas una sesión interactiva completa — solo necesitas ejecutar un comando con una identidad diferente. Este es el patrón más común y seguro para la escalada de privilegios.

Usando sudo -u

sudo -u username whoami
sudo -u postgres psql

El segundo ejemplo es extremadamente común en administración de bases de datos — cambiar al usuario del sistema postgres para acceder a PostgreSQL sin autenticación de contraseña.

Ejecutar un comando con un entorno de inicio limpio

sudo -iu username command_here

Esto asegura que el comando se ejecute con el entorno completo del usuario objetivo, no con las variables de tu sesión actual.

Ejecutar un comando como root

sudo systemctl restart nginx

Este es el patrón estándar para tareas administrativas: ejecutar un único comando privilegiado sin abrir un shell de root.

Cambiar el usuario que ejecuta un servicio (systemd)

En prácticamente todas las distribuciones Linux modernas, systemd administra servicios. Por seguridad, cada servicio debe ejecutarse bajo una cuenta de usuario dedicada y sin privilegios en lugar de root. Ejecutar servicios como root es un riesgo de seguridad significativo — si el servicio se ve comprometido, el atacante obtiene acceso root a todo el sistema.

Esto es especialmente importante en Servidores Dedicados y entornos VPS de producción donde múltiples servicios pueden estar ejecutándose simultáneamente.

Verificar la configuración actual del servicio

systemctl cat myservice.service

Busca las directivas User= y Group= en la sección [Service]:

[Service]
User=www-data
Group=www-data

Anular el usuario del servicio (Método seguro)

En lugar de editar el archivo de unidad original (que puede ser sobrescrito en actualizaciones de paquetes), usa systemctl edit para crear una anulación drop-in:

sudo systemctl edit myservice.service

Esto abre un editor donde añades:

[Service]
User=myuser
Group=mygroup

Guarda el archivo, luego aplica los cambios:

sudo systemctl daemon-reload
sudo systemctl restart myservice.service

Verificar que el servicio se está ejecutando como el usuario correcto

systemctl status myservice.service
ps -eo user,pid,cmd | grep myservice

Inspeccionar el usuario de cualquier proceso en ejecución

ps -eo user,pid,cmd | grep nginx
ps -p <PID> -o user,group,cmd

> Importante: Linux no te permite cambiar el usuario de un proceso ya en ejecución en su lugar. Debes reiniciar el proceso (o configurar el administrador de servicios para iniciarlo bajo el usuario correcto) para que el cambio surta efecto.

Cambiar la propiedad de archivos con chown

La propiedad de archivos es una parte central del modelo de permisos de Linux. Después de migraciones, implementaciones, copias de seguridad o restauraciones, la propiedad puede terminar asignada al usuario incorrecto — causando errores de permiso denegado, aplicaciones web rotas o datos inaccesibles. El comando chown es tu herramienta principal para corregir esto.

Esta es una tarea común al configurar entornos de Alojamiento web compartido o implementar aplicaciones web en un VPS.

Cambiar el propietario de un archivo

sudo chown username file.txt

Cambiar tanto el propietario como el grupo

sudo chown username:groupname file.txt

Cambio de propiedad recursivo (Usar con cuidado)

sudo chown -R username:groupname /var/www/site

La bandera -R aplica el cambio recursivamente a todos los archivos y subdirectorios. Usa esto cuidadosamente — aplicarlo a la ruta incorrecta (por ejemplo, / o /etc) puede romper todo tu sistema.

Preservar enlaces simbólicos

sudo chown -h username:groupname symlink

Sin -h, chown sigue enlaces simbólicos y cambia la propiedad del archivo objetivo, no del enlace simbólico en sí. Usa -h cuando específicamente quieras cambiar la propiedad del enlace simbólico.

Previsualizar la propiedad antes de hacer cambios

Para árboles de directorios grandes, siempre previsualiza antes de aplicar un chown recursivo:

find /path -maxdepth 2 -printf '%u:%g %pn' | head

Esto muestra el propietario y grupo actual para los dos primeros niveles del árbol de directorios, permitiéndote confirmar el alcance del cambio antes de comprometerte.

Confirmar tu identidad actual

Antes de hacer cambios, siempre verifica quién eres y en qué contexto estás operando. Esto previene cambios accidentales realizados bajo la cuenta incorrecta.

Verificar tu usuario actual

whoami

Obtener información de identidad completa (usuario, grupos, UIDs)

id

Salida de ejemplo:

uid=1000(alice) gid=1000(alice) groups=1000(alice),27(sudo),1001(docker)

Ver quién está conectado al sistema

who
w

Verificar el usuario original al usar sudo

Cuando escalas con sudo, dos variables de entorno son relevantes:

echo $USER        # The current effective user (root)
echo $SUDO_USER   # The original user who invoked sudo (e.g., alice)

Esta distinción importa en scripts — $SUDO_USER te dice quién realmente ejecutó el comando.

Modificar atributos de cuenta de usuario

A veces “cambiar usuario” significa modificar la cuenta en sí: renombrarla, cambiar su UID o ajustar membresías de grupo. Estos son cambios permanentes en todo el sistema que pueden afectar inicios de sesión, permisos de archivo y acceso a servicios.

> Mejor práctica: Antes de hacer modificaciones de cuenta, asegúrate de que el usuario esté desconectado y no haya procesos ejecutándose bajo esa cuenta.

Renombrar un usuario (Cambiar nombre de usuario)

sudo usermod -l newname oldname

Esto cambia el nombre de inicio de sesión pero no renombra automáticamente el directorio de inicio. Para también mover y renombrar el directorio de inicio:

sudo usermod -d /home/newname -m newname

Si el usuario tiene un grupo primario con el mismo nombre que su nombre de usuario anterior (que es el predeterminado en la mayoría de distribuciones), actualiza también el nombre del grupo:

sudo groupmod -n newname oldname

Cambiar el UID de un usuario

sudo usermod -u 2001 username

> Crítico: Después de cambiar un UID, todos los archivos previamente propiedad del UID anterior aparecerán como propiedad de un ID numérico desconocido. Debes corregir esto inmediatamente:

sudo find / -user oldUID -exec chown -h username {} ;

Reemplaza oldUID con el UID numérico anterior. Este comando busca en todo el sistema de archivos archivos con el UID anterior y los reasigna al nuevo nombre de usuario.

Añadir un usuario a un grupo

El caso de uso más común es otorgar acceso sudo a un usuario:

Debian/Ubuntu:

sudo usermod -aG sudo username

RHEL / AlmaLinux / Rocky Linux:

sudo usermod -aG wheel username

La bandera -a es crítica — añade el usuario al grupo sin eliminarlo de grupos existentes. Omitir -a reemplazará todas las membresías de grupo solo con el grupo especificado.

Verificar la membresía de grupo

id username

Hoja de referencia rápida

Aquí hay una referencia consolidada para todas las operaciones de cambio de usuario y administración cubiertas en esta guía:

TareaComando
Cambiar a otro usuario (shell de inicio)su - username
Cambiar a otro usuario a través de sudosudo -iu username
Abrir un shell de rootsudo -i
Ejecutar un comando como otro usuariosudo -u username command
Ejecutar un comando como postgressudo -u postgres psql
Verificar usuario actualwhoami
Verificar identidad completa y gruposid
Verificar invocador original de sudoecho $SUDO_USER
Cambiar propietario de archivosudo chown username file
Cambiar propietario y grupo de archivosudo chown username:group file
Cambio de propiedad recursivosudo chown -R username:group /path
Previsualizar propiedad de directoriofind /path -maxdepth 2 -printf '%u:%g %pn'
Cambiar usuario del servicio (systemd)sudo systemctl edit myservice.service
Recargar systemd después de cambiossudo systemctl daemon-reload
Verificar usuario del proceso`ps -eo user,pid,cmdgrep service`
Renombrar un usuariosudo usermod -l newname oldname
Mover directorio de iniciosudo usermod -d /home/newname -m newname
Cambiar UIDsudo usermod -u 2001 username
Corregir propiedad después de cambio de UIDsudo find / -user oldUID -exec chown -h username {} ;
Añadir usuario al grupo sudosudo usermod -aG sudo username
Verificar membresía de grupoid username
15%

Ahorra 15%<\/span> en todos los servicios de hosting

Pon a prueba tus habilidades y obtén Descuento<\/span> en cualquier plan de hosting

Usa el código:

Skills
Comenzar