Cómo utilizar Run0 en Linux
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.
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 --user
indicador 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.
Al igual que con la ejecución de programas como root, también es posible utilizar Run0 con el --user
indicador para iniciar una sesión de shell como un usuario específico:
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 --chdir
bandera para forzar un cambio de directorio al pasar a una nueva sesión de shell:
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 --unit
bandera seguida del nombre que desea utilizar:
También puedes agregar una descripción personalizada a tu shell raíz agregando la --description
bandera:
Comprueba que has aplicado correctamente tus detalles enumerando el nombre personalizado de tu shell raíz usando systemctl
:
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 --background
bandera seguida de un valor entre 40 y 49:
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 --nice
bandera con el valor “-20”:
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 --slice
indicador 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:
También puedes usar la --slice-inherit
bandera 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:
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:
Confirme que ahora se está ejecutando dentro de su contenedor imprimiendo el nombre de host de su sesión de terminal:
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