Sudo pour Windows

Sudo pour Windows est une nouvelle façon pour les utilisateurs d’exécuter des commandes avec élévation de privilèges (en tant qu’administrateur) directement à partir d’une session de console sans élévation de privilèges sur Windows.

Lisez l’annonce, qui comprend une vidéo de démonstration et une présentation approfondie du fonctionnement de Sudo pour Windows.

Prérequis

Vous devez exécuter Windows 11 Insider Preview Build 26052 ou une version ultérieure pour utiliser la commande Sudo pour Windows. (Rechercher des mises à jour de Windows). Rejoindre le programme Windows Insider.

Remarque

Sudo pour Windows n’est pas encore disponible pour Windows 10, mais pourrait l’être prochainement.

Comment activer Sudo pour Windows

Pour activer Sudo pour Windows, ouvrez Settings > For Developers et définissez Activer sudo sur Activé.

Enable Sudo

Avertissement

Lorsqu’il est activé dans certaines configurations, Sudo pour Windows peut être utilisé comme vecteur d’escalade des privilèges potentiel. Vous devez vous assurer de connaître les considérations relatives à la sécurité avant d’activer de la commande sudo sur votre ordinateur.

Comment configurer Sudo pour Windows

Sudo pour Windows prend actuellement en charge trois options de configuration. La configuration peut être définie à partir du menu Settings > For Developers ou par programmation à l’aide de la ligne de commande. Les options de configuration comprennent ce qui suit :

  • Dans une nouvelle fenêtre (forceNewWindow) : l’option de configuration forceNewWindow est celle par défaut de Sudo pour Windows. Utilisez sudo dans cette configuration pour exécuter la commande dans une nouvelle fenêtre. Son comportement est similaire à celui de la commande runas /user:admin.

  • Entrée fermée (disableInput) : l’option de configuration disableInput exécute le processus avec élévation de privilèges dans la fenêtre active, mais avec le descripteur d’entrée fermé. Cela implique que le processus avec élévation de privilèges ne pourra pas recevoir d’entrée à partir de la fenêtre de console actuelle. Cela peut s’avérer utile lorsque vous souhaitez exécuter une commande en tant qu’administrateur, mais que vous ne souhaitez pas permettre à la commande de recevoir une entrée depuis la fenêtre de console actuelle. Cette option de configuration présente certains avantages de l’option de configuration inline tout en atténuant certains des risques de sécurité qui y sont associés..

  • Inline (normal) : l’option de configuration normal est celle qui ressemble le plus au comportement de sudo sur d’autres systèmes d’exploitation. Elle exécute le processus avec élévation de privilèges dans la fenêtre active et ce dernier peut recevoir une entrée depuis la session de console active. Cela peut s’avérer utile lorsque vous souhaitez exécuter une commande en tant qu’administrateur et que vous souhaitez permettre à la commande de recevoir une entrée depuis la fenêtre de console actuelle. Cette option de configuration est la plus pratique mais vous devez uniquement la choisir si vous connaissez les risques de sécurité qui y sont associés.

Vous pouvez sélectionner l’une de ces configurations dans le menu Settings > For Developers ou modifier la configuration par programmation, dans une ligne de commande avec élévation de privilèges (console d’administration), à l’aide de :

  • sudo config --enable <configuration_option>

Mettre à jour <configuration_option> vers forceNewWindow, disableInput ou normal.

Comment utiliser Sudo pour Windows

Pour utiliser Sudo pour Windows, il vous suffit d’ajouter sudo à la commande que vous souhaitez exécuter en tant qu’administrateur. Par exemple, pour exécuter netstat -ab en tant qu’administrateur, vous devez exécuter sudo netstat -ab dans votre fenêtre de console.

Étant donné que sudo élève le processus ciblé pour qu’il s’exécute avec des autorisations de niveau administrateur, une invite s’ouvre pour vous demander de vérifier que vous voulez continuer.

Security Considerations

Il existe des risques associés à l’exécution de sudo dans les configuration Entrée fermée (inputClosed) ou Inline (normal). Des processus malveillants peuvent tenter de piloter le processus avec élévation de privilèges au moyen de la connexion établie par le processus sudo.exe sans élévation de privilèges et le processus sudo.exe avec élévation de privilèges.

L’option de configuration inputClosed atténue les risques en fermant le descripteur d’entrée. La déconnexion du descripteur d’entrée depuis la fenêtre de console actuelle implique que les processus sans élévation de privilèges ne peuvent pas envoyer d’entrée au processus avec élévation de privilèges.

L’option de configuration inline exécute le processus avec élévation de privilèges dans la fenêtre actuelle et ce dernier est en mesure de recevoir une entrée depuis la session de console active. Un processus sans élévation de privilèges peut envoyer une entrée au processus avec élévation de privilèges dans les mêmes fenêtres de console ou obtenir des informations à partir de la sortie dans les fenêtres actuelles de cette configuration.

FAQ

En quoi Sudo pour Windows est-il différent de la commande runas existante ?

La commande sudo permet d’élever rapidement une commande au rang d’administrateur à partir d’un contexte de ligne de commande sans élévation de privilèges. De plus, certains utilisateurs utilisant d’autres systèmes d’exploitation la connaissent déjà. La commande runas permet d’exécuter des programmes en tant qu’utilisateur, y compris en tant qu’administrateur si vous le souhaitez. À ce stade, la commande sudo sur Windows ne prend pas en charge l’exécution de programmes au nom d’autres utilisateurs. Les autres différences clés entre sudo et runas sont notamment les suivantes :

  • runas vous permet d’exécuter des programmes au nom d’autres utilisateurs, y compris mais pas uniquement en tant qu’administrateur. Cette fonctionnalité figure sur la feuille de route de la commande sudo, mais n’existe pas encore.

  • sudo vous permet d’élever rapidement un processus (en tant qu’administrateur) :

    • Vous pouvez choisir de le faire dans une nouvelle fenêtre, qui ressemble au flux d’administrateur runas.
    • Vous pouvez décider de connecter le processus avec élévation de privilèges à la fenêtre de console actuelle avec les options de configuration disableInput et normal. Cette opération n’est pas prise en charge avec runas.
  • runas peut inviter les utilisateurs à saisir un mot de passe dans la ligne de commande.

  • sudo peut uniquement être élevé via la fonction de sécurité Contrôle de compte d’utilisateur (UAC) conçue pour protéger le système d’exploitation contre les modifications non autorisées à l’aide d’une invite de vérification.

Vous devez prendre en compte votre cas d’utilisation particulier et planifier l’utilisation de la commande qui répond le mieux à vos besoins. Vous devez également tenir compte des implications en termes de sécurité de l’exécution de sudo dans les modes inputClosed et normal. L’option de configuration forceNewWindow par défaut est recommandée à moins que vous ne soyez familier et à l’aise avec les risques associés aux autres configurations sudo.

Référentiel open source Sudo pour Windows

Sudo for Windows est un logiciel open source qui accepte vos contributions et vos commentaires. Vous trouverez le code source pour Sudo pour Windows sur GitHub.

Fonctionnalité supplémentaire

Si vous recherchez des fonctionnalités supplémentaires que Sudo pour Windows ne fournit pas, consultez le gsudo de Gerardo Grignoli, qui offre un certain nombre de fonctionnalités et d’options de configuration supplémentaires ou consultez d’autres solutions proposées par la communauté.