Salut à tous, c'est Florian d'IT Connect. Dans cette vidéo nous allons parler de Sudo for Windows
le nouveau projet open source que Microsoft a lancé il y a quelques heures et qui va nous
permettre de bénéficier de la commande Sudo sur Windows 11 et probablement par la suite sur Windows
Server 2025. Exécuter des commandes avec des privilèges élevés à partir d'une console
avec un utilisateur standard, voilà la promesse de la commande Sudo que l'on retrouve également
sur Linux et MacOS. C'est pour ça que je vais commencer cette vidéo par faire une
petite présentation de Sudo sur Linux pour que l'on puisse voir les différences avec Sudo sur
Windows 11 que j'ai pu tester. Dès maintenant, si vous faites partie du programme Windows Insider
vous pouvez télécharger la dernière build de Windows 11. C'est une build potentiellement
instable mais qui nous permet d'avoir un premier aperçu de la commande Sudo sur Windows. Microsoft
dans les prochains mois, va peaufiner tout ça et ajouter des nouvelles fonctionnalités
Alors avant de regarder la suite de la vidéo, pensez à vous abonner à la chaîne YouTube IT
Connect. Sous Linux, le paquet Sudo que l'on va retrouver sur Debian, Ubuntu et plein d'autres
distributions comme ici sur Kali Linux que j'ai pris pour faire cet exemple. Cette commande va
nous permettre, à partir d'un shell, de lancer une commande avec des privilèges élevés. Autrement
dit, on va pouvoir exécuter des commandes en tant que root sans être connecté directement avec le
compte root. Ici je suis avec le compte Kali et si je fais un Sudo apt-get update, je vais pouvoir
mettre à jour le cache des paquets sur ma machine. On voit bien que là ça a fonctionné alors que
pourtant cette opération nécessite des privilèges élevés, puisqu'on va mettre à jour le cache des
paquets. D'ailleurs si je refais la même commande mais directement comme ceci sans mettre le Sudo
on voit que j'ai une permission denied, donc une permission refusée. Je n'ai pas suffisamment de
privilèges pour faire cette opération. On voit bien la différence avec ou sans le Sudo, on n'exécute
la commande qui suit derrière avec le même niveau de privilèges. Pourquoi mon utilisateur Kali a le
droit d'élever ses privilèges en tant que root pour exécuter ses fameuses commandes ? Parce qu'il
est membre du groupe Sudo. Ensuite, quand on va faire un Sudo vis-Sudo, on va avoir un fichier
de configuration complet qui nous permet de dire, comme on le voit ici c'est la configuration par
défaut, root peut exécuter toutes les commandes avec des privilèges élevés sans restriction et
tous les membres du groupe Sudo peuvent eux aussi exécuter les commandes avec des privilèges élevés
à condition d'utiliser le préfixe Sudo devant chaque commande. Ce fichier de configuration est
intéressant puisqu'on peut même appliquer des restrictions. On va pouvoir dire tel utilisateur
peut élever ses privilèges mais que pour telle ou telle commande. On va pouvoir aller plus loin
Pour le moment, je n'ai pas trouvé moyen de le faire avec l'implémentation qu'il y a de Sudo
dans Windows 11. Voilà pour la présentation et le principe de fonctionnement basique de
Sudo sur Linux. Maintenant, on va voir à quoi ça ressemble sur Windows. Me voici sur une machine Windows 11 où j'ai bien la build 26052. Je vais aller dans les paramètres
et au niveau des paramètres, je vais rechercher directement Sudo. Je vais faire Sudo et là
j'ai bien un paramètre qui apparaît activer ou désactiver Sudo. Je suis redirigé vers l'espace
développeur et ici, je vais pouvoir activer Sudo. Voilà, c'est fait. Ensuite, on a ici trois modes
de fonctionnement. Dans une nouvelle fenêtre, c'est-à-dire que quand on va faire Sudo avec
une commande derrière, ça va ouvrir la commande en question, le programme en question dans une
nouvelle fenêtre. Avec l'entrée désactivée, c'est-à-dire que là, on va exécuter la commande
mais en lecture seule, on ne pourra pas interagir avec le résultat, avec ce qui a été lancé derrière
Et le Inline, c'est un petit peu comme sous Linux, c'est-à-dire que l'on va exécuter une commande et
on aura le résultat directement dans la console et la commande a été exécutée en mode privilégié
Je vais me mettre en mode Inline dès maintenant et après pour utiliser Sudo
tout ce qu'on va faire c'est lancer un terminal. Bien sûr, on lance un terminal sans le lancer
directement en administrateur, mais en tant qu'utilisateur lambda. Ensuite, dans cette console
si je fais la commande, je vais faire par exemple netstat-ab1, ce qui permet de lister les
connexions actives et de voir les applications associées. Je vais lancer cette commande et là
on me dit que l'opération demandée nécessite une élévation. Autrement dit, je n'ai pas assez de
droits dans ma console actuelle, parce que j'aurais dû la lancer en administrateur. Grâce à la commande
Sudo, que l'on va venir positionner juste devant, on va voir que ça va fonctionner. Là, on a une
élévation de privilèges où on fait appel à l'UAC, le processus classique dans Windows
l'UAC qui nous permet de faire l'élévation de privilèges. On fait oui et là, on voit que la
commande a bien été lancée et j'ai le résultat qui apparaît dans la console. On voit bien tout
de suite la différence entre avec ou sans la commande Sudo. On voit bien que le principe de
fonctionnement est similaire à ce que l'on peut avoir sur Linux et ce que je viens de vous montrer
juste avant. Ce qui va être intéressant de voir aussi, c'est que l'on va pouvoir lancer des
commandes PowerShell privilégiées. Par exemple, avec PowerShell, je pourrais essayer de créer ce
fichier fichier.txt à la racine de ces deux points, ce qui en principe n'est pas possible
sans être administrateur. Voilà, on voit bien le chemin d'accès au fichier est refusé. Je n'ai pas
assez de droits pour exécuter cette commande. Comment on va pouvoir faire ? On pourrait dire
qu'on va mettre Sudo devant, mais en fait ça ne va pas suffire, puisque Sudo ne comprend pas que
ça c'est du PowerShell. Ce qu'on va faire, c'est un PowerShell.exe-commande et là on va entourer
notre commande. On va juste faire attention à ça. Je vais envoyer la commande, j'ai bien
l'élévation de privilèges qui apparaît cette fois-ci et il va me créer mon fichier. Comme on
peut le voir, comme je suis en mode inline, j'ai eu le résultat directement dans la console en
dessous. J'ai élevé mes privilèges uniquement le temps de cette commande. Tout ce que je vais faire
derrière, et c'est là l'intérêt, c'est intéressant aussi en termes de sécurité, c'est que tout ce que
je vais faire ensuite, c'est avec mon utilisateur standard. J'ai vraiment élevé mes privilèges le
temps d'une commande. C'est intéressant. Je suis en mode inline, on a vu qu'on pouvait changer le
mode dans les paramètres de Windows. On va pouvoir aussi faire la commande sudo juste comme
ça, et on voit qu'on a différentes options. Tout d'abord, si on fait un sudo config, on voit bien
qu'on est en mode inline. Le mode de sudo, on peut le changer soit dans l'interface graphique
ou soit directement ici dans la console. Mais pour pouvoir le changer, de toute façon
il faut être administrateur. Je ne pourrais pas le changer dans cette commande-là. Si j'essaie
de le faire, la commande, c'est config-enable normal. Le normal correspond déjà au mode inline
il me dit bien que je dois exécuter cette commande en tant qu'administrateur. Du coup
ce que je vais devoir faire ici, c'est copier-coller la commande, lancer Terminal en tant qu'administrateur
pour venir modifier le type de fonctionnement de la commande sudo. Nous avons par exemple le type
force new Windows, qui va nous permettre d'exécuter le résultat dans une autre fenêtre. Si je supprime
le fichier que j'ai créé tout à l'heure, qui est ici, que je relance la même commande de création
d'un fichier via PowerShell, cette commande-là, on va voir que cette fois-ci, ça va se comporter
de manière différente. J'ai une console PowerShell qui s'ouvre de manière indépendante pour lancer
ma commande dedans et elle se ferme. Je n'ai pas le résultat ici, par contre j'ai toujours mon
fichier qui est arrivé là. L'autre mode, ça consisterait à passer ici sur le mode bridé
où on ne va pas pouvoir interagir avec la console qui va être lancée. C'est le mode Disable Input
alors visiblement il faut faire attention à la casse. Voilà, donc ça c'est le dernier mode
qui est disponible. Je vais me remettre en mode normal pour le coup. Ce qui peut être intéressant
aussi, c'est que quand on est ici dans une console qui n'est pas privilégiée, on peut très bien faire
un sudo powershell.exe ou pwsh.exe et là on va passer dans une console PowerShell qui, pour le
coup, a des privilèges élevés. On voit bien ici que maintenant je suis passé en mode administrateur
donc je suis passé d'une console non administrateur à une console administrateur en élevant mes
privilèges directement pour toute la fenêtre en cours grâce à sudo powershell.exe. Après
Microsoft travaille également sur un script qui s'appelle sudo.ps1 pour nous faciliter l'utilisation
de sudo avec PowerShell, donc à voir comment tout ça va évoluer. Cette introduction à la commande
sudo sur Windows 11 touche à sa fin. Il faudra suivre ça dans les prochaines semaines, dans les
prochains mois, voir ce que Microsoft peut ajouter en termes de fonctionnalités pour améliorer
l'intégration au sein du système avec peut-être notamment un fichier de configuration qui nous
permettrait de déléguer des droits de manière très précise au niveau d'une machine. Ça pourrait
être intéressant, au même titre que ce que l'on peut faire sur Linux avec le fichier de configuration
sudoerse que je vous ai montré tout à l'heure. N'hésitez pas à liker, à partager cette vidéo
et je vous dis à très vite ! Ciao