Run0 vs Sudo : quelle est la différence ?

Run0 vs Sudo : quelle est la différence ?
Une photographie d'un moniteur affichant une invite de terminal avec la commande

Run0 est un nouveau programme d’escalade de privilèges pour les systèmes Linux basés sur Systemd. Similaire à sudo, il vous permet d’exécuter des commandes en tant qu’utilisateur root et d’accéder aux composants internes de votre machine. Dans cet article, nous comparons Run0 et Sudo pour vous aider à déterminer l’outil d’escalade de privilèges qui vous convient.

Run0 vs Sudo : une comparaison côte à côte

Catégorie Exécuter0 Sudo
Configurabilité N’est pas fourni avec un fichier de configuration. Utilise des indicateurs de ligne de commande pour modifier son comportement Livré avec deux fichiers de configuration et de nombreux indicateurs de ligne de commande
Facilité d’utilisation Simple et direct à utiliser pour la plupart des tâches Peut nécessiter une certaine configuration avant de pouvoir fonctionner correctement
Sécurité Ne s’appuie pas sur SUID et a une empreinte de code plus petite S’appuie sur SUID et dispose d’une surface d’attaque plus grande en raison de la taille du code
Extensibilité Ne prend pas en charge les plugins tiers Dispose d’une API pour développer des plugins tiers
Assistance réseau Conçu pour fonctionner sur une seule machine Peut travailler avec des réseaux informatiques utilisant des politiques d’accès centralisées
Meilleur pour Utilisateurs occasionnels à la recherche d’une alternative plus simple à Sudo Les utilisateurs expérimentés à la recherche d’une option fiable qu’ils peuvent personnaliser

Qu’est-ce que Run0 et pourquoi l’utiliser

Lancée dans la version 256 de Systemd, Run0 est une approche unique de l’escalade des privilèges pour Linux. Elle utilise Systemd-run pour créer un environnement sécurisé et isolé pour l’exécution de programmes avec des privilèges root.

Le principal argument de vente de Run0 est qu’il ne s’appuie pas sur setuid (SUID) pour exécuter les commandes root. Cela rend le programme immunisé contre les attaques d’escalade de privilèges courantes dans les grands programmes SUID.

Un terminal mettant en évidence les propriétés setuid du binaire sudo par rapport à run0.

Un autre argument de vente de Run0 est qu’il décharge son agent d’authentification sur Polkit. Ce programme gère les paramètres de politique des applications sur votre système. Non seulement il centralise l’authentification sur votre machine, mais il vous donne également un contrôle plus précis sur la façon dont les programmes et les utilisateurs obtiennent l’accès root.

Enfin, Run0 crée un nouveau pseudo-TTY (PTY) à chaque fois que vous appelez une commande privilégiée. Cela signifie que les programmes n’héritent pas de l’environnement shell actuel, ce qui facilite l’isolement d’un processus défaillant sur votre système.

Un terminal mettant en évidence le processus racine PTY apparaissant sur le systemctl du système.

Qu’est-ce que Sudo et pourquoi l’utiliser

Sudo est l’un des premiers programmes d’élévation de privilèges pour Linux et d’autres systèmes d’exploitation de type UNIX. Développé pour la première fois dans les années 1980, il utilise le système d’utilisateurs et de groupes UNIX intégré pour gérer les privilèges root des commandes système.

L’un des principaux arguments de vente de sudo est qu’il s’agit d’une solution tout-en-un pour l’escalade des privilèges et des autorisations. Avec elle, il vous suffit de configurer le fichier sudoers pour gérer qui peut être un superutilisateur et quels programmes ils peuvent exécuter en tant que root. Cela le rend attrayant pour les administrateurs système qui souhaitent une manière simplifiée de gérer l’accès root.

Un terminal affichant le contenu du fichier sudoers.

Une autre raison d’utiliser sudo est qu’il peut surveiller et examiner l’historique des commandes système exécutées sur votre machine par différents superutilisateurs. Cela est utile lors du dépannage, car cela peut indiquer le moment exact où le système a rencontré son problème.

Un terminal affichant la sortie de la commande sudoreplay répertoriant toutes les commandes sudo exécutées sur le système.

Enfin, sudo est facile à mettre à l’échelle sur plusieurs hôtes grâce à sa prise en charge intégrée de LDAP et d’Active Directory. Pour cette raison, sudo peut également être un excellent outil pour les administrateurs qui gèrent plusieurs machines pour les équipes et les entreprises.

Run0 vs Sudo : une comparaison complète

Bien que Run0 et Sudo soient des outils formidables pour élever les privilèges des utilisateurs, les deux programmes ont adopté des approches différentes pour y parvenir. Ci-dessous, nous examinons certaines de ces différences pour vous aider à déterminer celui qui vous convient le mieux.

Configurabilité

Contrairement à d’autres programmes d’escalade de privilèges, Run0 n’utilise pas de fichiers de configuration pour modifier son comportement par défaut. Au lieu de cela, vous le personnalisez à l’aide d’une poignée d’indicateurs intégrés lorsque vous l’exécutez sur le terminal. Cela vous permet de vous concentrer sur votre flux de travail au lieu de vous enliser dans la modification des fichiers de configuration.

Un terminal affichant l'écran d'aide pour run0.

D’autre part, sudo propose de nombreuses options dans ses deux fichiers de configuration principaux : « /etc/sudo.conf » et « /etc/sudoers ». Les deux fonctionnent de concert pour contrôler le fonctionnement de sudo sur votre système. Par exemple, vous pouvez même configurer sudo pour qu’il s’exécute sans mot de passe. Bien que cela puisse être déroutant pour un nouvel utilisateur, ce niveau de flexibilité et de personnalisation vous permet de créer votre propre flux de travail sudo personnalisé.

Un terminal affichant le contenu du fichier sudo.conf.

Gagnant : Sudo

Facilité d’utilisation

La plupart des distributions Linux actuelles proposent Run0 et Sudo avec des valeurs par défaut raisonnables, ce qui les rend faciles à utiliser sans configuration supplémentaire. Cela dit, il existe encore quelques bizarreries d’utilisation entre les deux programmes qui peuvent être un obstacle pour certains utilisateurs.

La principale particularité de Run0 vient de sa dépendance à Polkit pour l’authentification. Dans certains terminaux, Run0 peut afficher son invite de mot de passe sur un écran différent. Cela peut être un problème si vous utilisez un multiplexeur de terminal, tel que Tmux, pour gérer plusieurs sessions shell.

Une capture d'écran montrant l'invite Polkit pour une requête run0 sur un terminal multiplexé.

Le plus gros problème de Sudo est qu’il ne vous permet pas de modifier le fichier sudoers via un éditeur de texte classique. Au lieu de cela, il vous demande d’utiliser un programme appelé Visudo, qui ajoute des contrôles d’intégrité sur le fichier sudoers. Bien que cela rende la modification du fichier sudoers plus sûre, cela peut être inutilement complexe pour un utilisateur régulier qui ne souhaite gérer que les autorisations root.

Un terminal affichant l'écran d'aide de l'utilitaire visudo.

Gagnant : Run0

Taille du code source

La taille globale du code source d’un programme est un bon indicateur de sa complexité actuelle. Cela est important pour les programmes d’escalade de privilèges, car la complexité du code peut conduire à des failles de sécurité potentielles.

L’une des différences entre Run0 et d’autres applications d’escalade de privilèges est qu’elle est construite sur Systemd-run. Cela permet non seulement à Run0 de tirer parti des fonctionnalités de Systemd-run, mais cela signifie également que le programme lui-même ne contient pas beaucoup de code. Par conséquent, Run0 est plus facile à auditer pour détecter d’éventuels problèmes de sécurité à l’avenir.

Un terminal mettant en évidence la phrase de la page de manuel Run0 décrivant sa construction sur Systemd-run.

Sudo est un projet logiciel massif qui s’étend sur plusieurs fichiers et langages de programmation. Bien que cette complexité ait permis à sudo d’être une puissante application d’escalade de privilèges, elle signifie également qu’elle dispose d’une surface d’attaque massive pour les exploits potentiels.

Un terminal affichant l'ensemble des lignes de code du référentiel Github sudo.

Gagnant : Run0

Âge du code source

L’âge d’un projet logiciel particulier est également un facteur à prendre en compte pour évaluer la fiabilité d’un programme d’escalade de privilèges. Les projets les plus récents sont souvent remplis de plus de bugs et de problèmes, tandis que les plus anciens ont tendance à être plus stables.

Run0 est un programme relativement nouveau ajouté à Systemd en juin 2024. Actuellement, vous ne pouvez obtenir l’application que sur des distributions de pointe telles que Arch Linux et Fedora Rawhide. De ce fait, Run0 est plus adapté aux travaux occasionnels et non critiques.

Sudo est l’un des plus anciens projets logiciels encore en développement aujourd’hui. Avec plus de 30 ans d’histoire de développement, sudo est un programme très mature capable de gérer différentes charges de travail. Cela le rend très souhaitable pour ceux qui recherchent un programme d’escalade de privilèges stable sur lequel ils peuvent compter.

Gagnant : Sudo

Run0 vs Sudo : quelle application gagne

En fin de compte, le choix du bon programme d’escalade des privilèges dépend de ce que vous essayez d’accomplir avec votre système :

  • Si vous recherchez une application d’escalade de privilèges simple et facile à utiliser , Run0 est un bon choix. La combinaison de sa conception sans configuration et de son approche d’isolation des processus root en fait un outil idéal pour les utilisateurs occasionnels à la recherche d’une alternative simple à Sudo.
  • Si vous souhaitez une application d’escalade de privilèges personnalisable et stable , vous ne pouvez pas vous tromper avec Sudo. Avec son historique de développement de plusieurs décennies et sa richesse de fonctionnalités, il est très facile de façonner Sudo selon votre flux de travail personnalisé.

Choisir l’application d’escalade de privilèges adaptée à votre machine n’est que la première étape pour comprendre le fonctionnement d’un superutilisateur sous Linux. Plongez au cœur de votre machine et découvrez en quoi Su diffère de Sudo.

Crédit photo : Gabriel Heinzer via Unsplash . Toutes les modifications et captures d’écran par Ramces Red.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *