Diferencia entre sudo y su

¿Cuál es la diferencia entre sudo y su en Linux?

Si eres un usuario de Linux, probablemente has visto referencias de estos comandos. pero ¿cuál es la diferencia entre sudo y su?

 

Sudo y su son dos formas diferentes de obtener privilegios de root. Cada uno funciona de una manera diferente, y las diferentes distribuciones de Linux utilizan diferentes configuraciones por defecto.

El usuario root

Tanto su cómo sudo se utilizan para ejecutar comandos con permisos de root. El usuario root es básicamente equivalente al usuario administrador en Windows – el usuario root tiene los máximos permisos y puede hacer cualquier cosa en el sistema. Los usuarios normales en Linux corren con permisos reducidos – por ejemplo, no pueden instalar software o escribir en los directorios del sistema.

 

Para hacer algo que requiera estos permisos, tendrás que adquirirlos con su o sudo.

Diferencia entre Sudo y Su

Sudo ejecuta un único comando con privilegios de root. Cuando ejecute el comando sudo, el sistema le pedirá la contraseña de su cuenta de usuario actual antes de ejecutar el comando como usuario root. Por defecto, Ubuntu recuerda la contraseña durante quince minutos y no volverá a pedirla hasta que pasen los quince minutos.

 

El comando su cambia al superusuario -o usuario root- cuando lo ejecutas sin opciones adicionales. Tendrás que introducir la contraseña de la cuenta de root. Sin embargo, esto no es todo lo que hace el comando su – puedes usarlo para cambiar a cualquier cuenta de usuario. Si ejecuta el comando su bob, se le pedirá que introduzca la contraseña de Bob y el shell cambiará a la cuenta de usuario de Bob.

 

Una vez que hayas terminado de ejecutar comandos en el shell de root, debes escribir exit para salir del shell de root y volver al modo de privilegios limitados.

 

Esta es una notoria diferencia entre sudo y su. Su te cambia a la cuenta de usuario raíz y requiere la contraseña de la cuenta raíz. Sudo ejecuta un único comando con privilegios de root – no cambia al usuario root ni requiere una contraseña de usuario root por separado.

Ubuntu frente a otras distribuciones de Linux

El comando su es la forma tradicional de adquirir permisos de root en Linux. El comando sudo ha existido durante mucho tiempo, pero Ubuntu fue la primera distribución popular de Linux en ser sólo sudo por defecto. Cuando instalas Ubuntu, se crea la cuenta estándar de root, pero no se le asigna ninguna contraseña. No puedes iniciar sesión como root hasta que asignes una contraseña a la cuenta de root.

 

Hay varias ventajas de usar sudo en lugar de su por defecto. Los usuarios de Ubuntu sólo tienen que proporcionar y recordar una única contraseña, mientras que Fedora y otras distribuciones requieren que se creen contraseñas separadas para las cuentas de root y de usuario durante la instalación.

 

Otra ventaja es que disuade a los usuarios de iniciar sesión como usuario root -o de usar su para obtener un shell de root- y mantener el shell de root abierto para hacer su trabajo normal. Ejecutar menos comandos como root aumenta la seguridad y evita cambios accidentales en todo el sistema.

 

Las distribuciones basadas en Ubuntu, incluyendo Linux Mint, también utilizan sudo en lugar de su por defecto.

Algunas variantes

Linux es flexible, por lo que no se necesita mucho trabajo para hacer que su funcione de manera similar a sudo – o viceversa.

 

Para ejecutar un solo comando como usuario root con su, ejecute el siguiente comando:

 

su -c ‘comando’

 

Esto es similar a ejecutar un comando con sudo, pero necesitarás la contraseña de la cuenta de root en lugar de la contraseña de tu cuenta de usuario actual.

 

Para obtener un intérprete de comandos root completo e interactivo con sudo, ejecute sudo -i.

 

Tendrás que proporcionar la contraseña de tu cuenta de usuario actual en lugar de la contraseña de la cuenta de root.

Habilitar el usuario raíz en Ubuntu

Para habilitar la cuenta de usuario raíz en Ubuntu, utiliza el siguiente comando para establecer una contraseña para ella. Tenga en cuenta que Ubuntu recomienda no hacerlo.

 

sudo passwd root

 

Sudo le pedirá la contraseña de su cuenta de usuario actual antes de que pueda establecer una nueva contraseña. Utilice su nueva contraseña para iniciar la sesión como root desde un indicador de inicio de sesión de terminal o con el comando su. Nunca debe ejecutar un entorno gráfico completo como usuario root – esto es una práctica de seguridad muy pobre, y muchos programas se negarán a funcionar.

Añadir usuarios al archivo Sudoers

Sólo las cuentas de tipo administrador en Ubuntu pueden ejecutar comandos con sudo. Puedes cambiar el tipo de cuenta de usuario desde la ventana de configuración de cuentas de usuario.

 

Ubuntu designa automáticamente la cuenta de usuario creada durante la instalación como cuenta de administrador.

 

Si está utilizando otra distribución de Linux, puede conceder a un usuario permiso para utilizar sudo ejecutando el comando visudo con privilegios de root (así que ejecute primero su o utilice su -c).

 

Añade la siguiente línea al archivo, sustituyendo user por el nombre de la cuenta de usuario:

 

user ALL=(ALL:ALL) ALL

 

Pulse Ctrl-X y luego Y para guardar el archivo. También puede añadir un usuario a un grupo especificado en el archivo. Los usuarios de los grupos especificados en el archivo tendrán automáticamente privilegios de sudo.

Versiones gráficas de Su

Linux también soporta versiones gráficas de su, las cuales preguntan por su contraseña en un entorno gráfico. Por ejemplo, puede ejecutar el siguiente comando para obtener una solicitud de contraseña gráfica y ejecutar el explorador de archivos Nautilus con permisos de root. Pulse Alt-F2 para ejecutar el comando desde un diálogo gráfico de ejecución sin lanzar un terminal.

gksu nautilus

El comando gksu también tiene algunos otros trucos bajo la manga – preserva tu configuración actual del escritorio, por lo que los programas gráficos no se verán fuera de lugar cuando los lances como un usuario diferente. Programas como gksu son la forma preferida de lanzar aplicaciones gráficas con privilegios de root.

 

Gksu utiliza un backend basado en su o en sudo, dependiendo de la distribución de Linux que estés utilizando.

 

Ahora que sabes la diferencia entre sudo y su, ahora deberías estar preparado para encontrarte con esas variantes pues te encontrarás con ambos si utilizas diferentes distribuciones de Linux.

 

Recuerda que puedes encontrarnos en Facebook y Linkedln para más contenido relacionado con seguridad en internet y muchos temas más.

 

Sugerencia del día: ¿Cómo puedo convertirme en superusuario en Ubuntu?