6.4. User Private Group
Red Hat Enterprise Linux utilizza uno schema user private group (UPG), che semplifica l'utilizzo dei gruppi UNIX.
Un UPG viene creato ogni qualvolta viene aggiunto un nuovo utente al sistema. Un UPG possiede lo stesso nome dell'utente per il quale � stato creato, e solo quel particolare utente � un membro UPG.
Gli UPG garantiscono una impostazione sicura dei permessi di default per file o directory appena create, i quali sono in grado di abilitare sia l'utente che il gruppo di quell'utente ad eseguire modifiche ai file o alle directory in questione.
L'impostazione che determina i permessi applicati ai nuovi file o directory viene chiamata umask, essa viene configurata nel file /etc/bashrc. Tradizionalmente, sui sistemi UNIX la umask � 022, tale impostazione permette solo all'utente che ha creato il file o la directory, di eseguire le modifiche. Con questo schema tutti gli altri utenti, incluso i membri dell'utente che ha creato il gruppo, non sono abilitati ad eseguire alcuna modifica. Tuttavia, con lo schema UPG, questa "protezione di gruppo" non � necessaria, in quanto ogni utente possiede il proprio gruppo privato.
6.4.1. Directory di gruppo
Molte organizzazioni IT preferiscono la creazione di un gruppo per ogni progetto principale, assegnando successivamente un certo numero di persone, atte all'accesso del suddetto progetto se necessario. Con questo schema tradizionale, la gestione dei file si � rivelata complessa; quando un utente crea un file, quest'ultimo viene associato al gruppo primario a cui appartiene l'utente. Quando un singolo utente lavora su pi� progetti, risulta essere difficile associare i file corretti con il gruppo appropriato. Con lo schema UPG, invece, i gruppi vengono assegnati automaticamente ai file creati all'interno di una directory con il bit setgid impostato. Il bit setgid semplifica notevolmente la gestione dei progetti di gruppo che condividono una directory comune, in quanto qualsiasi file creato da un utente all'interno della directory, viene posseduto dal gruppo che detiene la directory.
Supponiamo, per esempio, che un gruppo di persone lavora sui file nella directory /usr/lib/emacs/site-lisp/. Alcune persone possono modificare la directory ma ovviamente non tutti i componenti del gruppo. Cos� create prima un gruppo emacs, come riportato dal seguente comando:
Per associare il contenuto della directory al gruppo emacs, digitate:
chown -R root.emacs /usr/lib/emacs/site-lisp |
� ora possibile aggiungere gli utenti appropriati al gruppo con il comando gpasswd:
/usr/bin/gpasswd -a <username> emacs |
Per abilitare gli utenti a creare file all'interno della directory, usare il seguente comando:
chmod 775 /usr/lib/emacs/site-lisp |
Un nuovo file creato viene assegnato al gruppo privato di default dell'utente. Successivamente, impostare al setgid bit, che assegna ogni cosa creata nella directory, lo stesso permesso della directory (emacs). Usare il seguente comando:
chmod 2775 /usr/lib/emacs/site-lisp |
A questo punto, perch� l'impostazione di umask � 002, tutti i membri del gruppo emacs possono creare e modificare i file nella directory /usr/lib/emacs/site-lisp/ senza che l'amministratore deve cambiare i permessi del file, ogni qualvolta che gli utenti scrivono nuovi file.