Comment utiliser Run0 sous Linux
Run0 est un programme d’escalade de privilèges nouveau et innovant pour les distributions Linux basées sur Systemd. Il fournit une alternative légère et « sans configuration » aux applications d’escalade traditionnelles telles que sudo et doas. Ici, nous vous montrons les bases de l’utilisation de Run0 pour escalader les commandes de votre système Linux.
Avant cela, vous souhaiterez peut-être découvrir ce qu’est Run0 et en quoi il est différent de sudo.
Comment exécuter des programmes sous un autre nom d’utilisateur
L’une des utilisations les plus courantes des applications d’escalade de privilèges consiste à exécuter des commandes en tant qu’utilisateur root. À cet égard, pour accéder à l’utilisateur root dans Run0, il faut ajouter run0 devant la commande que vous souhaitez exécuter. Par exemple, ce qui suit crée un nouveau dossier dans un répertoire accessible uniquement par root :
Cela fera apparaître soit une invite de mot de passe CLI, soit une petite fenêtre GUI demandant le mot de passe de votre utilisateur actuel.
Similairement à sudo et doas, Run0 peut également basculer vers un utilisateur non root lors de l’exécution de commandes. Pour ce faire, ajoutez l’ --user
indicateur suivi du nom de l’utilisateur sous lequel vous souhaitez exécuter la commande :
Fournissez le mot de passe de l’utilisateur vers lequel vous basculez, puis appuyez sur Enter.
Comment passer au shell d’un autre utilisateur
Un autre élément clé d’une application d’escalade de privilèges est sa capacité à placer l’utilisateur dans un shell root. Cela vous donne la possibilité d’interagir avec votre système en tant qu’utilisateur root et d’exécuter des commandes plus complexes à partir de la CLI.
Dans Run0, vous pouvez le faire en exécutant le programme sans aucun argument supplémentaire.
Tout comme pour l’exécution de programmes en tant que root, il est également possible d’utiliser Run0 avec l’ --user
indicateur pour démarrer une session shell en tant qu’utilisateur spécifique :
De plus, run0 vous permet de créer des sessions shell avec des autorisations de groupe temporaires pour les utilisateurs non root. Ceci est utile si vous souhaitez accéder à des dossiers verrouillés derrière un certain utilisateur et groupe sans passer à la racine.
Par exemple, la commande suivante accorde à l’utilisateur « alice » un accès temporaire au groupe « www-data » :
Vous pouvez également utiliser l’ --chdir
indicateur pour forcer un changement de répertoire lors du passage à une nouvelle session shell :
Comment personnaliser la session Run0 actuelle
Le principal argument de vente de Run0 est qu’il n’utilise pas setuid (SUID) pour gérer les actions des super-utilisateurs. Au lieu de cela, il s’appuie sur systemd-run qui crée des pseudo-TTY isolés pour exécuter des commandes en tant que root.
L’une des conséquences de cette approche est que Systemd traite chaque shell Run0 comme une unité distincte exécutée sous le gestionnaire de services. Cela vous permet de personnaliser votre processus de shell root, contrairement aux applications d’escalade de privilèges traditionnelles.
Pour ajouter une étiquette à votre shell racine, utilisez l’ --unit
indicateur suivi du nom que vous souhaitez utiliser :
Vous pouvez également ajouter une description personnalisée à votre shell racine en ajoutant l’ --description
indicateur :
Vérifiez que vous avez correctement appliqué vos informations en répertoriant le nom personnalisé de votre shell root à l’aide desystemctl
:
Par défaut, Run0 change la couleur de l’arrière-plan de votre shell root en rouge. Bien qu’il s’agisse d’un indicateur visuel utile, cela peut être gênant si vous utilisez un thème clair sur votre système.
Pour changer cela, utilisez l’ --background
indicateur suivi d’une valeur comprise entre 40 et 49 :
Enfin, vous pouvez également ajuster le « niveau de gentillesse » de votre shell root. Il s’agit d’une valeur comprise entre -20 et 19 qui détermine si votre noyau donnera la priorité à votre processus par rapport aux autres.
Pour donner à votre shell root la priorité la plus élevée, utilisez l’ --nice
indicateur avec la valeur « -20 » :
Comment regrouper les sessions Run0
En plus de pouvoir personnaliser chaque shell racine Linux, vous pouvez également utiliser Run0 pour les regrouper dans une tranche Systemd. Il s’agit d’une construction spéciale qui permet à votre machine d’ajuster la demande de ressources pour les processus sans affecter le reste de votre système.
Pour créer un shell racine sur une tranche différente, exécutez l’ --slice
indicateur suivi du nom de la tranche vers laquelle vous souhaitez vous déplacer :
Confirmez que votre nouvelle session s’exécute sous votre nouvelle tranche en répertoriant les processus qu’elle contient :
Vous pouvez également utiliser l’ --slice-inherit
indicateur pour regrouper votre nouvelle tranche avec la tranche d’où provient Run0. Ceci est utile si vous avez déjà regroupé vos shells dans leurs tranches respectives et que vous souhaitez simplement ajouter un nouveau shell :
Comment exécuter des commandes sur des conteneurs Systemd à l’aide de Run0
Systemd-nspawn est un programme spécial qui permet de créer et de gérer des conteneurs Linux légers similaires à Docker. Faisant partie de la suite Systemd, vous pouvez également utiliser Run0 pour exécuter des commandes dans vos conteneurs nspawn à partir de votre machine hôte.
Commencez par lister les conteneurs Systemd-nspawn disponibles sur votre système :
Exécutez la commande suivante pour créer un dossier dans le répertoire racine de votre conteneur :
Il est également possible de passer au shell racine de votre conteneur en utilisant Run0 :
Confirmez que vous exécutez maintenant dans votre conteneur en imprimant le nom d’hôte de votre session de terminal :
Apprendre à utiliser Run0 pour exécuter et gérer les commandes root sous Linux n’est que la pointe de l’iceberg en matière d’applications d’escalade de privilèges. Plongez dans ce monde complexe en examinant les différences entre su, sudo et sudo -s.
Crédit image : Xavier Cee via Unsplash . Toutes les modifications et captures d’écran par Ramces Red.
Laisser un commentaire