Descripción general
`su` se utiliza para ejecutar comandos con los privilegios de otro usuario en la sesión actual o para cambiar al entorno de shell de ese usuario. Por defecto, si no se especifica un usuario de destino, intentará cambiar al usuario root.
Características principales
- Cambio de ID de usuario: Cambia los privilegios del usuario actual a los de otro usuario.
- Destino por defecto: Si no se especifica un nombre de usuario, por defecto intentará cambiar al usuario root.
- Autenticación por contraseña: Debe introducir la contraseña correcta del usuario de destino para poder cambiar de privilegios.
- Cambio de entorno: Puede utilizar las opciones `-` o `-l` para cambiar completamente al entorno de shell de inicio de sesión del usuario de destino.
Opciones principales
El comando `su` puede controlar la forma de cambiar de usuario y los comandos que se ejecutan a través de varias opciones.
Opciones de cambio de usuario
Opciones de ejecución de comandos
Comando generado:
Combina los comandos.
Descripción:
`su` Ejecutando el comando.
Combina las opciones anteriores para ejecutar virtualmente los comandos junto con la IA.
Ejemplos de uso
Puede aprender a cambiar de usuario y a ejecutar comandos específicos a través de varios usos del comando `su`.
Cambiar a usuario root (no shell de inicio de sesión)
su
Por defecto, cambia al usuario root, pero no carga el entorno de shell de inicio de sesión de root. Las variables de entorno del usuario actual pueden mantenerse parcialmente.
Cambiar a shell de inicio de sesión de usuario root
su -
Cambia al usuario root y carga completamente el entorno de shell de inicio de sesión de root (PATH, directorio de inicio, etc.). Es el método más común y recomendado.
Cambiar a shell de inicio de sesión de un usuario específico
su -l nombre_usuario
Cambia al usuario 'nombre_usuario' especificado y carga el entorno de shell de inicio de sesión de ese usuario.
Ejecutar un comando específico con privilegios de root y regresar
su -c "ls -la /root"
Ejecuta el comando `ls -la /root` con privilegios de root y luego regresa automáticamente al usuario original. El entorno del shell no cambia.
Ejecutar un comando específico con los privilegios de otro usuario y regresar
su nombre_usuario -c "whoami"
Ejecuta el comando `whoami` con los privilegios del usuario 'nombre_usuario' y luego regresa al usuario original.
Consejos y precauciones
El comando `su` afecta directamente la seguridad del sistema, por lo que se deben considerar algunas cosas importantes al usarlo.
Seguridad y recomendaciones
- Riesgo de exposición de la contraseña de root: `su` requiere directamente la contraseña de root, por lo que si esta contraseña se expone, todo el sistema puede estar en riesgo. `sudo` utiliza la contraseña del propio usuario y solo otorga privilegios para comandos específicos, lo que permite un control más detallado. En general, se recomienda más el uso de `sudo`.
- Se recomienda usar el shell de inicio de sesión: Se recomienda usar `su -` (con el guion) para cargar completamente el entorno de shell de inicio de sesión del usuario de destino. Esto asegura que PATH, variables de entorno, etc., estén configurados correctamente para prevenir problemas inesperados y tiene el mismo efecto que trabajar en el entorno del usuario de destino.
- Evitar el uso innecesario de root: Es más seguro para la seguridad regresar al usuario original inmediatamente después de terminar las tareas necesarias con el comando `exit`. Trabajar con privilegios de root durante mucho tiempo puede suponer un riesgo para el sistema.
- Verificar registros: El historial de uso de `su` se registra en los registros del sistema (por ejemplo, `/var/log/auth.log` o `/var/log/secure`). Es recomendable verificar estos registros periódicamente para auditorías de seguridad.