¿Cómo evitan los instaladores los permisos en Windows 10?

1

Noté que mientras usaba pippara instalar paquetes globalmente, la instalación falló con un error de permiso insuficiente. Cuando se ejecutaba pipcomo administrador, el problema se solucionó y pippude escribir en mi Program Filesdirectorio. Se produce el mismo comportamiento al editar archivos de texto Program Files: solo funciona si ejecuto el editor de texto como administrador.

Sin embargo, hasta donde sé, nunca he ejecutado ningún programa instalador como administrador, sin embargo, todos escribieron en mi Program Filesdirectorio sin ningún tipo de aviso. ¿Qué permite a estos instaladores eludir el control de seguridad?

(Tengo UAC deshabilitado, pero si esa es la causa, ¿por qué no pueden pipy otros programas normales como los editores de texto escriben en el Program Filesdirectorio?)

Andrew Sun
fuente
Esta es una característica de seguridad. Los permisos en las carpetas del sistema no permiten modificarlo sin permisos elevados. Si vuelve a activar UAC, los instaladores también abrirán una ventana de confirmación. M $ asume que si el nombre del archivo contiene una palabra Setup, debería ejecutarse como administrador.
Alex
deslizando hacia abajo, ya no desactiva UAC desde win8, porque las aplicaciones de la tienda requieren un UAC activado.
magicandre1981

Respuestas:

2

Cuando el control deslizante UAC esté completamente hacia abajo, los programas que soliciten elevación se aprobarán automáticamente. Eso es distinto de todos los programas que se elevan todo el tiempo (que es efectivamente lo que obtienes si desactivas completamente UAC , lo que rompería las cosas).

Los programas pueden especificar su comportamiento de elevación en su manifiesto . La mayoría de los programas se ejecutan asInvoker, al mismo nivel que el proceso de llamada. Algunos, como el Editor del Registro y MMC, piden que se ejecute con los highestAvailablepermisos, por lo que con UAC activado, los administradores obtendrían un mensaje de elevación, pero los usuarios normales no. Otros, como la mayoría de los programas de instalación, son completamente inútiles sin elevación y por lo tanto requireAdministrator. Es por eso que los programas de instalación se elevan automáticamente para usted. Evidentemente, pipno se manifiesta como requiriendo elevación. "No lo has hecho porque no lo pides".

Demostración de bonificación: una manera de comenzar un programa de elevada desde la línea de comandos es PowerShell de Start-Processcon -Verb runas, como este:

Start-Process cmd -Verb runas

Con UAC activado, la ejecución le dará un mensaje de elevación para el símbolo del sistema. Con UAC reducido al mínimo permitido por la IU, obtienes un símbolo del sistema elevado sin diálogo de UAC. (Puede ver la diferencia en la barra de título de la ventana de comandos). Si se -Verb runashubiera dejado, habría recibido un símbolo del sistema normal.

Ben N
fuente
Ah, no sabía que había una diferencia entre "todo el camino hacia abajo" y "completamente apagado" (IIRC eran lo mismo en Win7). ¡Gracias!
Andrew Sun
@ AndrewSun Te expliqué por qué esta es una diferencia en mi comentario
magicandre1981