6.4. Gruppi utente privati

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. Gli UPG hanno lo stesso nome dell'utente che per quali sono stati creati, e solo quel particolare utente é un membro UPG.

L'uso degli UPG significa che é sicuro impostare i permessi di default per il file o per una directory, in grado di abilitare sia l'utente che il gruppo di quell'utente ad eseguire modifiche per il file o per la directory.

Le impostazioni che determinano quali permessi sono stati applicati ai nuovi file e directory, sono chimate umask, e si trovano nel file /etc/bashrc. Tradizionalmente, sui sistemi UNIX la umask é 022, la quale previene gli altri utenti e altri membri del gruppo di modificare i file dell'utente. Dato che ogni utente possiede il proprio gruppo privato nello schema UPG, questa "protezione di gruppo" non é necessaria.

6.4.1. Directory di gruppo

Molte organizzazioni IT preferiscono un gruppo per ogni progetto principale, assegnando successivamente persone, nella necessitá di accedere ai file del gruppo. Con questo schema tradizionale, la gestione dei file si è rivelata complessa, perché un file creato viene associato al gruppo primario a cui appartiene l'utente. Quando un singolo utente lavora su più progetti, è 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 setgid bit impostato, operazione che 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:

/usr/sbin/groupadd emacs

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 realmente i file nella 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.