L’outil run0 de systemd, un pataquès à venir pour pas grand-chose au final ?

À chaque nouvelle version majeure ou presque de systemd, sa polémique. Cette fois-ci, avec l’arrivée de Systemd 256, un clone de sudo a été développé sous le nom de run0. C’est une volonté d’écrire une alternative à sudo en se basant sur systemd-run. Ma source ? Cet article de programmez.com.

Mis à part le doas d’OpenBSD – qui est disponible aussi sur Archlinux via AUR entre autre ou encore sur la Debian 12 – qui n’a pas eu droit à des grands cris d’orfraie à sa sortie, il n’y a pas grand-chose côté outils permettant une élévation temporaire des privilèges.

En passant, bien que certains outils de Systemd existe comme le ntpd connu sous le nom de systemd-timesyncd ou encore l’outil de connexion réseau systemd-networkd n’a pas éradiqué Network Manager, on peut aisément penser que run0 ne tuera pas sudo.

D’ailleurs, si on entre run0 tout seul, c’est comme si on utilise la commande su. On est connecté au compte root. Si on entre une commande après le run0, l’outil se comporte comme sudo.

Mais le mieux est de montrer quelques fonctionnalités basique de run0, le tout dans une machine virtuelle avec une Archlinux proposant KDE. J’ai dû utiliser les dépôts de test – car au 7 juin 2024, moment où je rédige l’article – pour avoir accès une version quasi-finale de systemd 256, sa quatrième release candidate.

Vous avez pu le voir, il n’y a rien de maléfique dans cet outil. Comme pour systemd-timesyncd ou systemd-networkd, il n’y a aucune obligation à l’utiliser. Je vais rester fidèle à ce bon vieux sudo. Sûrement de vieilles habitudes que j’ai du mal à me séparer.

Double claque pour Microsoft ?

Je publie volontairement ce billet le 31 mars, pour éviter d’être accusé de faire un gros poisson d’avril.

Première claque : SCO encore débouté sur ses prétentions sur Unix.

Pourquoi est-ce que je dis que c’est Microsoft qui se prend une claque ? Il faut se souvenir que SCO Unix s’appellait à l’origine Microsoft Xenix

Et que Microsoft a soutenu SCO au début de l’affaire SCO contre Novell… En 2004 !

Deuxième claque : elle concerne Windows et sa conception même. Car il faut se souvenir qu’entre 1985 (sortie de MS Windows 1.0) et Windows Vista – début 2007 – une faille énorme de sécurité a existé : le premier compte avait des droits administrateurs, root en langage unix.

Or, toute personne qui a utilisé un unix ou un BSD dans sa vie sait une chose : un compte root, cela ne s’utilise que pour des taches administratives. D’ailleurs, en 2009, Microsoft a déposé un brevet sur une procédure qui copie la commande Sudo qui existe depuis… 1980 ! l

Un rapport récemment publié annonce qu’un minimum de 64% des failles comblées dans MS Windows l’année dernière étaient inactivées par l’utilisateur d’un compte utilisateur normal, en clair n’ayant pas les droits administrateurs (ce qui est par défaut le cas sur les windows jusqu’à Vista).

Si on prend le cas d’Internet Explorer, les failles sont désactivées à hauteur de… 94%…

Bref, un rapport annonce ce que les utilisateurs d’unix savent depuis environ 30 ans… Ne pas utiliser un compte root réduit les risques d’attaques dans une proportion énorme, de l’ordre de 90 à 95%

Comme disait Henry Spencer , « Those who do not understand Unix are condemned to reinvent it, poorly. » ce qu’on peut traduire par « Ceux qui ne comprennent Unix sont condamné à le réinventer, malheureusement en moins bien. »

Avec UAC (qui ressemble à sudo et sur KDESu / GKSu), que fait Microsoft au final ? 😉

Les brevets logiciels ? De la bétise pure et dure.

Récemment, Microsoft a prouvé que les brevets logiciels sont de la bétise pure et simple… Il a déposé un brevet pour les touches « Page Up » et « Page Down » qui existent sur les claviers depuis des années… Et sûrement depuis le premier IBM PC de 1981.

Mais ce n’est pas le premier coup d’éclat de Microsoft dans ce domaine. Un brevet est passé un peu plus inaperçu. Le brevet 6,775,781 déposé en 2000 et accepté en 2004 décrit le fonctionnement de Sudo, outil qui date de 1980 !

Dans le jargon technique, on décrit comment un processus initié par un utilisateur simple peut être autorisé à avoir les pleins pouvoir pour effectuer une tache administrative : installation de logiciels par exemple.

Sudo est un outil qui date de l’époque ancestrale des premiers BSD (1980) et qui donc est la preuve de l’existence de ce concept largement avant le dépot du brevet.

On peut lire sur la page de l’outil sudo :

« Sudo was first conceived and implemented by Bob Coggeshall and Cliff Spencer around 1980 at the Department of Computer Science at SUNY/Buffalo. It ran on a VAX-11/750 running 4.1BSD. An updated version, credited to Phil Betchel, Cliff Spencer, Gretchen Phillips, John LoVerso and Don Gworek, was posted to the net.sources Usenet newsgroup in December of 1985. »

Ce qui donne traduit :

« Sudo a été conçu et implementé par Bob Coggeshall et Cliff Spencer aux alentours de 1980 au département de science informatique de SUNY/Buffalo. Il se lançait sur un VAX-11/750 utilisant 4.1BSD. Une version mise à jour, à mettre au crédit de Phil Betchel, Cliff Spencer, Gretchen Phillips, John LoVerso et Don Gworek a été posé sur le forum Usenet net.sources en décembre 1985 ».

Le code source de l’outil « asroot » devenu « sudo » est toujours disponible et lisible via google groups.

L’UAC – introduite avec une préversion de la béta 2 de Windows Vista en février 2006 – n’est que la partie graphique de ce mécanisme. Cependant, l’UAC n’est pas la première interface graphique dans ce domaine.

GKSu existe depuis pas mal de temps. Cet outil graphique pour Su et Sudo existe depuis… février 2004 ! On peut en effet récupérer le code source de gksu 1.0.3 depuis cette page : http://people.debian.org/~kov/gksu/old_stuff/1.0/

La preuve en image… GKSu à l’oeuvre avec une Ubuntu 5.10 (octobre 2005) dans une machine virtuelle sous VirtualBox 2.0.

GkSu sous Ubuntu 5.10

Comme quoi, quand vous verrez des articles élogieux sur telle ou telle fonctionnalité de tel ou tel OS (Windows, Linux, MacOS-X), vérifiez donc que ce n’est pas la pâle copie d’une technologie qui existe déjà.