Problemi di NLNX e soluzioni

NLNX è organizzato secondo una struttura particolare. In questo capitolo si raccolgono osservazioni e suggerimenti che non hanno trovato spazio in altre sezioni relative a NLNX.

Directory personale in un disco esterno

Utilizzando NLNX avviato da un disco ottico live, può essere comodo gestire i propri dati personali utilizzando una memoria esterna, come un'unità USB a disco o allo stato solido. Per fare questo basta preoccuparsi di innestare il disco e probabilmente conviene decidere di usare uno degli utenti comuni stabiliti, sistemando di conseguenza la proprietà della directory radice dell'unità esterna:

fdisk /dev/sda[Invio]

...

mkfs.ext3 /dev/sda1[Invio]

mount /mnt/sda1[Invio]

chown tizio:tizio /mnt/sda1[Invio]

umount /mnt/sda1[Invio]

I passaggi mostrati abbreviano e semplificano la procedura per creare una partizione (la prima) in un disco USB o in una memoria solida USB, facendo in modo che l'utente tizio la possa utilizzare come vuole.

Così facendo, utilizzando l'utenza tizio si possono salvare dati in questo disco, purché prima venga innestato. Tuttavia, rimanendo a questo livello di utilizzo, manca la possibilità di modificare in modo duraturo la configurazione personale dell'utente, perché i dati contenuti nella directory personale vanno perduti. Per risolvere questo problema, si può fare in modo di copiare la struttura iniziale della directory personale dell'utente tizio nel disco esterno, avendo cura ogni volta di innestarlo nel modo giusto:

mount /mnt/sda1[Invio]

cp -dpRv /home/tizio /mnt/sda1[Invio]

umount /mnt/sda1[Invio]

Eventualmente si può decidere di gestire in maniera diversa il disco esterno, per esempio inserendo il contenuto dei dati personali dell'utente in una sottodirectory, ma il procedimento non cambia; quando si vuole usare quella directory personale occorre prima agire come utente root seguendo lo schema seguente:

mount /mnt/sda1[Invio]

mount --bind /mnt/sda1 /home/tizio[Invio]

Quindi ci si può identificare come utente tizio. Se la directory personale dell'utente si trovasse invece, per esempio, nella sottodirectory mia/directory/personale/ nel disco esterno, basterebbe cambiare il collegamento finale nel modo seguente:

mount --bind /mnt/sda1/mia/directory/personale \
  \      /home/tizio
[Invio]

Utenze generiche

Quando si installa NLNX in modo che utilizzi il file system in lettura e scrittura, le utenze generiche costituite dai nomi tizio, caio e gli altri, vengono disabilitate, nel senso che viene tolta la parola d'ordine, ma per il resto sono intatte.

Naturalmente ci possono essere situazioni in cui gli utenti generici predefiniti sono totalmente inutili. In questi casi conviene provvedere manualmente alla loro eliminazione, soprattutto per ciò che riguarda le directory personali. Tuttavia, se si tratta di una copia di NLNX installata per poter generare successivamente un DVD «live», conviene lasciare le voci di questi utenti nei file /etc/passwd e /etc/group, per evitare che l'installazione di un programma che richiede la creazione di un utente fittizio vada a utilizzare proprio i numeri UID e GID che sono previsti invece per gli utenti tizio e gli altri. Dovendo mantenere questi utenti nei file /etc/passwd e /etc/group si può assegnare al posto della shell comune il file /bin/false.

Se si lasciano le directory personali degli utenti generici predefiniti, in un elaboratore che offre le directory personali attraverso il protocollo NFS, se questo servizio viene utilizzato tramite DVD, dal momento che lì tali utenze sono attive, è possibile salvare i file attraverso NFS. Si osservi che è sufficiente il protocollo NFS, perché le utenze generiche predefinite hanno numeri UID al di sotto del livello minimo previsto per la gestione attraverso il NIS (in base alla configurazione che prevede come UID minimo il numero 1 000). Se questo avviene in un laboratorio didattico, significa che gli studenti possono scambiare file tra di loro, perché, per esempio, chiunque può diventare tizio.

Messaggi di errore

Durante il funzionamento in modalità grafica, viene mostrato normalmente un riquadro contenente i messaggi generati dai programmi. Questi messaggi comprendono quanto emesso dallo standard output e dallo standard error. Tra i messaggi appaiono anche quelli generati dal gestore di finestre e in particolare sarebbe molto frequente il messaggio seguente:

[FVWM][get_menu_options]: <<ERROR>> invalid rectangle \
  \geometry

Questa segnalazione in particolare sembra essere generata erroneamente, per un problema che in realtà non sussiste. Dal momento che questo messaggio in particolare verrebbe emesso ogni volta che si apre il menù, dando così un fastidio inutile, il comando che mostra il riquadro dei messaggi fa in modo che non appaia.

Programmi «duri a morire»

Durante il funzionamento in modalità grafica, può capitare di avviare dei programmi che poi, non vogliono saperne di terminare il loro funzionamento quando la sessione grafica viene conclusa. Questo tipo di inconveniente si è manifestato, in modo particolare, con il programma alsamixergui, che per questa ragione non viene più installato. Per lo stesso motivo, non sono disponibili funzioni per generare sfondi dinamici.

Studenti troppo furbi

NLNX è organizzato in modo particolare per l'uso in un laboratorio didattico, per studenti della scuola media superiore. Di norma, un esercizio o un compito richiede che ognuno lavori utilizzando i propri dati, senza poter accedere alle directory personali degli altri utenti (soprattutto in considerazione del fatto che si presume i dati personali siano centralizzati e condivisi nella rete locale).

Per rendere più complicata la condivisione indesiderata dei dati, alla creazione delle utenze, la proprietà della directory personale (solo la directory, non il contenuto) viene attribuita a root, lasciando il gruppo associato correttamente all'utente per il quale esiste tale directory. Ciò comporta che l'utente non possa cambiare i permessi stabiliti per tale directory. Naturalmente, gli utenti hanno un proprio gruppo privati e al proprio gruppo sono concesse tutte le operazioni sulla directory. Ma oltre a questo viene attivato il bit Sticky (Save text image), in modo che possano essere rimossi solo i file che appartengono a chi chiede di rimuoverli.

I permessi iniziali consentono anche agli altri utenti di accedere (il permesso di «esecuzione», ovvero di attraversamento), allo scopo di rendere possibile l'interscambio di file tra studenti e docenti, oppure per consentire la pubblicazione di file nella directory ~/public_html/. Eventualmente, per impedire che gli studenti possano pubblicare dei file utilizzando la directory ~/public_html/, questa può essere creata in modo che appartenga all'amministratore, togliendo tutti i permessi di accesso e di lettura: gli studenti non possono così cancellarla e ricrearla con permessi differenti.

Tuttavia, dal momento che, se gli studenti conoscono i nomi dei file possono ugualmente condividerli, si può applicare una politica più rigida, togliendo anche il permesso di accesso alla directory personale. A titolo di esempio, supponendo di voler limitare gli accessi a un'ipotetica classe 5A dell'anno scolastico 2012/2013, ammesso di avere organizzato correttamente la struttura delle directory personali, si potrebbe procedere così:

cd /home/5A1213[Invio]

for s in * ; do chmod 1770 ; done[Invio]

In tal caso, però, lo script fornito come esempio per facilitare lo scambio di dati tra studenti e docenti non funzionerebbe più e andrebbe riscritto copiando materialmente i file.

Vincolare gli utenti a un certo gruppo di postazioni

Se gli elaboratori a cui gli utenti possono accedere sono tutti dotati di un sistema NLNX, è possibile imporre l'uso di certe postazioni, rispetto ad altre, ad alcuni utenti. Questa funzionalità non è guidata attraverso lo script nlnxrc e richiede un po' di lavoro.

Ogni elaboratore a cui si vuole sottoporre questo controllo deve contenere il file di testo /etc/nlnx/TTY_LOGIN_AT, con l'elenco degli utenti da limitare, dove sono ammesse solo direttive che si compongono secondo il modello seguente:

utente indirizzo_ipv4 [indirizzo_ipv4]

In pratica, prima si mette il nome dell'utente, quindi, separandoli con degli spazi, gli indirizzi da cui si possono connettere. Si osservi l'esempio seguente:

tizio 172.17.1.23 172.17.1.25
caio 172.17.1.15

In questo caso, ciò che è scritto nel file indica che l'utente tizio è ammesso ad accedere da 172.17.1.23, oppure 172.17.1.25, mentre l'utente caio solo da 172.17.1.15. Perché il controllo sia efficace, è necessario che questo file sia copiato tale e quale in tutti gli elaboratori. Tuttavia, quando il sistema viene avviato dalla rete, ciò non è possibile, pertanto in quel caso, il file può essere collocato nella directory /opt/nlnx/configuration/default/

«a2» 2013.11.11 --- Copyright © Daniele Giacomini -- appunti2@gmail.com http://informaticalibera.net