Run0 vs Sudo: ¿cuál es la diferencia?

Run0 vs Sudo: ¿cuál es la diferencia?
Una fotografía de un monitor que muestra un indicador de terminal con el comando

Run0 es un nuevo programa de escalada de privilegios para sistemas Linux basados ​​en Systemd. De manera similar a sudo, permite ejecutar comandos como usuario root y acceder a los componentes internos de la máquina. En este artículo, comparamos Run0 con Sudo para ayudarlo a determinar la herramienta de escalada de privilegios adecuada para usted.

Run0 vs Sudo: una comparación lado a lado

Categoría Ejecutar0 Sudo
Configurabilidad No incluye un archivo de configuración. Utiliza indicadores de línea de comandos para cambiar su comportamiento. Viene con dos archivos de configuración y muchos indicadores de línea de comandos.
Facilidad de uso Sencillo y fácil de usar para la mayoría de las tareas. Es posible que se requiera alguna configuración antes de que pueda funcionar correctamente.
Seguridad No depende de SUID y tiene una huella de código más pequeña Se basa en SUID y tiene una superficie de ataque mayor debido al tamaño del código
Extensibilidad No tiene soporte para complementos de terceros Tiene una API para desarrollar complementos de terceros.
Soporte de red Diseñado para ejecutarse en una sola máquina Puede trabajar con redes de computadoras utilizando políticas de acceso centralizadas
Mejor para Usuarios ocasionales que buscan una alternativa más sencilla a Sudo Usuarios avanzados que buscan una opción confiable que puedan personalizar

¿Qué es Run0 y por qué utilizarlo?

Lanzado en la versión 256 de Systemd, Run0 es una versión única de la escalada de privilegios para Linux. Utiliza Systemd-run para crear un entorno seguro y aislado para ejecutar programas con privilegios de root.

El principal atractivo de Run0 es que no depende de setuid (SUID) para ejecutar comandos root. Esto hace que el programa sea inmune a los ataques de escalada de privilegios que son comunes en los programas SUID de gran tamaño.

Una terminal que resalta las propiedades setuid del binario sudo en comparación con run0.

Otro punto a favor de Run0 es que delega su agente de autenticación en Polkit. Este programa administra la configuración de políticas de las aplicaciones en su sistema. No solo centraliza la autenticación en su máquina, sino que también le brinda un control más preciso sobre cómo los programas y los usuarios obtienen acceso root.

Por último, Run0 crea un nuevo pseudo-TTY (PTY) cada vez que se invoca un comando privilegiado. Esto significa que los programas no heredan el entorno de shell actual, lo que facilita el aislamiento de un proceso que se comporta mal en el sistema.

Una terminal que resalta el proceso raíz PTY que aparece en el systemctl del sistema.

¿Qué es Sudo y por qué usarlo?

Sudo es uno de los primeros programas de escalada de privilegios para Linux y otros sistemas operativos similares a UNIX. Desarrollado por primera vez en la década de 1980, utiliza el sistema de usuarios y grupos integrado de UNIX para administrar los privilegios de root para los comandos del sistema.

Un punto clave de sudo es que es una solución integral para la escalada de privilegios y permisos. Con ella, solo es necesario configurar el archivo sudoers para administrar quién puede ser un superusuario y qué programas pueden ejecutar como root. Esto lo hace atractivo para los administradores de sistemas que desean una forma simplificada de administrar el acceso root.

Una terminal que muestra el contenido del archivo sudoers.

Otra razón para usar sudo es que puede monitorear y revisar el historial de comandos del sistema que se ejecutaron en su máquina a través de diferentes superusuarios. Esto es útil para solucionar problemas, ya que puede indicar el momento exacto en que el sistema tuvo el problema.

Una terminal que muestra la salida del comando sudoreplay enumerando todos los comandos sudo ejecutados en el sistema.

Por último, sudo es fácil de escalar entre varios hosts gracias a su compatibilidad integrada con LDAP y Active Directory. Por ello, sudo también puede ser una gran herramienta para los administradores que gestionan varias máquinas para equipos y empresas.

Run0 vs Sudo: una comparación completa

Si bien Run0 y Sudo son excelentes herramientas para elevar los privilegios de los usuarios, ambos programas adoptaron enfoques diferentes para lograrlo. A continuación, analizamos algunas de esas diferencias para ayudarlo a determinar cuál se adapta mejor a sus necesidades.

Configurabilidad

A diferencia de otros programas de escalada de privilegios, Run0 no utiliza archivos de configuración para cambiar su comportamiento predeterminado. En cambio, lo personalizas utilizando un puñado de indicadores integrados mientras lo ejecutas en la terminal. Esto te permite concentrarte en tu flujo de trabajo en lugar de quedarte atascado modificando archivos de configuración.

Una terminal que muestra la pantalla de ayuda para run0.

Por otro lado, sudo ofrece muchas opciones en sus dos archivos de configuración principales: “/etc/sudo.conf” y “/etc/sudoers”. Ambos funcionan en conjunto para controlar cómo funciona sudo en su sistema. Por ejemplo, puede configurar sudo para que se ejecute sin contraseña. Si bien esto puede resultar confuso para un usuario nuevo, este nivel de flexibilidad y personalización le permite crear su propio flujo de trabajo de sudo personalizado.

Una terminal que muestra el contenido del archivo sudo.conf.

Ganador: Sudo

Facilidad de uso

La mayoría de las distribuciones de Linux actuales incluyen Run0 y Sudo con valores predeterminados razonables, lo que hace que sean fáciles de usar sin ninguna configuración adicional. Dicho esto, todavía hay algunas peculiaridades de usabilidad entre los dos programas que pueden ser un factor decisivo para algunos usuarios.

La principal peculiaridad de Run0 se debe a su dependencia de Polkit para la autenticación. En algunas terminales, Run0 puede mostrar su solicitud de contraseña en una pantalla diferente. Esto puede ser un problema si está utilizando un multiplexor de terminal, como Tmux, para administrar varias sesiones de shell.

Una captura de pantalla que muestra el indicador de Polkit para una solicitud run0 en una terminal multiplexada.

Mientras tanto, la mayor peculiaridad de Sudo es que no permite editar el archivo sudoers a través de un editor de texto normal. En su lugar, te pide que uses un programa llamado Visudo, que agrega comprobaciones de integridad al archivo sudoers. Aunque esto hace que la edición del archivo sudoers sea más segura, puede resultar innecesariamente compleja para un usuario normal que solo quiera administrar los permisos de root.

Una terminal que muestra la pantalla de ayuda de la utilidad visudo.

Ganador: Run0

Tamaño del código fuente

El tamaño total del código fuente de un programa es un buen indicador de su complejidad actual. Esto es importante para los programas de escalada de privilegios, ya que la complejidad del código podría dar lugar a posibles vulnerabilidades de seguridad.

Una diferencia de Run0 en comparación con otras aplicaciones de escalada de privilegios es que está construida sobre Systemd-run. Esto no solo permite que Run0 aproveche las características de Systemd-run, sino que también significa que el programa en sí no contiene mucho código. Como resultado, Run0 es más fácil de auditar para detectar posibles problemas de seguridad en el futuro.

Una terminal que resalta la oración en la página del manual Run0 que describe que se construyó sobre Systemd-run.

Sudo es un proyecto de software enorme que abarca varios archivos y lenguajes de programación. Si bien esta complejidad le permitió a sudo ser una poderosa aplicación de escalada de privilegios, también significa que tiene una superficie de ataque enorme para posibles ataques.

Una terminal que muestra las líneas generales de código del repositorio sudo de Github.

Ganador: Run0

Edad del código fuente

La antigüedad de un proyecto de software en particular también es un factor a tener en cuenta a la hora de analizar la fiabilidad de un programa de escalada de privilegios. Los proyectos más nuevos suelen estar plagados de errores y problemas, mientras que los más antiguos tienden a ser más estables.

Run0 es un programa relativamente nuevo que se agregó a Systemd en junio de 2024. Actualmente, solo puedes obtener la aplicación en distribuciones de vanguardia como Arch Linux y Fedora Rawhide. Por eso, Run0 es más adecuado para trabajos ocasionales y que no son de misión crítica.

Sudo es uno de los proyectos de software más antiguos que aún se desarrollan en la actualidad. Con más de 30 años de historia de desarrollo, sudo es un programa muy maduro capaz de manejar diferentes cargas de trabajo. Esto lo hace muy recomendable para quienes buscan un programa de escalada de privilegios estable en el que puedan confiar.

Ganador: Sudo

Run0 vs Sudo: ¿Qué aplicación gana?

Al final del día, elegir el programa de escalada de privilegios adecuado depende de lo que esté intentando lograr con su sistema:

  • Si buscas una aplicación de escalada de privilegios sencilla y fácil de usar , Run0 es una buena opción. La combinación de su diseño sin configuración y su enfoque para aislar los procesos raíz la convierte en una opción ideal para usuarios ocasionales que buscan una alternativa a Sudo sin complicaciones.
  • Si desea una aplicación de escalada de privilegios estable y personalizable , no se equivocará con Sudo. Con su historial de desarrollo de décadas y su gran cantidad de funciones, es muy fácil adaptar Sudo a su flujo de trabajo personalizado.

Elegir la aplicación de escalada de privilegios adecuada para su máquina es solo el primer paso para comprender cómo funciona un superusuario en Linux. Analice en profundidad los aspectos internos de su máquina y descubra en qué se diferencia Su de Sudo.

Crédito de la imagen: Gabriel Heinzer vía Unsplash . Todas las modificaciones y capturas de pantalla son de Ramces Red.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *