Successivo >

News

Il sysadmin di famiglia e i giochi indisciplinati

Michele Costabile | 15 Febbraio 2008

Il PC di casa è animato da una copia di Windows XP Professional. Dato che il sistema consente di creare […]

Il comando CACLSIl PC di casa è animato da una copia di Windows XP Professional.
Dato che il sistema consente di creare più utenti, ognuno ha la sua login e, per sicurezza, i bambini hanno un account utente limitato.
Gli utenti con tipo di account limitato sono sottoposti a diverse restrizioni.
Per cominciare, possono vedere i propri file e quelli degli altri utenti limitati, ma non possono entrare nelle cartelle degli utenti con diritti di amministrazione, per esempio mamma e papà .
Un’altra limitazione importante è che non possono modificare la cartella programmi, quindi non possono installare, modificare o cancellare programmi, e non possono alterare certe zone del registro di sistema.
Senza bisogno di scomodare un programma esterno, come un antivirus, abbiamo una protezione offerta dal sistema operativo, cioè dal padrone assoluto della macchina, l’elemento più qualificato.

Fin qui tutto bene, non si tratta di una magia particolare, anzi è quello che avremmo per default su un sistema Unix, come Linux o MacOS, creando un utente senza diritti di amministrazione.
Con Windows, invece, incontriamo subito qualche problema. Il sistema operativo di Microsoft, infatti, è nato per accumulazioni successive a partire da MS-DOS, quindi tutti i concetti che riguardano la multiutenza sono stati calati sul sistema a posteriori.
Mentre in Unix esiste il concetto di cartella personale di un utente fino dal 1972, l’unica cartella in cui un utente normale può creare file liberamente (oltre alla directory per i file temporanei), in Windows è mancata dall’inizio una separazione netta fra file di sistema e file personali.
Con Windows 2000 le cose hanno iniziato a essere sistemate e finalmente in Vista abbiamo una cartella Users nella radice del disco di sistema.
I programmi, purtroppo, non sempre sono buoni cittadini del sistema. Può capitare che si tratti di applicazioni un po’ vecchie o di programmi scritti senza troppa attenzione e capita, per esempio, che file di preferenze siano scritti nella cartella di installazione dell’applicazione.
Naturalmente i giochi accumulati in casa, specie quelli meno recenti, sono i primi candidati.
Spesso un gioco crea un file per i punteggi o per memorizzare le preferenze proprio nella cartella di installazione.
Quando un utente senza diritti di amministrazione inizia una partita, abbiamo un errore.
Nel caso delle applicazioni scritte peggio, l’errore avviene subito dopo che il video è stato impostato a 640×480, quindi ci ritroviamo sbattuti sul desktop con un minestrone di icone inestricabile, senza nemmeno lo spazio per il menu Start.

La soluzione non è rinunciare a ogni forma di protezione e dare i diritti di amministrazione ai bambini, una scelta troppo pericolosa.
Ci vuole un piccolo intervento del sysadmin di casa, con una piccola magia dalla riga di comando, come si conviene a un amministratore.
Il comando da utilizzare è cacls, una utility per gestire i permessi dei file di Windows.

 

Ecco un esempio di uso:

cacls \programmi\ilmiogioco /e /t /g everyone:f

la cartella ilmiogioco e tutte le cartelle contenute diventano modificabili da ogni utente del sistema.
L’opzione /T indica che il comando va applicato a tutte le subdirectory, l’opzione /E specifica che vogliamo aggiungere il permesso accordare con /G in coda agli altri, senza sostituire completamente quelli esistenti.
Dal punto di vista di un amminstratore scrupoloso è certamente un lassismo eccesssivo: si potrebbe specificare in modo più rigido l’insieme dei file da aprire al controllo degli utenti che ne hanno bisogno.
Purtroppo, per fare le cose a puntino occorre tempo e pazienza per tracciare i file toccati da un’applicazione con una utility di analisi del sistema, come quella creata da Mark Russinovich di Sysinternals che adesso possiamo scaricare dal sito di Microsoft.
Il programma che ci serve è FileMon, nella sezione delle utility per la gestione del disco.
Se vogliamo sistematizzare un po’ le cose, prevedendo di dovere ripetere l’operazione, possiamo creare un file di comandi, per esempio chiamandolo aggiustapermessi.cmd e scrivere con il notepad

cacls $1 /e /t /g everyone:f

in questo modo basterà  lanciare dalla riga di comando

aggiustapermessi \programmi\ilmiogioco

per aprire la cartella di installazione ilmiogioco all’uso da parte di tutti gli utenti.

Ecco un esempio della lista di permessi associata a un gioco

C:\Documents and Settings\Michele>cacls "\Programmi\Agent Hugo"
C:\Programmi\Agent Hugo CLIPPER\Guido:(OI)(CI)F
BUILTIN\Users:R
BUILTIN\Users:(OI)(CI)(IO)(accesso speciale:)
GENERIC_READ
GENERIC_EXECUTE

BUILTIN\Power Users:C
BUILTIN\Power Users:(OI)(CI)(IO)C
BUILTIN\Administrators:F
BUILTIN\Administrators:(OI)(CI)(IO)F
NT AUTHORITY\SYSTEM:F
NT AUTHORITY\SYSTEM:(OI)(CI)(IO)F
CLIPPER\Attilia:F
CREATOR OWNER:(OI)(CI)(IO)F

Questa lista di permessi dimostra che non è vero che Windows non ha abbastanza meccanismi di sicurezza, la realtà  è che ne ha così tanti che pochi ci capiscono qualcosa e pochissimi ci mettono le mani.
E voi lettori, che soluzione avete adottato?