Yo, el UAC y el malo.
Después de tiempo y tiempo sin tener control absoluto sobre mi PC (con Windows Vista),por fin he conseguido restaurar los permisos de las claves del registro y del sistema de archivos.
La cuestión es que en el trabajo se me proporcionó una máquina con Windows Vista pre-instalado, obviamente, lo primero que hice fue deshabilitar el UAC y otras cosillas insoportables.
Estuve funcionando perfectamente durante un tiempo, hasta que llegó la situación en la que tienes que instalar actualizaciones o actualizar software... what the hell? surgieron un montón de problemas de permisos sobre algunas claves del registro, eso a la hora de desinstalar cualquier software sin importancia.
Investigando investigando llegué a la conclusión de que los errores se debían a que Windows perdía los datos de las credenciales de algunas claves del registro, y cuando digo "perdía" lo digo en sentido literal. Si abrías el editor del registro y te intentabas posicionar en la clave en cuestión obtenías un bonito mensaje de error que te decía que no podías acceder a esa clave, What the hell? yo soy propietario y pertenezco al grupo de administradores... no entiendo nada.
En esos casos utilizaba psexec para poder acceder a esas claves, en la forma "psexec -s -i regedt32" y o mi sorpresa cuando en las propiedades no figuraba ni propietario ni permiso alguno, con lo que para solucionar el problema accedía a "Propiedades->Opciones avanzadas" y marcaba el check "Incluir los permisos heredables del objeto primario de este objeto".
Eso fue una solución temporal, el verdadero problema llegó al surgir la necesidad de instalar actualizaciones de seguridad críticas, ni parches para IE, ni Service Packs ni nada de nada, todos losintentos de actualización eran imposibles, el problema, los permisos.
Entonces descucrí SubInACL
SubInACL is a command-line tool that enables administrators to obtain security information about files, registry keys, and services, and transfer this information from user to user, from local or global group to group, and from domain to domain. For example, if a user has moved from one domain (DomainA) to another (DomainB), the administrator can replace DomainA\User with DomainB\User in the security information for the user's files. This gives the user access to the same files from the new domain.
Vale, situación, el problema está en el registro, así que re-asigno permisos a todas las claves raíz y subclaves para tener control total sobre todo el registro
cd /d "%programfiles%\Windows Resource Kits\Tools"
subinacl /subkeyreg HKEY_CLASSES_ROOT /grant=Administradores=f /grant=system=f /grant=tuusuario=f /setowner=Administradores
subinacl /keyreg HKEY_CLASSES_ROOT /grant=Administradores=f /grant=system=f /grant=tuusuario=f /setowner=Administradores
subinacl /subkeyreg HKEY_CURRENT_USER /grant=Administradores=f /grant=system=f /grant=restricted=r /grant=tuusuario=f /grant=restricted=r /setowner=Administradores
subinacl /keyreg HKEY_CURRENT_USER /grant=Administradores=f /grant=system=f /grant=restricted=r /grant=tuusuario=f /grant=restricted=r /setowner=Administradores
subinacl /subkeyreg HKEY_LOCAL_MACHINE /grant=Administradores=f /grant=system=f /grant=tuusuario=f /grant=everyone=r /setowner=Administradores
subinacl /keyreg HKEY_LOCAL_MACHINE /grant=Administradores=f /grant=system=f /grant=tuusuario=f /grant=everyone=r /setowner=Administradores
subinacl /subkeyreg HKEY_USERS /grant=Administradores=f /grant=system=f /grant=restricted=r /grant=tuusuario=f /grant=restricted=r /setowner=Administradores
subinacl /keyreg HKEY_USERS /grant=Administradores=f /grant=system=f /grant=restricted=r /grant=tuusuario=f /grant=restricted=r /setowner=Administradores
(OJITO: Reemplaza "tuusuario" con el nombre de usuario con el que iniciaste sesión, o con el que trabajas habitualmente)
reinicio pruebo a instalar Windows Vista SP2 y a ver que pasa, resultado: NEGATIVO, detalle del error "ACCESS DENIED" con un puto código de error genérico y sin mas detalle, adivina adivinanza. Pensé que los permisos del registro ya no debían ser el problema, así que probablemente sucediese lo mismo para el sistema de ficheros, algún fichero o directorio había perdido la información de las credenciales de usuarios y permisos, así que probé de nuevo con SubInACL
subinacl /subdirectories %windir%\*.* /grant=Administradores=f /grant=system=f
(si se quiere también se puede hacer sobre todo el disco con subinacl /subdirectories %SystemDrive% /grant=Administradores=f /grant=system=f)
Reinicio y a probar de nuevo... ¡olé! la instalación del SP2 terminó con éxito, y desde ese instante pude instalar el resto de actualizaciones y hasta el momento no he tenido ningún problema parecido a los anteriores.
La cuestión es que un usuario medio hubiese recurrido al formateo y nueva instalación para resolver al problema, pero ¿qué pasa con los descriptores de seguridad del registro y de los ficheros? ¿se pierden sin ninguna explicación si no tienes activado UAC? es patético.
A ver que pasa con W7.
Etiquetas: vista subinacl permisos
Compártenos: