Cómo utilizar Run0 en Linux

Cómo utilizar Run0 en Linux
Una fotografía que muestra un primer plano de la pantalla de una computadora portátil.

Run0 es un nuevo e innovador programa de escalada de privilegios para distribuciones Linux basadas en Systemd. Proporciona una alternativa liviana y sin configuración a las aplicaciones de escalada tradicionales como sudo y doas. Aquí le mostramos los conceptos básicos para usar Run0 para escalar comandos para su sistema Linux.

Antes de eso, es posible que quieras saber qué es Run0 y en qué se diferencia de sudo.

Cómo ejecutar programas como un usuario diferente

Uno de los usos más comunes de las aplicaciones de escalada de privilegios es ejecutar comandos como usuario root. En este sentido, para seleccionar el usuario root en Run0 es necesario agregar run0 delante del comando que desea ejecutar. Por ejemplo, lo siguiente crea una nueva carpeta en un directorio al que solo puede acceder el usuario root:

Esto hará que aparezca una solicitud de contraseña CLI o una pequeña ventana GUI que le solicitará la contraseña de su usuario actual.

Una captura de pantalla que muestra la solicitud de contraseña para Run0.

De manera similar a sudo y doas, Run0 también puede cambiar a un usuario que no sea root al ejecutar comandos. Para ello, agregue el --userindicador seguido del nombre del usuario con el que desea ejecutar el comando:

Proporcione la contraseña del usuario al que desea cambiar y luego presione Enter.

Cómo cambiar al shell de un usuario diferente

Otra parte clave de una aplicación de escalada de privilegios es su capacidad de enviar al usuario a un shell raíz. Esto le brinda la capacidad de interactuar con su sistema como usuario raíz y ejecutar comandos más complejos desde la CLI.

En Run0, puedes hacer esto ejecutando el programa sin ningún argumento adicional.

Una terminal que muestra el shell raíz desde un indicador Run0.

Al igual que con la ejecución de programas como root, también es posible utilizar Run0 con el --userindicador para iniciar una sesión de shell como un usuario específico:

Una terminal que muestra el indicador Run0 para un usuario no root.

Además, run0 te permite crear sesiones de shell con permisos de grupo temporales para usuarios que no sean root. Esto resulta útil si quieres acceder a carpetas que están bloqueadas por un determinado usuario y grupo sin pasar a root.

Por ejemplo, el siguiente comando otorga al usuario “alice” acceso temporal al grupo “www-data”:

También puedes usar la --chdirbandera para forzar un cambio de directorio al pasar a una nueva sesión de shell:

Una terminal que muestra el cambio automático de directorio al pasar al shell de un usuario diferente.

Cómo personalizar la sesión actual de Run0

El mayor atractivo de Run0 es que no utiliza setuid (SUID) para gestionar las acciones del superusuario. En su lugar, se basa en systemd-run, que crea pseudo-TTY aislados para ejecutar comandos como root.

Una consecuencia de este enfoque es que Systemd trata cada shell Run0 como una unidad discreta que se ejecuta bajo el administrador de servicios. Esto le permite personalizar su proceso de shell raíz, a diferencia de las aplicaciones de escalada de privilegios tradicionales.

Para agregar una etiqueta para su shell raíz, use la --unitbandera seguida del nombre que desea utilizar:

También puedes agregar una descripción personalizada a tu shell raíz agregando la --descriptionbandera:

Comprueba que has aplicado correctamente tus detalles enumerando el nombre personalizado de tu shell raíz usando systemctl:

Una terminal que muestra los detalles de la unidad Systemd personalizada.

De forma predeterminada, Run0 cambia el color del fondo de la consola raíz a rojo. Si bien este es un indicador visual útil, puede resultar molesto si usa un tema claro en su sistema.

Para cambiar esto, use la --backgroundbandera seguida de un valor entre 40 y 49:

Una terminal que muestra los diferentes colores de fondo en Run0.

Por último, también puedes ajustar el “nivel de amabilidad” de tu shell raíz. Este es un valor entre -20 y 19 que determina si tu kernel priorizará tu proceso sobre otros.

Para darle a su shell raíz la máxima prioridad, use la --nicebandera con el valor “-20”:

Una terminal que resalta el shell raíz con un nivel agradable modificado.

Cómo agrupar sesiones de Run0

Además de poder personalizar cada shell raíz de Linux, también puede utilizar Run0 para agruparlos en una porción de Systemd. Se trata de una construcción especial que permite que su máquina ajuste la demanda de recursos para los procesos sin afectar al resto de su sistema.

Para crear un shell raíz en una porción diferente, ejecute el --sliceindicador seguido del nombre de la porción a la que desea mover:

Confirme que su nueva sesión se esté ejecutando bajo su nueva porción enumerando los procesos dentro de ella:

Una terminal que muestra los detalles de la sección personalizada de Systemd.

También puedes usar la --slice-inheritbandera para agrupar tu nueva porción junto con la porción de la que proviene Run0. Esto es útil si ya has agrupado tus shells en sus respectivas porciones y solo quieres agregar una nueva:

Cómo ejecutar comandos en contenedores Systemd usando Run0

Systemd-nspawn es un programa especial que puede crear y administrar contenedores Linux livianos similares a Docker. Al ser parte de la suite Systemd, también puede usar Run0 para ejecutar comandos en sus contenedores nspawn desde su máquina host.

Comience enumerando los contenedores Systemd-nspawn disponibles en su sistema:

Una terminal que muestra una lista de los contenedores Systemd-nspawn disponibles.

Ejecute el siguiente comando para crear una carpeta dentro del directorio raíz de su contenedor:

También es posible acceder al shell raíz de su contenedor usando Run0:

Una terminal que muestra el comando para cambiar el indicador de shell del contenedor.

Confirme que ahora se está ejecutando dentro de su contenedor imprimiendo el nombre de host de su sesión de terminal:

Una terminal que muestra el proceso de cambio del sistema local al contenedor Systemd-nspawn.

Aprender a usar Run0 para ejecutar y administrar comandos root en Linux es solo la punta del iceberg en lo que respecta a las aplicaciones de escalada de privilegios. Sumérjase en este complejo mundo observando las diferencias entre su, sudo y sudo -s.

Crédito de la imagen: Xavier Cee 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 *