RDP Monster

Cómo cambiar de usuario en Ubuntu: su, sudo y escalada de privilegios

Cómo cambiar de usuario en Ubuntu: su, sudo y escalada de privilegios

Introducción

Gestionar varias cuentas de usuario y cambiar entre ellas es un aspecto fundamental de la administración Linux. Ubuntu, la distribución Linux más popular del mundo, ofrece varios métodos para cambiar el usuario activo, cada uno con casos de uso y consecuencias de seguridad distintas. Entender estos mecanismos permite flujos multiusuario eficientes, operaciones de administración seguras y una correcta gestión de privilegios.

Esta guía completa cubre todos los métodos para cambiar de usuario en Ubuntu, desde enfoques básicos en la línea de comandos hasta técnicas avanzadas de escalada de privilegios. Tanto si gestionas sistemas compartidos como tareas administrativas o entornos multi-tenant, dominar el cambio de usuario es clave para usar Ubuntu con soltura.

 

Entender la gestión de usuarios en Ubuntu

Tipos de cuentas de usuario

Usuarios regulares: Cuentas estándar con privilegios limitados, acceso restringido a archivos e incapacidad para modificar la configuración del sistema.

Usuario root: Superusuario con acceso sin restricciones a todos los recursos del sistema, capaz de cualquier operación incluyendo las peligrosas.

Usuarios del sistema: Cuentas especiales para servicios del sistema (www-data para servidores web, mysql para bases de datos).

Usuarios sudo: Cuentas regulares con privilegios de superusuario delegados mediante la configuración de sudo.

Escalación de privilegios

Why Escalate?: Most administrative tasks require elevated privileges. Rather than logging in as root (dangerous), Ubuntu uses privilege escalation to grant specific elevated permissions temporarily.

Principios: Ejecutar operaciones con los privilegios mínimos necesarios; minimizar el tiempo con acceso elevado; auditar todas las operaciones privilegiadas.

 

Comando su (Switch User)

Sintaxis básica

su [OPTIONS] [USERNAME]
Switching to Another User
su john
Prompts for the target user’s password, then switches to that account. The environment remains the user’s original environment (not recommended).

Cambiar de usuario con un nuevo entorno

su - john


The hyphen (-) loads the complete environment of the target user, including:

  • Variable HOME apuntando al directorio home del usuario

  • Variable PATH con las rutas de comandos del usuario

  • Archivos de configuración del shell (.bashrc, .profile)

  • Directorio de trabajo cambiado al home del usuario

Best Practice: Always use su - to ensure proper environment configuration.


Cambiar al usuario root

su -


Cambia al usuario root con el entorno completo de root. Solicita la contraseña de root.

Opciones del comando su

-c (Command): Execute single command as another user without full session

su - john -c "ls -la /home/john"

-l (Login): Identical to using hyphen; creates login shell

su --login john

 

-s (Shell): Especificar shell para la sesión

su - john -s /bin/zsh

 

-m (Preserve environment): Keep current environment while switching

su -m john

Comando sudo (Superuser Do)

Sintaxis básica
sudo [OPTIONS] COMMAND


Ejecutar comandos con privilegios elevados

sudo apt-get update # Update package lists (requires root)
sudo systemctl restart ssh # Restart SSH service
sudo reboot # Reboot system


Ejecutar un shell root interactivo

sudo -i

Inicia un shell root interactivo sin iniciar sesión como root.

Ejecutar comandos como otro usuario

sudo -u username command

Ejecuta el comando con los privilegios del usuario especificado (no solo root).


Opciones del comando sudo

-l (List): Display allowed commands

sudo -l

-k (Invalidate): Clear sudo credentials (requires password on next use)

sudo -k

 

-p (Prompt): Custom password prompt

sudo -p "Enter admin password: " apt-get update
-v (Validate): Extend sudo timeout
sudo -v

 

-H (Home): Set HOME to target user’s home

sudo -H -u username command

su – vs su: diferencias clave

Característica su su –
Entorno Mantiene el entorno del shell padre Carga el entorno del usuario destino
Variable HOME Permanece en el home del usuario original Cambia al home del usuario destino
Variable PATH Puede incluir las rutas del usuario original Contiene las rutas estándar del usuario destino
Config del shell No carga .bashrc ni .profile Carga ~/.bashrc y ~/.profile
Directorio de trabajo Permanece en el directorio actual Cambia al home del usuario
Recomendado Raramente; posible confusión Siempre para cambiar de usuario
Nivel de riesgo Mayor (entornos mixtos) Menor (entorno limpio)

 

Diferencia con ejemplo

# Con su (BAD)
$ su john
Password:
$ echo $HOME
/root # Still shows original home!
$ pwd
/path/to/original # Still in original directory
# Con su - (GOOD)
$ su - john
Password:
$ echo $HOME
/home/john # Correct home directory
$ pwd
/home/john # Correct directory

Cambiar al usuario root

Con su

su - Password: (enter root password)
root@hostname:~#

Con sudo

sudo -i
[sudo] password for john: (enter john's password)
root@hostname:~#

Diferencias entre su – y sudo -i

Aspectoo su – sudo -i
Contraseña requerida Contraseña root Contraseña del usuario actual
Registro No registrado Registrado por sudo
Registro de auditoría Mínimo Registro de auditoría completo
Seguridad Menor (requiere compartir contraseña root) Mayor (responsabilidad individual)
Configuración empresarial típica Desaconsejado Recommended

Security Note: Modern Ubuntu systems typically don’t require root password; instead, sudoers are granted authority through sudo configuration.

 

Ejecutar comandos como otro usuario

Ejecutar un solo comando

sudo -u apache /usr/bin/apache2ctl restart
su - testuser -c "python /home/testuser/script.py"

Ejecutar múltiples comandos

sudo bash -c "echo 'Line 1' > /tmp/file; cat /tmp/file"

Ejecutar comandos preservando el directorio actual

sudo -u john pwd # Prints john's home (working directory changed)
sudo -u john -C pwd # Prints current directory (with -C flag)

Cambiar la contraseña de usuario

Cambiar la propia contraseña

passwd

Solicita la contraseña actual y luego la nueva contraseña (dos veces para confirmar).

Cambiar la contraseña de otro usuario (requiere root)

sudo passwd john

No requiere contraseña actual; solicita la nueva contraseña (autoridad root).

Establecer política de expiración

sudo chage -l john # View password aging info
sudo chage -M 90 john # Force password change every 90 days
sudo chage -d 0 john # Force password change on next login

Permisos y grupos de usuario

Ver grupos de usuarios

groups john # Show groups current user belongs to
groups # Show own groups
id john # Detailed UID, GID, groups

Agregar usuario al grupo

sudo usermod -aG groupname username

 

Example: Add user to sudo group

sudo usermod -aG sudo john

Eliminar usuario del grupo

sudo deluser username groupname

Crear nuevo usuario

sudo useradd -m -s /bin/bash newuser
sudo passwd newuser

Options:

  • -m: Create home directory

  • -s: Specify shell

  • -G: Asignar a grupos

 

Ejemplos prácticos

Example 1: Administrative Task with Escalación de privilegios

#!/bin/bash
# Install software update as regular user with privilege escalation
sudo apt-get update
sudo apt-get upgrade -y
echo "System update complete"

Ejemplo 2: Ejecutar tareas del servidor web

# Stop web server as specific service user
sudo -u www-data /opt/webapp/stop.sh
# Check web server permissions as www-data
sudo -u www-data ls -la /var/www/html

Ejemplo 3: Mantenimiento de base de datos

# Backup database as specific user
sudo -u mysql mysqldump -u root -p database_name > backup.sql
# Run database optimization
sudo -u mysql mysql -u root -p -e "OPTIMIZE TABLE table_name;"

Ejemplo 4: Gestión de usuarios en lote

#!/bin/bash
# Create multiple users
for user in user1 user2 user3; do
sudo useradd -m -s /bin/bash "$user"
echo "Please set password for $user:"
sudo passwd "$user"
done
# Add all to sudo group
for user in user1 user2 user3; do
sudo usermod -aG sudo "$user"
done

Consideraciones de seguridad

Seguridad de contraseñas

Contraseña root: Manténgala segura; nunca la comparta con personas no confiables

Configuración de sudo: Delegue privilegios específicos en lugar del acceso root completo

Caducidad de contraseñas: Imponga cambios periódicos de contraseña

# Configure password aging
sudo chage -M 90 -m 1 -W 7 username
# Forces change every 90 days, minimum 1 day between changes, 7-day warning

Auditoría y registro

All sudo commands are logged:

sudo grep COMMAND /var/log/auth.log

 

View detailed sudo history:

sudo journalctl _COMM=sudo

Restricting Escalación de privilegios

Configure sudoers file safely:

sudo visudo # Always use visudo for editing sudoers

 

Configuración de sudoers de ejemplo (limiting what john can run):

john ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart nginx
john ALL=(ALL) /usr/bin/apt-get

Tiempo de espera de sesión

# Set sudo timeout
sudo -v # Extend timeout
sudo -k # Invalidate sudo credentials

Por qué la infraestructura remota usa el cambio de usuario

La infraestructura RDP y SSH frecuentemente requiere:

  • Múltiples usuarios administrativos con diferentes niveles de privilegios

  • Cuentas de servicio para procesos automatizados

  • Registros de auditoría para cumplimiento (registro sudo)

  • Escalación de privilegios para tareas administrativas

Gestión de infraestructura mediante RDP.Monster

Managing Ubuntu systems remotely requires robust, secure access:

Acceso SSH para ejecución de comandos

  • Ejecutar comandos de cambio de usuario de forma remota

  • Administración automatizada mediante scripts

  • Control total sobre la gestión de usuarios

Soporte para múltiples cuentas de usuario

  • Crear usuarios administrativos

  • Delegar privilegios apropiadamente

  • Mantener registros de auditoría

Administración remota segura

  • Cifrado SSH para todas las operaciones de cambio de usuario

  • Autenticación basada en claves para acceso programático

  • Registro y monitorización integrales

Implemente infraestructura Ubuntu VPS con capacidades de gestión segura de usuarios mediante RDP.Monster

 

Conclusión

El cambio de usuario y la escalación de privilegios son habilidades fundamentales de administración de Ubuntu. Comprender las diferencias entre su, sudo y la gestión de contraseñas permite una administración eficaz de sistemas multiusuario manteniendo la seguridad mediante una delegación adecuada de privilegios y registros de auditoría.

Las mejores prácticas modernas de Ubuntu favorecen claramente sudo sobre su para la escalación de privilegios, permitiendo responsabilidad y registro completo mientras se minimiza el uso compartido de la contraseña root. La configuración adecuada de sudoers delegando privilegios específicos proporciona un excelente equilibrio de seguridad entre usabilidad y acceso control.

Managing complex Ubuntu infrastructure requiring sophisticated user management and secure administrative access? RDP.Monster provides SSH-based Ubuntu VPS solutions enabling seamless user management and privilege escalation across your infrastructure. Deploy professionally-managed Ubuntu systems today.

Hosting VPS Ubuntu potente

Obtén control total y rendimiento increíble con nuestros VPS Linux. Perfecto para alojar aplicaciones, administrar servidores y optimizar tu workflow.

Dedicated Servers

Servidores dedicados de alto rendimiento

¿Necesitas máximo control y potencia? Nuestros servidores dedicados ofrecen un rendimiento inigualable para tareas exigentes.

Preguntas frecuentes

¿Debo usar su o sudo?

sudo es la opción preferida en sistemas modernos.

Permite trazabilidad, exige contraseñas individuales y proporciona pistas de auditoría completas.

¿Por qué no funciona mi comando su?

Puede que no conozcas la contraseña del usuario destino.

Try sudo -u username instead if you have sudo privileges.

¿Puedo cambiar de usuario sin contraseña?

Sí, con sudo: configura sudoers con NOPASSWD.

Con su siempre necesitas la contraseña del usuario destino.

¿Cuál es la diferencia entre su - y su --login?

Son idénticas: ambas crean login shells con carga completa del entorno.

¿Cuánto dura el privilegio sudo?

Por defecto, 15 minutos. Se puede personalizar en la configuración sudoers.

¿Puedo ejecutar varios comandos como otro usuario?

Sí: sudo bash -c "comando1 && comando2 && comando3"

¿Cómo veo mis permisos sudo?

Ejecuta sudo -l para mostrar los comandos permitidos.

¿Por qué cambia mi PATH al cambiar de usuario?

Usa su - para cargar el entorno completo del usuario destino, incluido el PATH correcto.

Register to our reseller program

Your informations

If you have any question, contact us by clicking here !
Name(Required)
Enter your email address, you must have an account on manager.rdp.monster !

Your company

Enter your website address if you have one
Quickly explain how you're going to sell services to your customers. For example, talk to people on forums.

¡Usamos cookies!

Utilizamos cookies para mejorar tu experiencia de navegación, mostrar anuncios o contenido personalizados y analizar nuestro tráfico. Al hacer clic en «Aceptar», consientes nuestro uso de cookies.