15%

Ahorre 15% en todos los servicios de alojamiento

Pon a prueba tus habilidades y consigue Descuento en cualquier plan de hosting

Usa el código:

Skills
Comenzar
02.01.2026

¿Cómo cambiar de usuario en Linux?

En Linux, la frase “cambiar usuario” puede describir varias acciones diferentes—algunas temporales y basadas en sesiones, otras permanentes y a nivel del sistema. Debido a que Linux es un sistema operativo multiusuario por diseño, proporciona múltiples formas de cambiar identidades y permisos dependiendo de lo que estés tratando de lograr: administrar un servidor, ejecutar una aplicación con derechos limitados, solucionar problemas de acceso a archivos o reestructurar cuentas de usuario.

Cambiar “usuario” en Linux puede significar algunas cosas diferentes dependiendo del contexto:

    • Cambiar a otra cuenta en la shell (por ejemplo, de john a root)
      Esto se utiliza cuando necesitas una sesión de terminal interactiva como otro usuario—frecuentemente para administración del sistema o para probar cómo se comporta algo bajo un entorno de cuenta diferente.
    • Ejecutar un solo comando como otro usuario
      Ideal cuando solo necesitas privilegios elevados o una identidad diferente para una tarea (como reiniciar un servicio o ejecutar un comando de base de datos) sin cambiar completamente tu sesión.
  • Cambiar el usuario de inicio de sesión predeterminado para un servicio/proceso
    Los servicios (servidores web, bases de datos, aplicaciones) generalmente deben ejecutarse bajo usuarios dedicados y no root por razones de seguridad. Cambiar el usuario del servicio afecta cómo se ejecuta el proceso y a qué puede acceder.
  • Cambiar quién posee archivos y directorios
    La propiedad de archivos controla el acceso. Si los permisos son incorrectos—común después de migraciones, restauraciones o implementaciones—tú “cambias usuario” reasignando la propiedad para que la cuenta correcta pueda leer/escribir archivos.
  • Cambiar atributos de identidad del usuario (nombre de usuario, UID, grupos)
    Esto es gestión de cuentas: renombrar un usuario, cambiar su UID o ajustar la membresía en grupos (como otorgar acceso sudo). Estos cambios pueden afectar inicios de sesión, permisos y acceso a servicios.

Esta guía cubre todos estos escenarios, mostrando cuándo usar cada enfoque, cómo hacerlo de manera segura y qué errores evitar—para que puedas cambiar usuarios con confianza sin romper permisos, servicios o accesos.

Cambiar a otro usuario (shell interactiva)

su (cambiar usuario)

su - username
  • – (o -l) carga el entorno completo de inicio de sesión del usuario objetivo: directorio personal, PATH, perfil de shell.

  • Sin -, mantienes gran parte de tu entorno actual (puede ser confuso).

Cambiar a root:

su -

Nota de seguridad: En muchas distribuciones, su requiere la contraseña del usuario objetivo (por ejemplo, la contraseña de root), que a menudo está deshabilitada.

sudo -i (preferido para shells de root/admin)

sudo -i

Te da un shell de inicio de sesión de root (similar a su -), usando tus derechos de sudo en lugar de la contraseña de root.

Cambiar a otro usuario con un shell de inicio de sesión:

sudo -iu username

Ejecutar un solo comando como otro usuario (no interactivo)

sudo -u

sudo -u username whoami
sudo -u postgres psql

Ejecutar con un entorno limpio similar al de inicio de sesión:

sudo -iu username

Ejecutar un comando como root

sudo systemctl restart nginx

Cambiar el “usuario efectivo” de un proceso en ejecución (realidad avanzada)

Linux no te permite “cambiar el usuario” de un proceso que ya se está ejecutando en su lugar en la mayoría de los escenarios prácticos. En su lugar, típicamente:

  • reinicias el proceso bajo el usuario correcto

  • o usas administradores de servicios (systemd) para definir el usuario

Para inspeccionar qué usuario ejecuta un proceso:

ps -eo user,pid,cmd | grep nginx

O:

ps -p <PID> -o user,group,cmd

Cambiar qué usuario ejecuta un servicio (systemd)

La mayoría de las distribuciones de Linux en producción utilizan systemd. Los servicios deben ejecutarse como usuarios dedicados y no privilegiados.

Verificar la configuración del servicio:

systemctl cat myservice.service

Buscar:

  • User=

  • Group=

Ejemplo de anulación (método seguro):

sudo systemctl edit myservice.service

Agregar:

[Service]
User=myuser
Group=mygroup

Aplicar:

sudo systemctl daemon-reload
sudo systemctl restart myservice.service

Verificar:

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

Cambiar la propiedad de archivos (cambiando “usuario” para archivos)

chown (cambio de propietario)

Cambiar propietario:

sudo chown username file.txt

Cambiar propietario y grupo:

sudo chown username:groupname file.txt

Recursivo (ten cuidado):

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

Preservar enlaces simbólicos (evitar cambiar los destinos de enlace):

sudo chown -h username:group symlink

Consejo avanzado: Para árboles grandes, previsualiza primero:

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

Cambiar tu identidad actual de shell vs. cambiar la cuenta misma

Confirmar quién eres

whoami
id

Confirmar quién ha iniciado sesión

who
w

Ver qué usuario ejecutó la shell actual a través de sudo

echo $USER
echo $SUDO_USER

Cambiar nombre de usuario, UID, grupos (modificación de cuenta)

Renombrar un usuario (nombre de usuario)

sudo usermod -l newname oldname

También mover/renombrar el directorio personal:

sudo usermod -d /home/newname -m newname

Actualizar el nombre del grupo también (opcional):

sudo groupmod -n newname oldname

Cambiar UID (avanzado; afecta la propiedad de archivos)

sudo usermod -u 2001 username

Después de cambiar el UID, arreglar la propiedad de archivos:

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

Agregar usuario a un grupo (por ejemplo, sudo)

sudo usermod -aG sudo username # Debian/Ubuntu
sudo usermod -aG wheel username # RHEL/Alma/Rocky

Verificar:

id username

“Hoja de trucos” rápida

Cambiar usuario:

su - user
sudo -iu user

Ejecutar comando como otro usuario:

sudo -u user command

Ejecutar shell de root:

sudo -i

Cambiar propietario de archivo:

sudo chown -R user:group /path

Cambiar detalles de la cuenta:

sudo usermod -l new old
sudo usermod -d /home/new -m new
sudo usermod -aG
sudo user
15%

Ahorre 15% en todos los servicios de alojamiento

Pon a prueba tus habilidades y consigue Descuento en cualquier plan de hosting

Usa el código:

Skills
Comenzar