Prise en main de « Sudo for Windows » sur Windows 11
Sommaire
I. Présentation
Il y a quelques heures, Microsoft a dévoilé son nouveau projet open source : Sudo for Windows. Il va permettre de bénéficier de la commande sudo, déjà disponible sur Linux et macOS, directement sur Windows 11, et probablement sur Windows Server 2025 par la suite. D'ailleurs, l'entreprise américaine explique que ce projet n'est pas un fork, ni un portage, de la version pour Linux. Il s'agit d'une version sudo créée de toutes pièces par Microsoft.
Dans ce tutoriel, nous allons voir comment activer la commande sudo et comment l'utiliser au travers de quelques exemples. Il s'agit d'un premier aperçu, car l'intégration de sudo dans Windows va évoluer dans les prochains mois. Pour rappel, la commande sudo permet d'exécuter des commandes avec des privilèges élevés à partir d'une console exécutée en tant qu'utilisateur standard.
II. Activer sudo sur Windows 11
Pour le moment, il n'est pas possible d'utiliser sudo sur une version stable de Windows 11, à moins d'utiliser un autre projet nommé gsudo. Vous devez utiliser au minimum Windows 11 Insider Preview Build 26052, qui, comme son nom l'indique est disponible au travers du programme Windows Insider.
Pour le moment, vous devez activer sudo à partir des options pour les développeurs de Windows 11. Vous pouvez ouvrir les "Paramètres" et rechercher "sudo", ceci va directement vous amener au bon endroit. Ici, cliquez sur le bouton permettant d'activer sudo.
Une fenêtre de confirmation va s'afficher à l'écran, cliquez sur "Oui".
Nous pouvons constater la présence d'un paramètre nommé "Configurer le mode d'exécution des applications par sudo". Il y a trois modes disponibles :
- Dans une nouvelle fenêtre : la commande sudo exécutera la commande / le programme dans une fenêtre distincte (comme avec runas)
- Avec entrée désactivée : la commande sudo exécutera la commande "en lecture seule" sans interaction
- Inline : la commande sudo exécutera la commande dans la console active et le résultat sera retourné dans cette même console (même principe que sous Linux)
Voilà, sudo est activé sur votre PC Windows 11 !
III. Comment utiliser sudo sur Windows ?
A. Premiers pas avec Sudo for Windows
Désormais, nous allons voir comment utiliser sudo sur Windows 11. Ouvrez une console sur votre machine, sans l'ouvrir en tant qu'administrateur, sinon l'utilisation de sudo n'a pas d'intérêt.
Pour faire un essai concret, nous pouvons essayer d'exécuter la commande "netstat -ab" dans la console. Cette commande sert à visualiser les connexions actives et les programmes associées.
netstat -ab
Cette commande retourne une erreur : L'opération demandée nécessite une élévation !
Désormais, nous pouvons relancer la même commande en ajoutant "sudo" en tant que préfixe :
sudo netstat -ab
Une fenêtre de confirmation apparaît à l'écran, nous devons confirmer l'élévation de privilèges. Nous pouvons constater que sudo s'appuie sur l'UAC de Windows.
Cette fois-ci, cela fonctionne car Windows a procédé à une élévation de privilèges pour exécuter cette commande, et uniquement pour cette commande.
Vous pouvez constater la différence en image :
B. Exécuter une commande PowerShell avec sudo
Nous pouvons exécuter une commande PowerShell (ou un script) en utilisant sudo. Prenons un exemple très simple : nous allons essayer de créer le fichier "C:\fichier.txt" à partir de notre console non privilégiée.
New-Item "C:\fichier.txt"
Cette commande retourne une erreur car nous n'avons pas suffisamment de privilèges !
Dans ce cas, nous pouvons ajouter le préfixe "sudo" :
sudo New-Item "C:\fichier.txt"
Ah, l'erreur "Command not found" est retournée cette fois-ci ! Sudo ne parvient pas à interpréter notre commande.
Nous allons essayer d'une autre manière :
sudo powershell.exe -Command "New-Item 'C:\fichier.txt'"
Cette fois-ci, c'est passé ! La commande PowerShell a été exécutée avec des privilèges élevés.
Voici un récapitulatif en image :
Ici, le résultat est retourné dans la console car sudo est en mode Inline. Si le mode actif serait "forceNewWindow", sudo aurait exécuté une fenêtre PowerShell distincte pour jouer la commande à l'intérieur, et nous n'aurions pas eu le retour dans la console.
Vous pouvez aussi basculer d'une console non privilégiée à une console PowerShell privilégiée, en exécutant PowerShell via sudo :
# Windows PowerShell
sudo powershell.exe
# PowerShell
sudo pwsh.exe
La console bascule bien en mode "Administrateur" :
C. Changer le mode d'exécution de sudo
Bien que ce soit limité pour le moment, et qu'il n'y a pas de fichier de configuration comme sous Linux (/etc/sudoers), il y a quand même un jeu de commande associé à sudo pour Windows.
Par exemple, nous pouvons passer d'un mode d'exécution à un autre via la commande suivante :
sudo config --enable <nom du mode>
Le mode "normal" correspond au mode Inline. Ainsi, il suffit de choisir un mode, tout en faisant attention à la casse qui semble être prise en charge (ce qui est assez inhabituel sur Windows). Voici un exemple :
Pour savoir quel est le mode actif, il vous suffit d'utiliser cette commande :
sudo config
> Sudo is currently in Inline mode on this machine
IV. Conclusion
Voilà, ce tutoriel d'introduction à Sudo for Windows est terminé ! Nous verrons ce que Microsoft apporte comme évolution dans les prochains mois. Ce serait intéressant d'avoir un fichier de configuration similaire au fichier "/etc/sudoers" de Linux afin de pouvoir déléguer l'accès à certaines commandes ou certains programmes. Autrement dit, ceci permettrait d'autoriser un utilisateur à exécuter un seul programme en tant qu'administrateur.
on est encore loin du paramétragelinux mdr mais super initiative
Très intéressant mais la commande actuelle runas permet également de le faire. Peut-être qu’un comparatif entre ces deux options serait un bon complément à cet article.