Comando Linux su

Linux 命令大全Manual completo de comandos Linux

El comando Linux su (cuyo significado completo en inglés es: switch user) se utiliza para cambiar la identidad de usuario. Excepto para root, se debe ingresar la contraseña de dicho usuario.

Permiso de uso: todos los usuarios.

Sintaxis

su [选项] [用户名]

Por ejemplo:

su              # 切换到root,保持当前环境
su -            # 切换到root,加载root的完整环境
su root         # 明确指定切换到root用户

Cambiar a otro usuario:

su username
su - username
su -l username

Descripción de parámetros:

  • -o-lo--login: Proporciona un entorno similar al de un inicio de sesión directo
  • -c command: Ejecuta el comando especificado y luego sale
  • -s shell: Especifica el shell que se va a utilizar
  • -po--preserve-environment: Conserva las variables de entorno actuales

Ejemplos

Ejecutar temporalmente un comando como root:

su -c "apt update && apt upgrade" root

Cambiar a un usuario de servicio para depurar:

su - www-data
su -s /bin/bash www-data  # 如果默认shell是/bin/false

Uso en scripts:

su - postgres -c "psql -c 'SELECT version();'"

Salir de la sesión su:

exit        # 退出当前su会话
Ctrl+D      # 同样可以退出

Diferencia entre su y su -

su(Cambio sin inicio de sesión):

  • Mantiene las variables de entorno del usuario actual
  • El directorio de trabajo no cambia
  • Las variables de entorno como PATH no cambian

su -(Cambio con inicio de sesión):

  • Carga el entorno completo del usuario de destino
  • Cambia al directorio home del usuario de destino
  • Restablece variables de entorno como PATH, HOME
  • Ejecuta el script de inicio de sesión del usuario de destino

Comparación de ejemplos

# 当前用户:john,工作目录:/home/john
pwd                    # /home/john
echo $HOME            # /home/john

su root
pwd                   # /home/john (目录未变)
echo $HOME           # /home/john (环境未变)
exit

su - root
pwd                  # /root (切换到root家目录)
echo $HOME          # /root (完整环境)
exit

Diferencia entre su vs sudo

Característica su sudo
Contraseña requerida Contraseña del usuario de destino Contraseña del usuario actual
Duración de la sesión Hasta salir manualmente con exit Comando único o caché de corta duración
Complejidad de configuración Simple Requiere configurar sudoers
Seguridad Requiere conocer la contraseña de root Control de permisos más granular
Auditoría Limitada Registros más detallados

El comando su es simple y directo, pero en la administración de sistemas moderna, sudo suele ser la opción más recomendada porque ofrece mejor seguridad y capacidad de auditoría.


Precauciones de seguridad

  • Evitar compartir la contraseña de root
  • Usarsu -Asegurar el cambio completo de entorno
  • Salir de la sesión su a tiempo
  • Priorizar el uso de sudo en entornos de producción
  • Monitorear los registros de uso de su (generalmente en /var/log/auth.log)

Linux 命令大全Manual completo de comandos Linux

Otras extensiones