El UAC (User Account Control), un buen amigo

Antes de empezar a bloguear acerca del UAC (esa, en principio, pantalla oscura que me paraliza la PC cuando quiero hacer algo y me pide que le diga Aceptar o Cancelar para poder seguir) , voy a explicar como sacarlo de todas las formas posibles. Pero antes de tentarte a sacarlo termina de leer el post.

Dehabiltando UAC

Metodo 1 - cirugia sin anestesia:

Regedit

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\EnableLUA REG_DWORD 0

Metodo 2 cirugia con anestesia:

Ejecutar:

C:\Windows\System32\cmd.exe /k %windir%\System32\reg.exe ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v EnableLUA /t REG_DWORD /d 0 /f

Metodo 3 - Homeopatico:

Ejecutar MSConfig , aleta Herramientas, Opcion Deshabilitar UAC, Boton Iniciar.

Metodo 4 - Cirugia Laser

Ejecutar gpedit.msc y deshabilitar Control de cuentas de usuario: cambiar al escritorio seguro cuando se pida confirmación de elevación

Entendiendo UAC

Ahora bien, por que habria que pasar por alto las indicaciones anteriores y mantener UAC, sencillamente por que es mucho mas lo que tiene para darte que para sacarte. Veamos la historia pre-UAC.

Con las versiones anteriores de Windows basicamente habian dos chances: tener un modelo de seguridad (NT, 2000, XP) o no tenerlo (3.1, 3.11, 95, 98, ME).

Quienes saltaron de 9x, Me a 2000 o XP se encontraton con un nuevo tema, tener que iniciar sesion y disponer o no de diferentes privilegios o permisos  para actuar sobre el Sistema Operativo.

Estadisticamente hablando la gran mayoria opto ante esa encrucijada por el camino menos deseable, privilegiar la funcionalidad por sobre la seguridad al grito de: "Sacame todo eso, yo quiero poder hacer todo lo que quiera sobre mi maquina sin que me de un solo Acceso Denegado!!", conclusion: todos corrian sus sesiones mundanas como administrador local del equipo.

Ahora bien a partir de este instante podriamos ver la pelicula desde dos butacas distintas, la del usuario devenido en administrador local (sin merecerlo) y la del propio sistema operativo (victima de tales "administradores)".

Supongamos una dulce e inocente usuaria chateando con sus amigas y/o recibiendo algun correo electronico donde le ofrecen un archivo que promete mostrar a Brad Pitt como Dios lo trajo al mundo (aplica esto tambien a algun musculoso muchacho queriendo observar a Pata Villanueva) y ansiosa/o por ver semejante espactaculo, termina instalando, borrando, modificando de/en el sistema operativo solo Dios y el que lo hizo sabe.

Terminada esa pelicula hacemos un careo imaginario entre la/el usuaria/o y el sistema operativo (este todavia no opina pero ya falta poco) y obtendriamos una cosa asi.

Usuaria/o: Yo no toque nada, no instale ni borre nada!
S.O.: La/El Usuaria/o es administrador y me dio la clara indicacion de modificar la registry e instalar tal ejecutable en determinada parte del disco, si es administrador y me dice: hacelo! yo, lo hago!
Usuaria/o: No señor
S.O.: Si señor
Usuaria/o: No señor
S.O.: Si señor

Todo esto ocurre mientras quien hizo el programa que prometia doncellas cautivantes de destornilla de risa viendo dantesco especatuco facturando una nueva PC para su ya extendia red de Grid Computing.

Donde estuvo el problema? obtener funcionalidad plena desestimando inconscientemente cualquier atisbo de seguridad. El Sistema Operativo haciendo caso omiso de las ordenes dadas por un contexto de seguridad de administrador que todo lo puede, suponiendo que quien ostenta tal credencial sabe lo que esta haciendo... craso error!

Entonces es UAC quien viene a cuidar la integridad del Sistema Operativo haciendo lo obvio, dejar de suponer que el usuario aun cuando ostente las credenciales de administrador, sabe (todo el tiempo) lo que esta haciendo. Simple pero sencillo!

UAC trata a todos los usuarios (administrador incluido) como usuarios normales sin privilegios especiales en una primera instancia. Cada vez que alguien intente modificar algo en las secciones protegidas por permisos del sistema operativo, UAC interceptara el pedido y analizara si: el usuario tiene privilegios/permisos (parece lo mismo pero no lo son) para hacerlos o no.

Veamos un ejemplo de cambio de password hecho por un usuario con privilegios para hacerlo.

Sin embargo el mismo usuario al correr un cmd usando la caracteristica de "ejecutar como administrador" la cosa cambia.

Notese el caption del CMD que indica claramente que este se corre bajo el contexto de administrador

Si tiene provilegios/permisos sacara el foco de todo el sistema operativo (oscureciendo la pantalla)  y dejando en foco solo la posibilida de que el usuario y su propia consciencia acepten o cancelen tal intento. Es asi como entonces quien el usuario de manera consciente tomara la decision final de avanzar o no,

Si no se tiene privilegios/permisos sacara el foco de todo el sistema operativo (oscureciendo la pantalla) y mostrar una pantalla donde debera introducirse un usuario y contraseña que si los tengan para poder continuar (un runas automatico).

Es asi entonces como el sistema operativo deja de suponer y es el usuario quien toma la decision final. Si el usuario entonces al tratar de ver a Pata Villanueva en sugestivas formas le aparece una advertencia de modificacion de registry, podra analizar: "Es necesario modificar la registry para ver a Patita?",  No sera este un costo un poco alto?

Como convivir con UAC y no palmar en el intento

Es verdad que convivir con UAC puede volverse un poco molesto si uno no esta acostumbrado a el y sabe como manejarlo pero no es mas dificil que convivir con tres mujeres en un mismo hogar teniendo un solo baño.

UAC ya de por si evitara cambios en el sistema operativo intentadas subrepticiamente, lo que lo convierte en algo muy valioso. Pero se torna un poco molesto, lo reconozco, si no se lo comprende o conoce bien.

Recordemos ademas que UAC solo trabaja cuando queremos tocar partes claves del sistema operativo, lo que se traduce en un porcetaje menor del total del tiempo frente a una PC.

Otro detalle a tener en cuenta es que los procesos hijos dependientes de un proceso ya habilitado por UAC heredan ese permiso, con lo cual, mi recomendacion es abrir una consola de comandos con rightclick y "ejecutar como adminstrador" o Ctrl+Shift+Enter, Shortcut poco conocido para trabajar con UAC ;), y desde dentro de esa consola ejecutar todas las herramientas administrativas que necesitemos sin ningun tipo de preguntas o intercepciones.

Las mas usadas seran obviamente: control para Panel de Control, regedit para edicion del registro, mmc para Microsoft Management Console y dentro de eso infinidad de snap-ins, etc

Conclusion

UAC es muy valioso para dejarlo ir, Solo necesita una minima reeducacion del usuario para poder convivir en armonia, olvidarse de ejecutar con Enter como antes, si no con Ctrl+Shift+Enter y/o lo que es mejor aun tener un cmd como Administrador y desde ahi lanzar todas las herramientas administrativas que necesitemos.