
Avec Ubuntu 25.10, Canonical prévoit d'utiliser davantage de composants système écrits en Rust et, jusqu'à présent, la plupart des discussions ont porté sur la transition vers Rust Coreutils « uutils » à la place de GNU Coreutils. Il a également été confirmé que Canonical prévoit d'utiliser sudo-rs par défaut en remplacement de sudo. Le projet sudo-rs est en développement depuis plusieurs années en tant qu'implémentation de sudo basée sur Rust, avec une mémoire sécurisée, qui peut servir de remplacement. Le projet sudo-rs est maintenu par la fondation à but non lucratif Trifecta Tech Foundation, qui a confirmé le projet de Canonical d'utiliser sudo-rs par défaut avec Ubuntu 25.10.
En 2023, Amazon Web Services a financé un projet de réécriture de sudo et su dans le langage de programmation Rust afin d'augmenter la sécurité de la mémoire pour les logiciels largement utilisés et pour améliorer davantage la sécurité Linux/open-source. Cette initiative confirme une tendance à remédier aux nombreuses vulnérabilités liées à des problèmes de sécurité de la mémoire.
C'est dans cette optique que Ubuntu 25.10 devrait adopter par défaut l'utilitaire sudo-rs. Sudo-rs est une réimplémentation à sécurité mémoire de l'utilitaire sudo, largement utilisé, écrit dans le langage de programmation Rust. Cette décision s'inscrit dans le cadre d'un effort plus large de Canonical visant à améliorer la résilience et la maintenabilité des principaux composants du système. Sudo-rs est développé par la Trifecta Tech Foundation (TTF), une organisation à but non lucratif qui crée des blocs de construction sécurisés et open source pour les logiciels d'infrastructure.
La décision d'adopter sudo-rs est conforme à l'engagement de Canonical d'augmenter prudemment mais volontairement la résilience des logiciels système critiques, en adoptant Rust. Rust est un langage de programmation qui offre de solides garanties en matière de sécurité de la mémoire et qui élimine de nombreuses vulnérabilités qui ont historiquement affecté les logiciels traditionnels basés sur le langage C.
Sudo-rs fait partie de l'initiative Privilege Boundary de la Trifecta Tech Foundation, qui vise à gérer l'escalade des privilèges à l'aide d'alternatives sûres pour la mémoire.

Préparation à l'adoption générale par les distributions Linux
Pour préparer l'adoption générale, les mainteneurs de sudo-rs achèveront les travaux décrits dans le plan de travail de l'étape 5 du projet :
- La prévention des évasions de l'interpréteur de commandes (NOEXEC) à gros grain sur Linux
- La possibilité de contrôler les profils AppArmor
- sudoedit
- La prise en charge des noyaux Linux antérieurs à la version 5.9, utilisée par Ubuntu 20.04 LTS.
Canonical sponsorise cette étape pour faire de sudo-rs une implémentation encore meilleure de la commande sudo. Avec les fonctionnalités ci-dessus, plus d'utilisateurs et d'administrateurs système devraient être en mesure d'utiliser sudo-rs sans aucun changement dans leur flux de travail actuel.
Les responsables de sudo-rs s'en tiennent à l'approche "moins c'est plus" : certaines fonctionnalités du sudo original ne seront pas implémentées dans sudo-rs si elles ne servent que des cas d'utilisation très spécialisés. Les mainteneurs poursuivent leur collaboration avec Todd Miller, le mainteneur de sudo en place depuis plus de trente ans, améliorant ainsi indirectement le sudo original en tant que sous-produit de cet engagement.

Voici l'annonce de Canonical :
Adoption de sudo-rs par défaut dans Ubuntu 25.10
Introduction
Suite à la publication de Carefully But Purposefully Oxidising Ubuntu, Ubuntu sera la première distribution Linux majeure à adopter sudo-rs comme implémentation par défaut de sudo, en partenariat avec la Trifecta Tech Foundation.
Le changement sera effectif à partir de la sortie d'Ubuntu 25.10.
Qu'est-ce que sudo-rs ?
sudo-rs est une réimplémentation de l'outil sudo traditionnel, écrit en Rust. Il est développé par la Trifecta Tech Foundation (TTF), une organisation à but non lucratif qui se concentre sur la construction de composants d'infrastructure sécurisés et open source. Le projet fait partie de l'initiative Privilege Boundary de la Trifecta Tech Foundation, qui vise à gérer l'escalade des privilèges à l'aide d'alternatives sûres pour la mémoire.
La commande sudo a longtemps servi de moyen défacto d'escalade des privilèges sous Linux. Comme décrit dans le billet original, Rust fournit de fortes garanties contre certaines classes de problèmes de sécurité de la mémoire, ce qui est essentiel pour les composants à la limite des privilèges.
L'équipe sudo-rs collabore avec Todd Miller, qui maintient le sudo original depuis plus de trente ans. sudo-rs ne doit pas être considéré comme une bifurcation, mais plutôt comme une poignée de main entre plusieurs générations de systèmes sécurisés. Tout au long du développement de sudo-rs, l'équipe TTF a également contribué à l'amélioration de l'implémentation originale de sudo.
Le projet sudo-rs est conçu pour remplacer l'outil original. Pour la grande majorité des utilisateurs, la mise à jour devrait être complètement transparente pour leur flux de travail. Cela dit, sudo-rs n'est pas une réimplémentation « aveugle ». Les développeurs ont adopté une approche « moins, c'est plus ». Cela signifie que certaines fonctionnalités de la version originale de sudo peuvent ne pas être réimplémentées si elles ne servent qu'une niche, ou si elles sont considérées comme des pratiques « dépassées ».
Erik Jonkers, président de la Trifecta Tech Foundation, explique : "Bien qu'aucun logiciel - quel que soit le langage - ne soit parfait, nous pensons que la transition vers Rust dans la programmation des systèmes est un pas en avant vital, et il est très excitant de voir Ubuntu s'engager en faveur de sudo-rs et prendre les devants pour faire avancer les choses."
Sponsoriser l'adoption par le grand public
L'adoption par le grand public d'un substitut à un outil aussi universellement connu s'accompagne de responsabilités. Avant de s'engager à livrer sudo-rs dans Ubuntu 26.04 LTS, nous testerons la transition dans Ubuntu 25.10. Nous sponsorisons également le développement de certains éléments spécifiques, qui se sont manifestés en tant que jalon 5 dans le projet en amont :
Le dernier point peut sembler déplacé, mais comme Ubuntu 20.04 LTS est toujours supporté, sans ce travail, il pourrait y avoir des situations où sudo ne fonctionnerait pas si, par exemple, un conteneur OCI 26.04 LTS était exécuté sur un hôte 20.04 LTS !
L'équipe a également déjà commencé à travailler pour s'assurer que la suite de tests est aussi compatible que possible avec Ubuntu, afin de s'assurer que tout problème soit détecté rapidement.
Il ne s'agit pas seulement de livrer un nouveau binaire. Il s'agit de définir une direction. Nous n'abandonnons pas le C, ni même ne réécrivons tous les utilitaires nous-mêmes, mais en choisissant de remplacer l'un des outils les plus critiques pour la sécurité du système par une alternative sûre pour la mémoire, nous faisons une déclaration : la résilience et la durabilité ne sont pas optionnelles dans l'avenir de l'infrastructure ouverte.
Progrès de coreutils
Depuis l'annonce initiale, nous avons travaillé dur pour définir plus clairement un plan de migration vers uutils coreutils dans la version 25.10 et au-delà. De la même manière que nous nous sommes engagés avec la Trifecta Tech Foundation, nous sponsorisons également le projet uutils pour nous assurer que certaines lacunes clés sont comblées avant la livraison de la version 25.10. Le parrainage couvrira principalement le développement du support SELinux pour les commandes courantes telles que mv, ls, cp, etc.
La première étape du développement du support SELinux a été d'ajouter le support des tests automatisés dans Github Actions, depuis lors les mainteneurs ont commencé à travailler sur l'implémentation réelle.
L'autre fonctionnalité que nous sponsorisons est la prise en charge de l'internationalisation. Actuellement, certaines implémentations d'utilitaires (comme sort) ont une compréhension incomplète des locales, et peuvent donc produire des résultats inattendus. Nous espérons que ces deux fonctionnalités seront disponibles à temps pour la version 25.10, et nous continuerons à travailler avec le projet uutils tout au long du cycle 26.04 LTS afin de combler les lacunes que nous aurons identifiées dans la version intermédiaire.
L'une des principales préoccupations soulignées dans le billet de Julian concerne la taille des binaires. Nous avons quelques astuces pour réduire cette taille, et des discussions ont déjà été entamées en amont dans Debian sur la manière d'y parvenir. Il y a aussi des implications de sécurité, comme le manque de support d'AppArmor pour les binaires multi-appels. Nous travaillons actuellement avec les amonts respectifs pour discuter de la résolution systématique de ce problème, mais dans l'intervalle, nous pourrions avoir besoin de construire de petits binaires enveloppants pour permettre la compatibilité avec les profils AppArmor existants dès le départ.
Mécanismes de migration
Julian Klode a posté récemment sur le Discourse Ubuntu un plan d'empaquetage qui nous permettra à la fois de migrer de manière transparente vers uutils coreutils, mais aussi de fournir un moyen pratique pour les utilisateurs de se retirer et de revenir à GNU coreutils s'ils le souhaitent, ou s'ils identifient une lacune dans la nouvelle implémentation. Je m'attends à ce que cela soit rare, mais nous voulons nous assurer qu'il est aussi facile que possible de revenir en arrière, et nous documenterons cela en détail avant la publication.
Remplacer coreutils n'est pas aussi simple que d'échanger les binaires. En tant que paquet Essential, son remplacement doit fonctionner immédiatement au déballage sans dépendre des scripts du mainteneur, et sans conflit de fichiers entre les paquets. Pour résoudre ce problème, nous introduisons de nouveaux paquets coreutils-from-utils et coreutils-from-gnu, ainsi que coreutils-from lui-même.
Le travail d'empaquetage nécessaire pour passer à sudo-rs est un peu moins compliqué qu'avec coreutils. Le paquet est déjà disponible dans Ubuntu (que vous pouvez toujours tester sur Ubuntu 24.04, 24.10 et 25.04 avec oxidizr 5 !), mais contrairement à coreutils, sudo n'est pas un paquet Essential, nous pourrons donc utiliser le système Debian alternatives pour la transition.
Résumé
Les choses avancent bien. Nous avons établi des relations solides et productives et nous sponsorisons le travail en amont pour rendre ces transitions viables.
Nous avons une stratégie pour migrer l'implémentation par défaut de coreutils et de sudo dans Ubuntu 25.10, ce qui permettra un retour en arrière transparent dans les cas où cela est souhaité. Alors que sudo-rs sera l'implémentation par défaut dans la version 25.10, le sudo original restera disponible pour les utilisateurs qui en ont besoin, et nous recueillerons des commentaires pour assurer une transition en douceur avant la version 26.04 LTS.
De plus, nous avons commencé à étudier la faisabilité de fournir SequoiaPGP et de l'utiliser dans APT à la place de GnuPG. SequoiaPGP est une nouvelle bibliothèque OpenPGP qui met l'accent sur la sécurité et la correction, écrite en Rust. Les mainteneurs de GnuPG ont récemment bifurqué vers le standard OpenPGP et ne sont plus en conformité avec celui-ci. Sequoia fournit une alternative moderne à GnuPG avec un comportement strict, et est déjà utilisé dans plusieurs autres systèmes. Plus de détails à venir !
Restez à l'écoute !
Introduction
Suite à la publication de Carefully But Purposefully Oxidising Ubuntu, Ubuntu sera la première distribution Linux majeure à adopter sudo-rs comme implémentation par défaut de sudo, en partenariat avec la Trifecta Tech Foundation.
Le changement sera effectif à partir de la sortie d'Ubuntu 25.10.
Qu'est-ce que sudo-rs ?
sudo-rs est une réimplémentation de l'outil sudo traditionnel, écrit en Rust. Il est développé par la Trifecta Tech Foundation (TTF), une organisation à but non lucratif qui se concentre sur la construction de composants d'infrastructure sécurisés et open source. Le projet fait partie de l'initiative Privilege Boundary de la Trifecta Tech Foundation, qui vise à gérer l'escalade des privilèges à l'aide d'alternatives sûres pour la mémoire.
La commande sudo a longtemps servi de moyen défacto d'escalade des privilèges sous Linux. Comme décrit dans le billet original, Rust fournit de fortes garanties contre certaines classes de problèmes de sécurité de la mémoire, ce qui est essentiel pour les composants à la limite des privilèges.
L'équipe sudo-rs collabore avec Todd Miller, qui maintient le sudo original depuis plus de trente ans. sudo-rs ne doit pas être considéré comme une bifurcation, mais plutôt comme une poignée de main entre plusieurs générations de systèmes sécurisés. Tout au long du développement de sudo-rs, l'équipe TTF a également contribué à l'amélioration de l'implémentation originale de sudo.
Le projet sudo-rs est conçu pour remplacer l'outil original. Pour la grande majorité des utilisateurs, la mise à jour devrait être complètement transparente pour leur flux de travail. Cela dit, sudo-rs n'est pas une réimplémentation « aveugle ». Les développeurs ont adopté une approche « moins, c'est plus ». Cela signifie que certaines fonctionnalités de la version originale de sudo peuvent ne pas être réimplémentées si elles ne servent qu'une niche, ou si elles sont considérées comme des pratiques « dépassées ».
Erik Jonkers, président de la Trifecta Tech Foundation, explique : "Bien qu'aucun logiciel - quel que soit le langage - ne soit parfait, nous pensons que la transition vers Rust dans la programmation des systèmes est un pas en avant vital, et il est très excitant de voir Ubuntu s'engager en faveur de sudo-rs et prendre les devants pour faire avancer les choses."
Sponsoriser l'adoption par le grand public
L'adoption par le grand public d'un substitut à un outil aussi universellement connu s'accompagne de responsabilités. Avant de s'engager à livrer sudo-rs dans Ubuntu 26.04 LTS, nous testerons la transition dans Ubuntu 25.10. Nous sponsorisons également le développement de certains éléments spécifiques, qui se sont manifestés en tant que jalon 5 dans le projet en amont :
- Prévention des évasions de shell à gros grain (NOEXEC) sur Linux
- La possibilité de contrôler les profils AppArmor
- Une implémentation de sudoedit
- La prise en charge des noyaux Linux antérieurs à la version 5.9
Le dernier point peut sembler déplacé, mais comme Ubuntu 20.04 LTS est toujours supporté, sans ce travail, il pourrait y avoir des situations où sudo ne fonctionnerait pas si, par exemple, un conteneur OCI 26.04 LTS était exécuté sur un hôte 20.04 LTS !
L'équipe a également déjà commencé à travailler pour s'assurer que la suite de tests est aussi compatible que possible avec Ubuntu, afin de s'assurer que tout problème soit détecté rapidement.
Il ne s'agit pas seulement de livrer un nouveau binaire. Il s'agit de définir une direction. Nous n'abandonnons pas le C, ni même ne réécrivons tous les utilitaires nous-mêmes, mais en choisissant de remplacer l'un des outils les plus critiques pour la sécurité du système par une alternative sûre pour la mémoire, nous faisons une déclaration : la résilience et la durabilité ne sont pas optionnelles dans l'avenir de l'infrastructure ouverte.
Progrès de coreutils
Depuis l'annonce initiale, nous avons travaillé dur pour définir plus clairement un plan de migration vers uutils coreutils dans la version 25.10 et au-delà. De la même manière que nous nous sommes engagés avec la Trifecta Tech Foundation, nous sponsorisons également le projet uutils pour nous assurer que certaines lacunes clés sont comblées avant la livraison de la version 25.10. Le parrainage couvrira principalement le développement du support SELinux pour les commandes courantes telles que mv, ls, cp, etc.
La première étape du développement du support SELinux a été d'ajouter le support des tests automatisés dans Github Actions, depuis lors les mainteneurs ont commencé à travailler sur l'implémentation réelle.
L'autre fonctionnalité que nous sponsorisons est la prise en charge de l'internationalisation. Actuellement, certaines implémentations d'utilitaires (comme sort) ont une compréhension incomplète des locales, et peuvent donc produire des résultats inattendus. Nous espérons que ces deux fonctionnalités seront disponibles à temps pour la version 25.10, et nous continuerons à travailler avec le projet uutils tout au long du cycle 26.04 LTS afin de combler les lacunes que nous aurons identifiées dans la version intermédiaire.
L'une des principales préoccupations soulignées dans le billet de Julian concerne la taille des binaires. Nous avons quelques astuces pour réduire cette taille, et des discussions ont déjà été entamées en amont dans Debian sur la manière d'y parvenir. Il y a aussi des implications de sécurité, comme le manque de support d'AppArmor pour les binaires multi-appels. Nous travaillons actuellement avec les amonts respectifs pour discuter de la résolution systématique de ce problème, mais dans l'intervalle, nous pourrions avoir besoin de construire de petits binaires enveloppants pour permettre la compatibilité avec les profils AppArmor existants dès le départ.
Mécanismes de migration
Julian Klode a posté récemment sur le Discourse Ubuntu un plan d'empaquetage qui nous permettra à la fois de migrer de manière transparente vers uutils coreutils, mais aussi de fournir un moyen pratique pour les utilisateurs de se retirer et de revenir à GNU coreutils s'ils le souhaitent, ou s'ils identifient une lacune dans la nouvelle implémentation. Je m'attends à ce que cela soit rare, mais nous voulons nous assurer qu'il est aussi facile que possible de revenir en arrière, et nous documenterons cela en détail avant la publication.
Remplacer coreutils n'est pas aussi simple que d'échanger les binaires. En tant que paquet Essential, son remplacement doit fonctionner immédiatement au déballage sans dépendre des scripts du mainteneur, et sans conflit de fichiers entre les paquets. Pour résoudre ce problème, nous introduisons de nouveaux paquets coreutils-from-utils et coreutils-from-gnu, ainsi que coreutils-from lui-même.
Le travail d'empaquetage nécessaire pour passer à sudo-rs est un peu moins compliqué qu'avec coreutils. Le paquet est déjà disponible dans Ubuntu (que vous pouvez toujours tester sur Ubuntu 24.04, 24.10 et 25.04 avec oxidizr 5 !), mais contrairement à coreutils, sudo n'est pas un paquet Essential, nous pourrons donc utiliser le système Debian alternatives pour la transition.
Résumé
Les choses avancent bien. Nous avons établi des relations solides et productives et nous sponsorisons le travail en amont pour rendre ces transitions viables.
Nous avons une stratégie pour migrer l'implémentation par défaut de coreutils et de sudo dans Ubuntu 25.10, ce qui permettra un retour en arrière transparent dans les cas où cela est souhaité. Alors que sudo-rs sera l'implémentation par défaut dans la version 25.10, le sudo original restera disponible pour les utilisateurs qui en ont besoin, et nous recueillerons des commentaires pour assurer une transition en douceur avant la version 26.04 LTS.
De plus, nous avons commencé à étudier la faisabilité de fournir SequoiaPGP et de l'utiliser dans APT à la place de GnuPG. SequoiaPGP est une nouvelle bibliothèque OpenPGP qui met l'accent sur la sécurité et la correction, écrite en Rust. Les mainteneurs de GnuPG ont récemment bifurqué vers le standard OpenPGP et ne sont plus en conformité avec celui-ci. Sequoia fournit une alternative moderne à GnuPG avec un comportement strict, et est déjà utilisé dans plusieurs autres systèmes. Plus de détails à venir !
Restez à l'écoute !
Sources : Trifecta Tech Foundation; Canonical, l'éditeur d'Ubuntu
Et vous ?


Voir aussi :



Vous avez lu gratuitement 6 articles depuis plus d'un an.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer à vous proposer des publications.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer à vous proposer des publications.