Venant d'un arrière-plan Linux / Unix, je ne comprends pas comment fonctionne l'UAC sous Windows.
J'ai entendu dire que l'UAC fonctionne comme sudo
. Mon application Linux peut faire un autre travail avant d'appeler sudo
.
Mais dans Windows, il semble que toutes les applications qui nécessitent une confirmation UAC doivent avoir UAC accordée avant de faire un travail réel! Je lance une application, il me demande une confirmation UAC et je la refuse - l'application ne fonctionnera tout simplement pas.
L'UAC fonctionne-t-il ainsi?
sudo su
./run_app
Plutôt que:
./do_work1
sudo su
./du_work2
Merci pour la bonne réponse de tout le monde!
Sous Windows, l'invite UAC est déclenchée lorsque vous essayez d'exécuter un exécutable marqué comme nécessitant une élévation dans un manifeste incorporé dans le fichier et que vous n'exécutez pas déjà avec élévation. Le comportement ressemble plus à setuid qu'à su dans la mesure où c'est le fichier, pas la commande qui indique au système d'exploitation que l'exécutable doit être exécuté avec des informations d'identification différentes.
la source
C'est parce qu'ils sont différents, simples et simples. L'UAC aurait pu être implémenté comme ça
sudo
, mais ce n'était pas le cas.Vous pouvez le considérer comme une analogie avec la protection du réseau.
sudo
c'est comme lorsqu'un programme demande un accès au réseau et que votre pare-feu vous invite à l'accorder ou non. Vous pouvez dire oui et le programme ouvrira le socket, ou vous pouvez dire non et il se plaindra d'un manque de connexion et fera tout ce qu'il peut faire sans accès au réseau (certains programmes mal conçus se bloquent en fait). Par exemple:UAC ressemble plus à l'avertissement que vous obtenez lorsque vous essayez d'ouvrir un fichier qui a été téléchargé sur un volume NTFS. Windows vous avertit des problèmes potentiels et vous demande si vous souhaitez l'exécuter (pas du tout) ou non. C'est une opération tout ou rien; vous ne pouvez pas choisir de ne faire confiance qu'à une partie du programme et pas aux autres. Par exemple:
Vous devez vous rappeler que contrairement à Linux qui est davantage orienté vers les utilisateurs et les applications avancés, Windows est conçu pour être convivial pour le plus grand nombre d'utilisateurs possible, donc la simplification de la sécurité est primordiale. De plus, en raison de sa grande surface d'exposition, c'est une cible fréquente pour les logiciels malveillants, il est donc plus logique de faire entièrement confiance à un programme ou pas du tout.
la source
Je ne connais pas bien l'architecture linux, alors pardonnez-moi si je fais une erreur, mais ma compréhension est que Linux et Windows ne sont pas du tout différents à cet égard ...
Un exemple ... Un script de copie qui fait une copie d'un fichier normal vers un emplacement non protégé et un fichier essayant de copier vers un emplacement protégé, puis une copie régulière à nouveau.
D'après ce que je comprends, sous Linux, une application s'exécute simplement et essaie de faire une action - si elle n'a pas l'autorisation de faire cette action - elle échouera, mais continuera. Dans l'exemple ci-dessus - lors de l'exécution du script de copie sous Linux en tant qu'utilisateur normal, il copiera le fichier normal, donnera un problème d'autorisation et copiera le deuxième fichier - s'il est exécuté avec sudo, il fera les trois copies.
Windows est exactement le même à cet égard - l'exécution du script en tant qu'utilisateur non administrateur en copiera simplement un, autorisera le second et copiera le suivant. Avec l'UAC, il fonctionnera tous les trois.
La différence est que de nombreuses applications Windows ont simplement un ensemble de configuration afin qu'elles demandent l'élévation UAC par défaut et quittent / échouent si elles ne l'ont pas .... mais, cela devient beaucoup moins.
la source