Soluzioni tecniche

Il SubInACL e il ripristino delle autorizzazioni

18 Ottobre 2011

Ti sarà capitato che certe operazioni di Windows, come l'installazione/rimozione di applicazioni, non vadano a buon fine e generino un errore di sistema 5: "Accesso negato" su un determinato file o su una chiave di registro.


Errore di sistema 5 accesso negato
 

Navigando fino alla voce incriminata, ti sarai accorto allora che le autorizzazioni di accesso a essa erano compromesse e nemmeno accedendo come amministratore o elevando i diritti a livello di Local System era possibile ripristinarle.
 

Che fare in questi casi?

Un valido aiuto può venire dall' utility SubInACL.
Questo tool nasce in origine per forzare la migrazione delle credenziali di accesso da un dominio all’altro (per esempio nel caso in cui si voglia che NuovoDominioUtente acceda agli stessi file e cartelle di VecchioDominioUtente).
Tuttavia può essere utilizzato anche per forzare il reset dei diritti di default su file, cartelle e aree del registro.
Vediamo come.

 

L'utility SubInACL

Una volta installato, il tool si troverà in C:ProgrammiWindows Resource KitToolsSubInACL.exe.
Il comando ha molti parametri, ma quelli che ci interessano sono:

  • /keyreg e /subkeyreg, per ripristinare i diritti di accesso di una chiave o sottochiave di registro;

  • /subdirectories, per gestire gli accessi ad aree del file system;

  • /setowner, per impostare l’owner di file o di chiavi di registro;

  • /grant, per assegnare i diritti a un determinato utente.


Analizziamo per esempio la sintassi per resettare i diritti della cartella predefinita di installazione delle applicazioni a tutte le sottocartelle:

subinacl /subdirectories %programfiles% /grant=administrators=f /grant=system=f /grant=users=e >> %temp%subinacl_output.txt

Il flag /subdirectories fa in modo che il comando venga eseguito in cascata sulla cartella di partenza (per identificare la quale, usiamo la variabile d’ambiente %programfiles% in modo da non doverci preoccupare di versioni e lingue differenti) e sulle sottocartelle.
Il flag /grant identifica l’account che vogliamo gestire e il livello di accesso che si intende garantire (entrambi preceduti da =).
I livelli di accesso più utilizzati sono: 

  • F, per accesso completo;

  • E, per accesso in lettura ed esecuzione;

  • R, per accesso in sola lettura.


Un altro esempio è il listato di uno script che lancia SubInACL per resettare i permessi sulle cartelle di sistema e sulle principali sezioni (hive) di registro di Windows.

A questo link trovi il codice da copiare: fai tasto destro->Salva destinazione con nome per scaricare il file .txt

Per utilizzarlo, è necessario cambiarne l’estensione a .cmd.
Va poi eseguito, eventualmente elevando i diritti per sistemi operativi Windows Vista o superiore.
In caso di sistemi operativi a 64 bit, l’utility si troverà in %programfiles(x86)%Windows Resource KitsTools.
Inoltre sarà necessario aggiungere allo script una nuova riga:

subinacl /subdirectories %programfiles(x86)% /grant=administrators=f /grant=system=f /grant=users=e >> %temp%subinacl_output.txt

E tu, hai già avuto a che fare con questa utility? Raccontaci la tua esperienza.

Autore
Furio Borsi
Si appassiona al mondo digitale fin da bambino, con il glorioso Commodore 64, sul quale si diverte a scrivere semplici programmi in Basic e modificare giochi. Nel 1990 riceve in regalo il suo primo PC (i386), seguito un paio d'anni dopo da un i486dx. In questi anni affina le sue attitudini al problem solving, scassando hardware e software e divertendosi a rimetterlo a posto. ;) Diventa così "quello che se ne capisce" per i suoi familiari e amici, arrivando a collaborare con alcuni studi professionali per la gestione del parco macchine e dei server Windows. Finito il liceo, studia DAMS con indirizzo multimediale a Bologna e Imperia. Nel 2002, dopo un anno sabbatico a Londra, lavora come sviluppatore junior in un'azienda che produce software per database territoriali in ambito Pubblica Amministrazione. In questo periodo si avvicina con passione a problematiche sistemistiche e di network management su reti estese. Nel 2007 entra a far parte dello staff di Achab, per cui si occupa di formazione e supporto, in particolare riguardo a Kaseya, e gestione del parco macchine e della rete.
Commenti (0)

Lascia un commento

Il tuo indirizzo e-mail non verrà pubblicato, lo utilizzeremo solamente per inviarti la notifica della pubblicazione del tuo commento. Ti informiamo che tutti i commenti sono soggetti a moderazione da parte del nostro staff.