18. Gestire le directory home

Questa sezione spiega come configurare Autodir in modo che le directory home degli utenti siano create su richiesta. Per questo scopo viene usato il modulo autohome, che si occupa in dettaglio della creazione delle directory home.

Per caricare il modulo autohome di Autodir, occorre usare l'opzione -m. Per esempio, -m /usr/lib/autodir/autohome.so.

NotaAssociazione utente/home
 

Quando una applicazione cerca di accedere ad una home directory, quella home directory è utilizzata per controllare se esiste un utente con lo stesso nome della directory. Se il nome dell'utente esiste allora la home directory è creata. Altrimenti viene restituito all'applicazione il messaggio "no such file or directory".

NotaAccount di utente
 

Autohome non si occupa della creazione degli account nel sistema locale, in LDAP o in qualsiasi altro database. Gestisce solo la creazione delle directory home quando questi account esistono e sono importati nel sistema locale da database come LDAP e NIS.

ImportanteLimitazioni
 

Vale la pena di citare una limitazione del modulo autohome. Il modulo assume che il nome dell'utente e la sua home directory siano collegati l'uno con l'altra. Per esempio, per l'utente user1 la home directory dovrebbe essere /home/user1 o /una/directory/name/user1 ma non /una/directory/nome/userhome1. Questa situazione potrebbe essere gestita ma causerebbe un eccessivo uso delle risorse di sistema in quanto le righe del file password dovrebbero essere controllate dalla prima all'ultima.

NotaCapire quando non usare autohome
 

Se il database degli utenti è definito in modo tale da distribuire le directory home tra diverse directory base, per esempio /home/class1/user1, /home/class2/user2332, allora la configurazione di autohome diventa troppo complicata e quindi il suo uso non raccomandato.

18.1. Directory base per autohome

Il passo successivo nella procedura di impostazione è decidere dove saranno create la directory base virtuale e la directory base reale per la creazione delle directory home.

Come sono definite la directory base virtuale e la directory base reale nel contesto del modulo autohome?

Dipende tutto da come gli account utente sono creati. Se per l'utente user1 viene creato un account utente con /home/user1 come home directory allora /home diventerà la directory base virtuale.

Allora qual'è la directory base reale? Può essere qualsiasi directory. L'unica cosa da tenere a mente è verificare che ci sia abbastanza spazio perché tutti i file saranno salvati qui e non nella directory base virtuale.

Nella maggior parte delle configurazioni server /home è in una partizione separata. Ma se /home è la directory base virtuale, allora i file non sono memorizzati in quella directory! La soluzione è di non fare il montaggio della partizione su /home ma invece da qualche altra parte e renderla la directory base reale.

L'opzione di Autodir -d è utilizzata per specificare la directory base virtuale. Per esempio: autodir -d /home definisce /home come la directory base virtuale.

E' talvolta complicato specificare la directory base reale. La directory base reale è gestita dal modulo autohome quindi l'opzione deve essere passata al modulo attraverso le sotto opzioni di modulo. Se la directory base reale è /var/autohome allora è specificata con l'opzione -o come in -o realpath=/var/autohome.

18.2. Organizzazione delle directory

Si faccia riferimento alla organizzazione delle directory nella directory base reale per una dettagliata spiegazione dell'argomento.

autohome supporta questo tipo di organizzazione. La sotto opzione usata per specificare il tipo di organizzazione desiderato è l'opzione level per esempio: -o level=2.

18.3. Sotto opzioni varie per autohome

La sotto opzione skel può essere utilizzata se il percorso dei file di scheletro non è quello standard /etc/skel: -o skel=/un/altra/dir.

La sotto opzione noskel può essere usata con -o per indicare che i file di scheletro non devono essere copiati delle directory home quando sono create.

18.4. Esempio

Primo, importare gli account utente da un database centralizzato, come ad esempio LDAP.

Poi, il modulo kernel autofs deve essere caricato nel modulo Linux. Questo può essere fatto come descritto nella sezione sul modulo kernel autofs.

Se /home deve essere usato per le directory home allora /home diventa la directory virtuale; questo è indicato ad autodir con l'opzione -d /home.

Supponendo che il modulo autohome sia in /usr/lib/autodir/autohome.so, questo modulo può essere caricato insieme ad autodir con -m /usr/lib/autodir/autohome.so. Da notare che viene indicato il percorso completo.

La vera posizione delle directory home è indicata con la sotto opzione realpath. Se è /autohome, la posizione può essere specificata con realpath=/autohome.

Con tutte queste opzioni autodir può essere fatto partire con:


# autodir -d /home 						\
		-m /usr/lib/autodir/autohome.so 		\
		-o 'realpath=/autohome'			 	\

Una volta partito Autodir, la directory /home sarà inizialmente vuota. Per verificare se Autodir sta lavorando correttamente, si può entrare in una delle directory home come utente root o come il proprietario della directory.