Sudo sous Windows : comment devenir simplement administrateur en ligne de commandes

Sudo sous Windows : comment devenir simplement administrateur en ligne de commandes

Certaines commandes pratiques sous Linux n'ont pas d'équivalents aussi simples sous Windows. Sudo est un bon exemple même si des alternatives existent, permettant de se faciliter la vie. 

Dans les systèmes d'exploitation modernes, plusieurs comptes peuvent être utilisés, chacun avec des droits propres. Ainsi, il peut y avoir des utilisateurs simples, d'autres qui ont accès à certains dossiers/fichiers, parfois en lecture et/ou en écriture, peuvent utiliser ou non telle application, etc. Puis il y a l'administrateur, ou root dans les systèmes UNIX.

Il a en général accès à tout et peut tout faire, notamment installer de nouvelles applications, mettre à jour le système, accéder aux données de configuration, etc. Selon les OS, l'accès à ce compte est géré différemment.

Administrateur sous Linux/Windows : ce n'est pas toujours si différent

Sous Windows par exemple, l'utilisateur principal est en général l'administrateur. Il peut ainsi décider de lancer des applications de manière classique ou avec les droits administrateur, via un clic droit sur l'icône de l'application.

Dans de nombreuses distributions Linux, on trouve une mécanique similaire. Il est ainsi possible de ne pas avoir de compte root actif au profit d'utilisateurs classiques pouvant endosser ce rôle de manière temporaire. Ce qui permet d'éviter une connexion constante à un compte ayant tous les droits, avec les risques que cela comporte.

Dans la pratique, cela passe par l'exécution de la commande sudo (Substitute User Do). Par exemple sous Debian, on peut effectuer la recherche d'un paquet comme un utilisateur classique, mais l'installer avec les droits administrateur :

apt search vlc
sudo apt install vlc

Sous Windows, il n'y a pas d'équivalent si direct en ligne de commandes. Des alternatives doivent donc être utilisées.

Sudo sous Windows : comment faire ?

Car les droits administrateurs ne sont pas toujours nécessaires. On a donc plutôt tendance à utiliser l'invite de commandes de manière classique. Lorsqu'ils le deviennent, on doit lancer une nouvelle fenêtre avec un clic droit pour les activer, un clic de confirmation étant nécessaire (pour l'UAC). Une démarche fastidieuse.

On peut alors opter pour une commande permettant elle aussi d'effectuer une action avec un autre compte, comme celui d'un administrateur. Elle a l'avantage de fonctionner depuis n'importe quel compte du système, mais la syntaxe est un peu longue à retenir. On pourra alors passer par un alias pour se simplifier la vie.

runas /noprofile /user:Utilisateur_Administrateur "commande_à_exécuter"

Avec le temps, certains ont travaillé à de petites applications complémentaires comme Elevate ou des adaptations de sudopour Windows qui ne sont plus toujours maintenues (voir ici ou ). D'autres ont planché sur une solution multiplateforme comme exec-root de Syed Jafri, qui s'installe comme un module NPM ou Yarn à intégrer à vos applications. 

Une solution pratique est le paquet de Jan Hebnes qui est assez complet et s'installe facilement via Chocolatey. On peut en effet l'utiliser sous différentes formes, que ce soit pour lancer une commande non pas en se substituant à un autre compte, mais en endossant les droits administrateur :

sudo commande

Le faire en restant dans le dossier courant, avec ou sans la fenêtre de contexte :

sudo . commande
sudo _ commande

Lire la suite