Énoncé du problème: Quelle est la façon la plus élégante et la plus robuste de tester si la mintty
bash
session Cygwin est "Exécuter en tant qu'administrateur"?
Pourquoi, plus précisément? J'ai généralement plusieurs mintty
terminaux ouverts lorsque j'utilise Windows ( mintty
n'a pas d'onglets). Le plus gênant, c'est quand j'ai besoin de trouver une fenêtre de terminal que j'ai démarrée en cliquant avec le bouton droit sur "Exécuter en tant qu'administrateur" lorsque, par exemple, je veux exécuter ping
ou une autre procédure unique. Je voudrais indiquer visuellement la «exécution en tant qu'administrateur» de la session de terminal (en changeant la bash
variable d'invite du shell PS1
dans mon fichier de démarrage ~/.bashrc
).
Quelques solutions potentielles rapides:
- Je peux comparer la valeur de certaines variables environnementales. En regardant rapidement la
env
sortie, il existe de nombreuses différences. Il est cependant difficile de dire lequel est le plus fiable en termes de portabilité vers une autre machine Windows (exécutant peut-être une version différente de Windows). id
,id -Gn
affiche plus spécifiquement différents groupes s’ils sont exécutés en tant qu’administrateur. Dans ma machine Windows 7, j'ai des groupesAdministrators
etroot
ajoutés à la liste. Encore une fois, je ne suis pas sûr que ce soit portable.- Je pourrais essayer d'écrire un fichier dans un emplacement qui échouerait en tant qu'utilisateur normal. Mais je ne veux pas écrire de fichiers dans des endroits étranges - cela pourrait dans certains scénarios imaginés être potentiellement destructeur (par exemple, un support de stockage défaillant) et cela semble tout à fait inélégant à mon goût.
- Exécution d'un programme Windows qui indiquera par état de retour ou sortie si la commande est exécutée "en tant qu'administrateur". Le mieux serait certains avec un but analogue à celui de la
id(1)
commande UNIX (mais existant nativement dans Windows - ou Cygwin, mais sans traduction trop poussée des concepts du système Windows en concepts émulés POSIX).
Des suggestions meilleures ou plus élégantes? Peut-être que cygwin fournit un utilitaire de commande dédié à cet effet?
Mise à jour: doublon de 97% de /programming/4051883/batch-script-how-to-check-for-admin-rights/ - la différence est juste ici en utilisant bash
au lieu de (IMHO bizarre et archaïque) Windows cmd.exe
. Veuillez vérifier les réponses et les commentaires là-bas.
mintty
cela 1. s'exécute en tant qu'administrateur, 2. utilise un fichier de configuration différent avec des couleurs différentes paramètres et 3. utilise une autre icône. Si vous décrivez au grand public comment créer ceci, je vous donnerai un upvote (à moins que vous ne disiez dans votre réponse que cela ne peut pas être fait dans un script :-).
Foo
groupe d'utilisateurs si vous le souhaitez.
sudo
ce qui est requis même si vous exécutez en tant qu'utilisateur root.