[successivo] [precedente] [inizio] [fine] [indice generale] [violazione licenza] [translators] [docinfo] [indice analitico] [volume] [parte]


Capitolo 17.   nanoLinux: particolarità

In questo capitolo si fa spesso riferimento a comandi realizzati attraverso lo script nanorc (/etc/script/nanorc), che può essere utilizzato anche senza argomenti, ottenendo così un menù più comodo:

nanorc[Invio]

Figura 17.1. Come si presenta lo script nanorc quando viene avviato senza argomenti, per ottenere il menù dei comandi disponibili.

.---------------------------------nanoLinux-----------------------------------.
| nanorc menu                                                                 |
| Some functions are reserved to "root" or might be reserved for usage with   |
| installed or CD/DVD-ROM running system: see "nanorc --help" for a           |
| contextual command list.                                                    |
| .-------------------------------------------------------------------------. |
| |mouse config       [2][root]    Config mouse                             | |
| |locale config      [2][root]    Config local language and console        | |
| |x config           [2][root]    Modify /etc/X11/XF86Config               | |
| |printer config     [3][root]    Printer configuration                    | |
| |vga config         [3][root]    Modify "/etc/vga/libvga.config"          | |
| |mta config         [3][root]    Config silently the MTA with default data| |
| |mta sender         [3][root]    Config the MTA with a fixed sender (From | |
| |ppp on             [2][root]    Start PPP connection with modem          | |
| |ppp off            [2][root]    Stop PPP connection                      | |
| |network config     [2][root]    Configure network connection             | |
| |freeaccess allow   [2][root]    Allow all kind of access to your computer| |
| |freeaccess deny    [2][root]    Deny some kind of access to your computer| |
| `v(+)---------------------------------------------------------------------' |
|                                                                             |
|                                                                             |
|-----------------------------------------------------------------------------|
|                       <  OK  >             <Cancel>                         |
`-----------------------------------------------------------------------------'

Si osservi che all'inizio delle voci appaiono delle sigle: [n] rappresenta una funzione disponibile solo a partire dal livello n di nanoLinux (per esempio, la configurazione della stampante è disponibile solo a partire da nanoLinux III); [root] indica una funzione disponibile soltanto all'amministratore; [root+cd] è una funzione disponibile soltanto all'amministratore durante il funzionamento da CD-ROM o da DVD-ROM; [root+hd] indica una funzione che si può utilizzare solo come amministratori, quando il sistema è installato in un disco normale.

17.1   Directory per l'innesto di altri file system

La directory /mnt/ è strutturata in una serie di sottodirectory per montare facilmente dischi e partizioni locali, assieme a file system di rete, offerti attraverso il protocollo NFS. In pratica, in base alla configurazione del file /etc/fstab, è sufficiente montare un disco con un comando del tipo seguente, per ottenere di inserire al suo interno il dispositivo corrispondente al file /dev/nome:

mount /mnt/nome[Invio]

Per esempio per montare un dischetto nella prima unità, basta il comando seguente:

mount /mnt/fd0[Invio]

Dal momento che un dischetto con un file system di tipo Dos-FAT tende a essere riconosciuto automaticamente secondo il formato dei file con i nomi corti, per questa situazione particolare è prevista la directory /mnt/a/ che serve a montare precisamente dischetti Dos-FAT con nomi lunghi:

mount /mnt/a[Invio]

Un sistema nanoLinux prevede la condivisione di tutto il file system (compresi tutti i punti di innesto corrispondenti alle directory /mnt/*/) attraverso il protocollo NFS; ma prima di poter montare il file system di un sistema nanoLinux funzionante da CD-ROM o da DVD-ROM, è necessario avviare il servizio corrispondente presso il servente:

/etc/init.d/nfs-kernel-server start[Invio]

Per montare facilmente il file system principale di un altro sistema nanoLinux (dove ovviamente deve essere già stato avviato il servizio corrispondente), sono previste una serie di directory per l'innesto, il cui nome corrisponde all'indirizzo IPv4 dell'elaboratore remoto. Tuttavia, sono previsti solo alcuni gruppi corrispondenti a indirizzi privati, pertanto si tratta soltanto di un'agevolazione parziale. Tuttavia, se l'indirizzo è stato previsto come sottodirectory di /mnt/ e nello stesso modo questo nome è previsto anche nel file /etc/fstab, basta procedere così:

mount /mnt/indirizzo_ipv4[Invio]

In questo modo si monta il file system principale dell'elaboratore remoto, ma se quello che si intende è raggiungere qualcosa che a sua volta è stato montato al suo interno, occorre dare un comando più specifico. L'esempio seguente serve a raggiungere un dischetto montato nella directory /mnt/fd0 del nodo 192.168.1.2, mettendolo a disposizione nella directory locale /mnt/0/:

mount -t nfs 192.168.1.2:/mnt/fd0 /mnt/0[Invio]

Si osservi comunque che la condivisione è concessa solo a indirizzi IPv4 di «reti private», ovvero indirizzi che appartengono ai gruppi 10.0.0.0/8, 172.16.0.0/12 e 192.168.0.0/16.

Per quanto riguarda un'introduzione sugli indirizzi di rete e le reti private, si può consultare il capitolo 134; inoltre, il servizio NFS è descritto nel capitolo 160.

Tabella 17.1. Descrizione dei punti di innesto previsti nell'organizzazione di nanoLinux.

Directory Descrizione
da /mnt/0/ a /mnt/9/ Directory a disposizione per montare ciò che si vuole, senza un'associazione già stabilita nel file /etc/fstab.
/mnt/a/, /mnt/b/ Directory per montare rispettivamente /dev/fd0 e /dev/fd1 con un file system Dos-FAT con nomi lunghi.
/mnt/c/ Directory per montare all'avvio la prima partizione del primo disco ATA, che sembra contenere un sistema operativo Dos o MS-Windows quando il sistema funziona da CD-ROM o da DVD-ROM.
/mnt/fd0/, /mnt/fd1/ Directory per montare rispettivamente /dev/fd0 e /dev/fd1, determinando automaticamente il tipo di file system.
/mnt/hda/, /mnt/hdb/, /mnt/hdc/, /mnt/hdd/ Directory per montare automaticamente i primi quattro dischi ATA senza suddivisione in partizioni.
da /mnt/hdx1/ a /mnt/hdx19/ Directory per montare automaticamente le prime 19 partizioni del disco corrispondente al file di dispositivo /dev/hdx.
da /mnt/md0/ a /mnt/md19/ Directory per montare automaticamente i primi 20 dischi RAID software (in generale multi device), corrispondenti ai file di dispositivo da /dev/md0 a /dev/md19.
/mnt/sda/, /mnt/sdb/, /mnt/sdc/, /mnt/sdd/ Directory per montare automaticamente i primi quattro dischi SCSI senza suddivisione in partizioni.
da /mnt/sdx1/ a /mnt/sdx19/ Directory per montare automaticamente le prime 19 partizioni del disco corrispondente al file di dispositivo /dev/sdx.
da /mnt/sr0/ a /mnt/sr9/ Directory per montare automaticamente i primi 10 lettori CD-ROM o DVD-ROM di tipo SCSI.
/mnt/127.0.0.1/ Directory per montare automaticamente il file system principale dello stesso elaboratore locale, attraverso il protocollo NFS.
/mnt/192.168.m.n/ Directory per montare automaticamente il file system principale di un elaboratore remoto con un indirizzo IPv4 corrispondente a 192.168.m.n, attraverso il protocollo NFS.

17.2   Configurazione di Bash e script di sistema

Il file /etc/profile è più articolato di quello standard. Vengono descritte le particolarità più significative.

17.3   Localizzazione

La configurazione locale di nanoLinux prevede inizialmente una variabile di ambiente LANG con il valore en_US, però con una mappa per la tastiera italiana.

È possibile modificare questa impostazione iniziale con il comando nanorc locale config:

nanorc locale config[Invio]

Figura 17.2. Configurazione della variabile LANG.

.-----------Language selection-------------.
| Please select your language (will take   |
| effect at next login):                   |
| .--------------------------------------. |
| |   en_US             previous_value   | |
| |   en_GB             ISO-8859-1       | |
| |   en_US             ISO-8859-1       | |
| |   it_IT             ISO-8859-1       | |
| `--------------------------------------' |
|------------------------------------------|
|         <  OK  >     <Cancel>            |
`------------------------------------------'

La prima richiesta a cui si viene sottoposti riguarda la selezione della stringa da assegnare alla variabile LANG. Questo valore viene poi salvato nel file /etc/nanoLinux/LANG: se si accede nuovamente al sistema (eventualmente in un'altra console virtuale), la variabile LANG viene impostata in base al contenuto di questo file.

Si osservi che per il momento vengono escluse dall'elenco le voci che richiedono una codifica diversa dagli standard ISO 8859-1.

Figura 17.3. Configurazione della codifica usata per la console.

.---------------------Console font encoding selection------------------------.
| Please select your console font encoding:                                  |
| .------------------------------------------------------------------------. |
| |lat1-16.psf.gz           default                                        | |
| |alt-8x14.psf.gz          /usr/share/consolefonts/alt-8x14.psf.gz        | |
| |alt-8x16.psf.gz          /usr/share/consolefonts/alt-8x16.psf.gz        | |
| |alt-8x8.psf.gz           /usr/share/consolefonts/alt-8x8.psf.gz         | |
| |altb-8x16.psf.gz         /usr/share/consolefonts/altb-8x16.psf.gz       | |
| |altc-8x16.psf.gz         /usr/share/consolefonts/altc-8x16.psf.gz       | |
| |aply16.psf.gz            /usr/share/consolefonts/aply16.psf.gz          | |
| |arm8.psf.gz              /usr/share/consolefonts/arm8.psf.gz            | |
| |cp850-8x14.psf.gz        /usr/share/consolefonts/cp850-8x14.psf.gz      | |
| |cp850-8x16.psf.gz        /usr/share/consolefonts/cp850-8x16.psf.gz      | |
| |cp850-8x8.psf.gz         /usr/share/consolefonts/cp850-8x8.psf.gz       | |
| |cp857-8x14.psf.gz        /usr/share/consolefonts/cp857-8x14.psf.gz      | |
| |cp857-8x16.psf.gz        /usr/share/consolefonts/cp857-8x16.psf.gz      | |
| |cp857-8x8.psf.gz         /usr/share/consolefonts/cp857-8x8.psf.gz       | |
| |cp865-8x14.psf.gz        /usr/share/consolefonts/cp865-8x14.psf.gz      | |
| |cp865-8x16.psf.gz        /usr/share/consolefonts/cp865-8x16.psf.gz      | |
| `v(+)--------------------------------------------------------------------' |
|                                                                            |
|----------------------------------------------------------------------------|
|                       <  OK  >             <Cancel>                        |
`----------------------------------------------------------------------------'

Dopo la variabile LANG si passa alla selezione della codifica usata per la rappresentazione dei caratteri sullo schermo della console. In generale, quando si utilizza la codifica ISO 8859-1 va bene indicare qui la codifica predefinita, corrispondente al file lat1-16.psf.gz. Questa scelta si ripercuote immediatamente su tutte le console virtuali.

Figura 17.4. Configurazione della mappa della tastiera per la console.

.----------------------Console keyboard map selection------------------------.
| Please select your console keyboard map:                                   |
| .------------------------------------------------------------------------. |
| |us                    default                                           | |
| |azerty                /usr/share/keymaps/i386/azerty/azerty.kmap.gz     | |
| |be2-latin1            /usr/share/keymaps/i386/azerty/be2-latin1.kmap.gz | |
| |be-latin1             /usr/share/keymaps/i386/azerty/be-latin1.kmap.gz  | |
| |fr                    /usr/share/keymaps/i386/azerty/fr.kmap.gz         | |
| |fr-latin0             /usr/share/keymaps/i386/azerty/fr-latin0.kmap.gz  | |
| |fr-latin1             /usr/share/keymaps/i386/azerty/fr-latin1.kmap.gz  | |
| |fr-latin9             /usr/share/keymaps/i386/azerty/fr-latin9.kmap.gz  | |
| |fr-pc                 /usr/share/keymaps/i386/azerty/fr-pc.kmap.gz      | |
| |fr-x11                /usr/share/keymaps/i386/azerty/fr-x11.kmap.gz     | |
| |mac-usb-be            /usr/share/keymaps/i386/azerty/mac-usb-be.kmap.gz | |
| |mac-usb-fr            /usr/share/keymaps/i386/azerty/mac-usb-fr.kmap.gz | |
| |mac-usb-it            /usr/share/keymaps/i386/azerty/mac-usb-it.kmap.gz | |
| |wangbe                /usr/share/keymaps/i386/azerty/wangbe.kmap.gz     | |
| |ANSI-dvorak           /usr/share/keymaps/i386/dvorak/ANSI-dvorak.kmap.gz| |
| |dvorak-classic        /usr/share/keymaps/i386/dvorak/dvorak-classic.kmap| |
| `v(+)--------------------------------------------------------------------' |
|                                                                            |
|----------------------------------------------------------------------------|
|                       <  OK  >             <Cancel>                        |
`----------------------------------------------------------------------------'

Al termine viene richiesto di specificare la mappa della tastiera, da usare per la console. Anche questa selezione si ripercuote immediatamente su tutte le console virtuali.

Naturalmente, invece di agire attraverso il comando nanorc locale config, si può fare tutto a mano; in particolare si può cambiare la mappa della tastiera con l'aiuto di loadkeys, come nell'esempio seguente che imposta la tastiera della console per la lingua francese:

loadkeys fr[Invio]

Tuttavia, la modifica manuale non viene annotata nei file di configurazione di nanoLinux.

17.4   Configurazione di mouse e tastiera

La configurazione iniziale della tastiera è prevista secondo le convenzioni della distribuzione GNU/Linux Debian; tuttavia, la mappa predefinita è adatta a una tastiera italiana e a questa sono stati aggiunti altri simboli rispetto a quella comune (per esempio le lettere accentate maiuscole). Se si aggiorna il pacchetto relativo alla gestione della tastiera, può darsi che la mappa venga rimpiazzata con quella standard, perdendo queste estensioni; se necessario, la mappa estesa si trova in /usr/share/keymaps/i386/qwerty/it-base-edizione.kmap.gz.

La gestione del mouse è sottoposta al controllo di GPM e il sistema grafico, XFree86, utilizza le informazioni generate da GPM stesso, senza accedere direttamente al mouse. La configurazione predefinita di nanoLinux prevede l'uso di un mouse di tipo PS/2, ma si può utilizzare il comando nanorc mouse config per attivare la gestione di un mouse differente:

Figura 17.5. Come si presenta lo script che si occupa dei riconfigurare il funzionamento del mouse.

.--------------------------- Mouse selection---------------------------------.
|                                                                            |
| Please, select the mouse command:                                          |
| .------------------------------------------------------------------------. |
| |       gpm -t ps2 -m /dev/psaux -R mcs  previous_value                  | |
| |       gpm -t ps2 -m /dev/psaux -R mcs  PS/2                            | |
| |       gpm -t ms  -m /dev/ttyS0 -R mcs  Microsoft serial COM1:          | |
| |       gpm -t ms  -m /dev/ttyS1 -R mcs  Microsoft serial COM2:          | |
| |       gpm -t msc -m /dev/ttyS0 -R mcs  MouseSystems serial COM1:       | |
| |       gpm -t msc -m /dev/ttyS1 -R mcs  MouseSystems serial COM2:       | |
| `------------------------------------------------------------------------' |
|                                                                            |
|----------------------------------------------------------------------------|
|                       <  OK  >            <Cancel>                         |
`----------------------------------------------------------------------------'

Eventualmente si può intervenire manualmente nel file /etc/gpm.conf, cambiando ciò che serve; se si agisce in questo modo, dopo la modifica, ovviamente, si deve riavviare il demone gpm attraverso lo script previsto dalla distribuzione:

/etc/init.d/gpm stop[Invio]

/etc/init.d/gpm start[Invio]

Se funziona il mouse su una console, funziona di conseguenza anche con XFree86.

Può capitare che il demone gpm non si avvii regolarmente, anche se la configurazione predefinita corrisponde alla situazione reale. In tal caso è necessario riavviare manualmente il servizio nel modo appena mostrato.

17.5   Procedura di inizializzazione del sistema

La procedura di inizializzazione del sistema prevede due script in più, costituiti da /etc/init.d/rc.hardware e /etc/init.d/rc.local, a cui fanno riferimento i collegamenti /etc/rcS.d/S31rc.hardware e /etc/rcS.d/S99rc.local. Il primo di questi due script serve a controllare un sistema molto semplice per l'individuazione di alcune componenti hardware e a caricare i moduli relativi; il secondo è il raccoglitore di tutto quello che deve essere fatto alla fine della procedura di avvio; in particolare, definisce il tipo di caratteri da usare per le console virtuali e tenta di rimpiazzare alcuni file che riguardano la configurazione dei gestori di finestre.

Nel caso di nanoLinux funzionante da CD-ROM o da DVD-ROM, esiste anche un altro file, /etc/init.d/rc.CD-ROM, il cui scopo è quello di: riprodurre la struttura necessaria delle directory /var/, /home/ e /etc/ nel file system virtuale contenuto nel disco RAM; tentare di montare la partizione /dev/hda1 come file system Dos o MS-Windows, tentare di attivare la memoria virtuale nel caso riesca a trovare una partizione già prevista per questo o un file nlnx3tmp.swp (come descritto più avanti nel capitolo), tentare di caricare la configurazione salvata precedentemente in un dischetto o in una partizione del disco fisso.

17.6   Sistema grafico

La configurazione di XFree86 è contenuta nel file /etc/X11/XF86Config; il file /etc/X11/XF86Config.vesa contiene la stessa configurazione e rimane di scorta.

La configurazione di partenza, si riferisce a un adattatore grafico VESA, dove si tentano di visualizzare 1 024×768 punti a una profondità di 16 bit (216 colori). Si veda la parte xxii a proposito del sistema grafico X e della configurazione di XFree86.

nanoLinux è estremamente spartano a proposito di grafica ed è disponibile solo il gestore di finestre Fvwm. Per garantire che venga avviato Fvwm è stato modificato il file /etc/X11/xinit/xinitrc e per garantire che rimanga così, nella directory /etc/X11/xinit/ ne è disponibile una copia di scorta che viene ricopiata automaticamente per opera dello script /etc/init.d/rc.local, già descritto.

Per quanto riguarda la configurazione del gestore di finestre Fvwm, anche questa è stata riscritta (il file /etc/X11/fvwm/system.fvwm2rc) e lo script /etc/init.d/rc.local provvede a mantenerla come disposto per nanoLinux, attraverso una sua copia.

Il menù realizzato per nanoLinux non è necessariamente completo, ma serve in particolare a individuare rapidamente le applicazioni e le funzioni più comuni. Tuttavia, è disponibile una voce che rimanda al menù completo, gestito automaticamente dalla distribuzione Debian.

Se si gradisce questo tipo di impostazione, le modifiche per il menù di Fvwm vanno apportate precisamente nel file /etc/X11/fvwm/system.fvwm2rc.nanoLinuxn (dove n rappresenta il livello di nanoLinux utilizzando una cifra numerica); altrimenti, per ripristinare le condizioni normali, basta togliere le istruzioni che ricopiano ogni volta questo file all'interno di /etc/init.d/rc.local, compreso eventualmente quanto riguarda /etc/X11/xinit/; aggiornando successivamente i pacchetti relativi, le cose dovrebbero tornare lentamente alla normalità.

A proposito del menù di Fvwm realizzato per nanoLinux, si può osservare che le voci non sono descrittive, ma contengono semplicemente il comando che andrebbe usato da un terminale a caratteri per avviare il programma. Per esempio, per avviare Ethereal è necessario disporre dei privilegi dell'utente root, pertanto appare il comando: su root ethereal. Questo tipo di impostazione serve a ridurre il distacco tra l'utilizzo del sistema a riga di comando e un utilizzo esclusivamente visuale-intuitivo.

Per approfondire l'argomento si può consultare la parte xxii dedicata alla gestione grafica.

In condizioni normali, la grafica si presenta con un colore di fondo uniforme e la barra inferiore di Fvwm. Per consentire l'individuazione immediata dell'utenza utilizzata, a seconda dell'utente si ottiene un colore iniziale differente:

Colore predefinito Utente
nero root
marrone tizio
rosso caio
arancio sempronio
giallo mevio
verde filano
blu martino
viola calpurnio

Nel caso si tratti di un utente differente (ciò vale per quando si installa nanoLinux, il colore che si ottiene in modo predefinito è un blu, con una tonalità leggermente diversa da quella usata per l'utente martino.

17.7   PostgreSQL

Di per sé, PostgreSQL è installato normalmente, a parte il fatto che il file /etc/postgresql/pg_hba.conf (ovvero ~postgres/data/pg_hba.conf) è configurato in modo da concedere qualunque accesso proveniente da indirizzi di reti locali. Tuttavia, come descritto più avanti, durante il funzionamento da CD-ROM o da DVD-ROM, nel file /etc/profile vengono definite le variabili di ambiente PGUSER e PGDATABASE, rispettivamente con i valori pgnanouser e nanodb.

17.8   Nomi di dominio

I file di configurazione di Bind, per la risoluzione dei nomi, sono collocati tutti nella directory /etc/bind/ e le zone di competenza, nell'impostazione iniziale, si riferiscono all'indirizzo 127.0.0.1 e, a scopo didattico, anche ad alcuni indirizzi IPv4 privati. Inoltre, il nome nanohost viene indicato nel file /etc/hosts, come sinonimo di localhost, per garantire il funzionamento di alcuni programmi (si veda il capitolo 145 a proposito della configurazione di un servizio DNS con Bind).

Il file /etc/resolv.conf è configurato in modo da interrogare l'elaboratore locale, ma appaiono anche altri indirizzi di serventi DNS di fornitori ben conosciuti, che potrebbero tornare utili in caso di emergenza, o anche solo per conoscenza. Il file /etc/resolv.conf può essere modificato anche durante il funzionamento da CD-ROM o da DVD-ROM, cosa che può servire se si vuole provare a scavalcare il DNS locale, mettendo al primo posto altri indirizzi.

17.9   DHCP

nanoLinux dispone di un cliente DHCP che viene usato in modo predefinito per la configurazione della rete locale.

L'utilizzo di un servizio DHCP può essere molto utile quando si usa il CD o il DVD di nanoLinux senza un'organizzazione particolare del lavoro, ma quando si installa nanoLinux in una serie di elaboratori, è preferibile avere un'attribuzione precisa degli indirizzi, senza dover dipendere da un servizio DHCP.

nanoLinux utilizza diverse «opzioni» DHCP per la propria configurazione, secondo lo schema della tabella seguente.

Opzione DHCP Utilizzo

subnet-mask

broadcast-address

routers

Queste opzioni, assieme all'informazione sull'indirizzo IPv4, consentono di configurare l'interfaccia di rete e gli instradamenti.

domain-name-servers

Permette di modificare automaticamente il file /etc/resolv.conf.

time-servers

ntp-servers

Una di queste due opzioni permette di sincronizzare l'orologio locale con il protocollo RDATE o NTP.

root-path

La disponibilità di questa opzione fa sì che si tenti di montare la directory home/ remota.

nis-domain

nis-servers

Queste due opzioni consentono di utilizzare il protocollo NIS per la gestione condivisa delle utenze.

lpr-servers

Permette di modificare il file /etc/printcap, in modo da usare una stampante remota.

log-servers

Permette di modificare il file /etc/syslog.conf, in modo da inviare una copia del registro del sistema a un elaboratore remoto.

17.10   SMB

nanoLinux, una volta installato, dispone di Samba, che va inteso come un'estensione al servizio NFS per l'accesso alle directory personali degli utenti.

Perché Samba possa funzionare in armonia con il sistema di gestione delle utenze standard, occorre gestire queste utenze attraverso lo script nanorc, in modo da garantire di avere gli stessi utenti con le stesse parole d'ordine, sia per l'accesso al sistema operativo, sia per l'accesso a Samba. I comandi utili a questo proposito sono:

Comando Descrizione

nanorc user add

nanorc user del

Aggiunge o elimina un'utenza.

nanorc user passwd

Cambia la parola d'ordine di un utente.

Se per qualche ragione si vuole avere una gestione disgiunta delle utenze, si possono usare i comandi seguenti:

Comando Descrizione

nanorc user unixadd

nanorc user unixdel

nanorc user unixpasswd

Aggiunge un'utenza, la elimina o gli cambia la parola d'ordine, intervenendo solo nella parte "Unix", ovvero nei file /etc/passwd, /etc/group, /etc/shadow e nella directory personale. Si trascura in pratica la gestione eventuale di Samba.

nanorc user smbadd

nanorc user smbdel

nanorc user smbpasswd

Aggiunge un'utenza, la elimina o gli cambia la parola d'ordine, intervenendo solo nella parte relativa a Samba.

Si può intendere che il servizio offerto da Samba è utile se si colloca nell'elaboratore che svolge già il compito di servente NIS e NFS.

Teoricamente, la configurazione prevista per Samba prevede anche la condivisione della stampante lp tramite il protocollo SMB.

Samba è inserito in nanoLinux a completamento del sistema della gestione delle utenze ed eventualmente anche del sistema di condivisione della stampa; tuttavia, non ci può essere la sicurezza che le cose funzionino come ci si potrebbe aspettare, perché il successo dipende anche dalla «disponibilità» a cooperare da parte degli altri sistemi operativi che dovrebbero sfruttare questi servizi.

Per l'uso di Samba, si può consultare la parte xlii, scritta da Fulvio Ferroni.

17.11   SMTP

nanoLinux prevede un MTA per l'invio e il recapito della posta elettronica. Si tratta precisamente di Exim, che risulta configurato in modo da consentire l'invio di messaggi anche a nodi identificati attraverso il numero dell'indirizzo IP, secondo un formato simile all'esempio seguente:

tizio@[192.168.1.2]

Si osservi la necessità delle parentesi quadre per delimitare l'indirizzo.

In questo modo, si può usare Mailx (il programma mail) per inviare dei messaggi ad altri elaboratori in cui è in funzione nanoLinux.

Con questo tipo di impostazione, l'invio di messaggi a indirizzi normali, potrebbe risultare impedito da parte dei serventi SMTP remoti, a causa dell'impossibilità di risolvere il dominio di origine, oppure i messaggi potrebbero essere intercettati ed eliminati da programmi «anti spam».

Durante il funzionamento da CD-ROM o da DVD-ROM, il file di configurazione di Exim viene aggiornato periodicamente attraverso il sistema Cron. Per la precisione, si tratta di un aggiornamento che tiene conto dell'indirizzo IPv4 dell'interfaccia di rete ppp0, o in mancanza di eth0. Se è possibile determinare il nome di dominio dell'indirizzo relativo, Exim viene configurato in modo da modificare il mittente dei messaggi che vengono trasmessi dall'elaboratore locale, in modo che appaia un nome di dominio appropriato (e non il solito nanohost). Questo aggiornamento viene ottenuto tramite il programma /etc/script/nanorc-config-exim, che eventualmente può anche essere avviato a mano, oppure attraverso il comando nanorc mta config.

Quando si installa nanoLinux, l'aggiornamento automatico e continuo del file di configurazione di Exim viene a mancare; tuttavia, se si utilizza nanorc ppp on (come descritto in seguito), l'aggiornamento viene eseguito al momento della connessione. Pertanto, se si vuole evitare che ci sia tale tipo di intervento automatico, occorre eliminare i file /etc/ppp/ip-up.d/*config-exim e /etc/ppp/ip-down.d/*config-exim.

Eventualmente, è possibile utilizzare il comando nanorc mta sender per dichiarare in modo interattivo un mittente specifico per i messaggi inviati:

nanorc mta sender[Invio]

Figura 17.7. Come si presenta lo script che si occupa di modificare il mittente dei messaggi di posta elettronica che vengono inviati.

.----------------------------Email sender-------------------------------.
| Please, specify a single public email sender address.                 |
|                                                                       |
| Please note that you are going to reconfigure the SMTP server,        |
| so that the sender (the "From:" field) of every sent message will     |
| be as defined below; that is: ONE SENDER FOR ALL USERS!               |
|                                                                       |
| If the value is empty, the sender address is defined automatically;   |
| if you don't want to go on, just press [Ctrl+c], or select the        |
| <Cancel> button to abort the process.                                 |
| .-------------------------------------------------------------------. |
| |                                                                   | |
| `-------------------------------------------------------------------' |
|-----------------------------------------------------------------------|
|                     <  OK  >             <Cancel>                     |
`-----------------------------------------------------------------------'

Se si indica un indirizzo di posta elettronica, questo viene annotato nel file /etc/nanoLinux/EMAIL_SENDER e quindi viene avviato lo script nanorc-config-exim; il quale, se trova il file con un contenuto, lo utilizza per la configurazione di Exim, altrimenti procede alla configurazione predefinita.

Il comando nanorc mta sender è disponibile anche dopo l'installazione di nanoLinux, pertanto può essere usato, ma ciò va fatto consapevolmente, perché il cambiamento del mittente dei messaggi inviati riguarda tutti gli utenti del sistema.

Teoricamente, si possono inviare messaggi anche quando manca la connessione, perché questi vengono accodati e nel momento del collegamento questi possono essere rimessi in movimento attraverso il comando runq. In pratica, ciò può funzionare soltanto se i messaggi hanno un mittente corretto, ma se ci si affida al solo indirizzo IPv4 e prima del collegamento manca l'interfaccia dal quale questo può essere letto, il mittente rimane quello errato. Per ovviare a questo inconveniente, si può usare il comando nanorc mta sender, con tutte le cautele già descritte.

Per approfondire l'argomento si può consultare la parte xxxii dedicata alla gestione della posta elettronica.

17.12   HTTP e PHP

È disponibile il servente HTTP Mathopd. Per facilitarne l'utilizzo è possibile raggiungere il contenuto della directory /mnt/ attraverso l'indirizzo URI http://nodo/mnt/, in modo da poter leggere il contenuto dei dischi che vengono montati. Sempre allo scopo di semplificare il lavoro, si possono eseguire i programmi CGI se il nome del file corrispondente ha un'estensione del tipo .cgi, .pl o .sh (questo vale anche se i file si trovano all'interno di un dischetto).

Per approfondire l'argomento si può consultare la parte xxxiii dedicata alla gestione di un servizio HTTP.

Assieme a Mathopd si trovano anche Webalizer e ht://Dig, rispettivamente per l'analisi statistica degli accessi e per l'indicizzazione dei dati (ovviamente solo a fini didattici).(1) A proposito dell'analisi degli accessi a un servizio HTTP, si può consultare il capitolo 194, mentre per l'indicizzazione dei dati si può leggere il capitolo 193.

Si ricorda che per aggiornare le statistiche, che appaiono a partire dall'indirizzo http://localhost/webalizer/, basta avviare l'eseguibile webalizer senza argomenti:

webalizer[Invio]

Inoltre, per aggiornare gli indici, è necessario avviare rundig con le opzioni -a e -i:

rundig -a -i[Invio]

È disponibile anche l'interprete PHP e i file con estensione .php, .phtml o .pht vengono trattati attraverso questo sistema.

17.13   Proxy HTTP

nanoLinux include un servizio proxy HTTP, costituito da OOPS, che può essere usato come acceleratore HTTP e anche come proxy trasparente. In generale, OOPS si avvia automaticamente solo quando nanoLinux è stato installato, altrimenti dal CD-ROM o dal DVD-ROM è possibile avviare il servizio (evidentemente per motivi didattici) attraverso il comando seguente:

/etc/init.d/oops start[Invio]

La sua configurazione predefinita prevede l'ascolto presso la porta 8 080; inoltre si fa a meno di usare file su disco per conservare le pagine e le altre risorse già visitate. Il funzionamento di un proxy HTTP e di OOPS in particolare è descritto nel capitolo 200.

La configurazione di OOPS viene ripristinata dallo script /etc/init.d/rc.local, a ogni avvio del sistema, da una copia di sicurezza del file. Ciò permette di non perdere inavvertitamente la configurazione standard quando si aggiorna OOPS; naturalmente, se nanoLinux è stato installato nel disco fisso, occorre ricordarsi di fare le modifiche alla configurazione anche nel file /etc/oops/oops.cfg.nanoLinux.

Si osservi che la configurazione di OOPS predisposta per nanoLinux prevede la presenza di direttive che censurano l'accesso a indirizzi che contengono alcune stringhe chiave. Questo fatto ha solamente un significato dimostrativo sul funzionamento di un servizio Proxy.

17.14   FTP

È disponibile un servente FTP OpenBSD FTP, che consente l'accesso sia come utente anonimo, sia come utente comune. La directory per il servizio di FTP anonimo si articola a partire da /var/ftp/.

Per approfondire l'argomento si può consultare la parte xxxi dedicata alla gestione di un servizio FTP.

17.15   POP3

È disponibile un servente POP3, a scopo didattico, per consentire il prelievo della posta da parte dell'utente nano. Nel caso si voglia usare Mozilla per leggere i messaggi di posta ricevuti, si può fare riferimento al servente POP3 presso l'elaboratore locale (localhost).

Per approfondire l'argomento si può consultare il capitolo 176.

17.16   File di registrazioni

È possibile modificare facilmente la configurazione del registro di sistema allo scopo di inviare una copia di ciò che accade presso un elaboratore unico. Invece di modificare direttamente il file /etc/syslog.conf, si può intervenire direttamente con il comando seguente:

nanorc log-server config[Invio]

.--------Log server----------.
| Please specify the log     |
| server to send system log: |
| .------------------------. |
| |                        | |
| `------------------------' |
|                            |
|----------------------------|
|   <  OK  >    <Cancel>     |
`----------------------------'

Supponendo di voler inviare una copia all'elaboratore 192.168.1.254:

192.168.1.254<OK>

17.16.1   Accessibilità dei registri

I file del registro di sistema e altri file analoghi contenuti a partire dalla directory /var/log/, sono accessibili a tutti gli utenti, soprattutto per motivi didattici. È possibile accedere al contenuto di questi registri anche attraverso un programma CGI, che consente l'accesso da parte di utenti di reti private (127.0.0.0/255.0.0.0, 10.0.0.0/255.0.0.0, 172.16.0.0/255.240.0.0 e 192.168.0.0/255.255.0.0): http://nodo/cgi-bin/var_log.

Se si accede all'indirizzo http://nodo/cgi-bin/var_log si ottiene la lista del contenuto della directory /var/log/ dell'elaboratore corrispondente al nome o all'indirizzo indicato (il «nodo»); se si aggiunge la stringa ?percorso, si intende visualizzare il contenuto del percorso /var/log/percorso. Per esempio, per visualizzare il contenuto del file /var/log/syslog, si deve usare l'indirizzo http://nodo/cgi-bin/var_log?syslog, mentre per leggere il contenuto del file /var/log/oops/access.log, si deve usare l'indirizzo http://nodo/cgi-bin/var_log?oops/access.log.

L'accessibilità a questi file dipende dai loro permessi, tenendo conto che il programma CGI funziona con gli stessi privilegi del servente HTTP.

17.17   Orologio di riferimento

È possibile sincronizzare il proprio elaboratore con un altro, che offra il servizio NTP o RDATE. Per questo è sufficiente usare il comando nanorc rdate config:

nanorc rdate config[Invio]

.-------Rdate server---------.
| Please specify the Rdate   |
| server you trust:          |
| .------------------------. |
| |                        | |
| `------------------------' |
|----------------------------|
|   <  OK  >    <Cancel>     |
`----------------------------'

pool.ntp.org<OK>

Se la configurazione riguarda una copia installata, oppure se viene salvata in qualche modo, all'avvio successivo l'allineamento dell'orologio avviene in modo automatico.

Per la sincronizzazione viene tentato un accesso attraverso ntpdate, il quale prevede già una propria configurazione nel file /etc/default/ntpdate. In questo file conviene evitare l'indicazione di un servente NTP, perché il meccanismo usato da nanoLinux non lo richiede. Infatti, durante l'avvio del sistema, nanoLinux interroga l'indirizzo indicato nel modo mostrato sopra, attraverso il protocollo NTP, ma se questo fallisce riprova con il protocollo RDATE. Dal momento che queste operazioni richiedono un certo tempo, sono eseguite sullo sfondo, senza sospendere temporaneamente l'esecuzione dello script in cui sono contenute. Ciò ha il vantaggio di non rallentare l'avvio quando l'elaboratore non ha un accesso alla rete esterna; se invece si specifica un servente NTP nel file /etc/default/ntpdate, da un lato si esegue per due volte la stessa funzione, dall'altro si ottiene una pausa inutile all'avvio se il servente NTP non può essere raggiunto.

17.18   NIS e NFS per utilizzare altre utenze

nanoLinux è predisposto con pochi utenti: l'amministratore e alcuni utenti comuni. Tuttavia, è disponibile un sistema NIS per la connessione a un servente NIS, dal quale ottenere le informazioni su altre utenze (precisamente per i file /etc/passwd, /etc/shadow e /etc/group). In pratica, dal momento che l'utilizzo da CD-ROM o da DVD-ROM comporta delle limitazioni, è prevista la possibilità di acquisire queste utenze dall'esterno, innestando le directory personali di queste utenze a partire dalla directory /home/, attraverso il protocollo NFS.

Per l'utilizzo di questa funzionalità, è necessario:

Se sono rispettati questi requisiti, si può attivare la gestione di queste utenze remote attraverso il comando nanorc nis-home start:

nanorc nis-home start[Invio]

.--------NIS domain--------.
|                          |
| Please insert the NIS    |
| domain:                  |
| .----------------------. |
| |                      | |
| `----------------------' |
|--------------------------|
|   <  OK  >    <Cancel>   |
`--------------------------'

Come si vede dalla figura, viene richiesto l'inserimento del dominio NIS; questa informazione dipende da come è configurato il servente NIS a cui ci si vuole rivolgere e si può ottenere presso un elaboratore già configurato con il comando nisdomainname, senza argomenti. Dopo l'inserimento e la conferma si passa all'indicazione dell'indirizzo IP del servente:

nano-domain<OK>

.--------NIS server--------.
| Please insert the NIS    |
| server IPv4 address:     |
| .----------------------. |
| |                      | |
| `----------------------' |
|--------------------------|
|  <  OK  >      <Cancel>  |
`--------------------------'

In generale è meglio inserire l'indirizzo anche se appartenente alla rete locale; si passa così all'inserimento dell'indirizzo del servente DNS e inizialmente viene proposto lo stesso usato per il NIS:

192.168.1.254<OK>

.--------NFS server--------.
| Please insert the NFS    |
| server IPv4 address:     |
| .----------------------. |
| |192.168.1.254         | |
| `----------------------' |
|--------------------------|
|  <  OK  >      <Cancel>  |
`--------------------------'

192.168.1.254<OK>

Se tutto funziona come si deve, viene montata la directory /home/ remota e viene avviato il servizio NIS per l'acquisizione delle utenze. A quel punto, le directory personali degli utenti comuni locali non sono più accessibili, perché nascoste sotto quanto acquisito dal servente NFS.

Volendo fare le stesse cose a mano, senza l'aiuto dello script, si potrebbe ottenere lo stesso risultato dell'esempio attraverso i passaggi seguenti:

  1. si modifica o si crea il file /etc/defaultdomain, inserendo una riga contenente esattamente il nome del dominio NIS;

    nano-domain
    
  2. si modifica o si crea il file /etc/yp.conf, inserendo una riga contenente la direttiva ypserver, con l'indirizzo del servente NIS;

    ypserver 192.168.1.254
    
  3. si monta la directory /home/ remota;

    mount -t nfs 192.168.1.254:/home /home[Invio]

  4. si riavvia il servizio NIS.

    /etc/init.d/nis stop[Invio]

    /etc/init.d/nis start[Invio]

Se, pur essendo tutto in ordine, il NIS non è in grado di collegarsi, è probabile che sia necessario disattivare presso il servente NIS la gestione delle parole d'ordine oscurate (shadow password).

Per approfondire l'argomento si possono consultare i capitoli 160 e 161.

Si osservi che l'utente tizio e gli altri utenti comuni standard, previsti per nanoLinux, sono associati a numeri UID e GID inferiori a 1 000, ovvero al di sotto del livello iniziale previsto per le utenze comuni. Il NIS predisposto con nanoLinux prevede la condivisione delle utenze che abbiano numeri UID da 1 000 in su, pertanto, anche volendo, le utenze standard di nanoLinux non sono condivisibili se non si cambiano i numeri UID e GID nei file /etc/passwd e /etc/group.

17.19   Sicurezza elementare

nanoLinux dispone di un servente per il protocollo SECSH (Secure Shell), che però non viene avviato automaticamente con il sistema operativo, durante il funzionamento da CD-ROM o da DVD-ROM, perché sarebbe anche troppo facile raggiungere l'elaboratore conoscendo perfettamente le parole d'ordine degli utenti previsti. Come già descritto, anche la condivisione dei dati attraverso il protocollo NFS non è attiva in modo predefinito se si sta usando il sistema da CD-ROM o da DVD-ROM. Inoltre, alcuni livelli di nanoLinux prevedono la disponibilità di Samba, per consentire l'accesso agli utenti anche attraverso elaboratori con sistema operativo MS-Windows. Per attivare questi tre servizi, rispettivamente, si può intervenire nel modo seguente:

/etc/init.d/ssh start[Invio]

/etc/init.d/nfs-kernel-server start[Invio]

/etc/init.d/samba start[Invio]

Eventualmente si possono usare i comandi nanorc freeaccess start e nanorc freeaccess stop per l'avvio e l'arresto di questi i servizi.

nanoLinux dispone anche di Psad per il controllo delle segnalazioni generate dal filtro dei pacchetti. Durante il funzionamento da CD-ROM o da DVD-ROM, Psad risulta non essere attivo. Per metterlo in funzione, dopo aver configurato correttamente la registrazione degli eventi che interessano attraverso Iptables, occorre avviare il servizio:

/etc/init.d/psad start[Invio]

Per approfondire l'uso di Psad si può consultare il capitolo 216.

17.20   Collegamento attraverso il modem

Il comando nanorc ppp on dovrebbe consentire un collegamento guidato a un fornitore di accesso a Internet attraverso una linea telefonica commutata. Il funzionamento di questo comando dipende comunque dalla presenza di un modem esterno collegato a una porta seriale standard.

Se tutto va bene, è sufficiente avviare nanorc ppp on con i privilegi dell'utente root e seguire le istruzioni. Viene richiesto di selezionare la porta seriale corrispondente al modem, il nominativo dell'utenza con cui si è riconosciuti, la parola d'ordine e il numero di telefono del fornitore. In ogni momento è possibile annullare l'operazione selezionando il pulsante grafico <Cancel> o <Annulla>, oppure premendo la combinazione [Ctrl+c].

Il comando, attraverso le informazioni inserite, crea i file /etc/ppp/chap-secrets e /etc/ppp/pap-secrets di volta in volta.

Per concludere un collegamento attivato in questo modo si può usare il comando nanorc ppp off, oppure lo script ppp-off; in alternativa si può anche eliminare il processo corrispondente a pppd.

È disponibile anche lo script ppp-on-it, realizzato in modo specifico per la connessione attraverso alcuni fornitori di accesso italiani che offrono un servizio gratuito. Il funzionamento di questo script è equivalente a nanorc ppp on, con la differenza che sono già disponibili alcuni numeri di telefono noti. Questo script non è più aggiornato, ma viene lasciato per chi desidera adattarlo alle proprie esigenze. Infatti, se si installa nanoLinux nel disco fisso, può essere conveniente modificare questo script in modo da inserire stabilmente alcune informazioni personali, quali il nominativo, la parola d'ordine e il file di dispositivo relativo al modem, attraverso l'impostazione di alcune variabili di ambiente, il cui significato dovrebbe essere intuitivo:

#
# Variabili personalizzabili.
#
PASSWORD_LIBERO="frt653w8"
PASSWORD_WIND="dsweaq287"
PASSWORD_TISCALI="jkiuvcdsw3"
PASSWORD_TIN="98jmnvcds"
PASSWORD_INTERFREE="98dsa23asd"
#
UTENTE_LIBERO="tizio.tizi@libero.it"
UTENTE_WIND="tizio.tizi"
UTENTE_TISCALI="tizio.tizi"
UTENTE_TIN="tizio87"
UTENTE_INTERFREE="blabla56"
#
TELEFONO_LIBERO=""
TELEFONO_WIND=""
TELEFONO_TISCALI=""
TELEFONO_TIN=""
TELEFONO_INTERFREE=""
#
PERIFERICA="/dev/ttyS0"

Per approfondire l'argomento si può consultare la parte xxix dedicata alla gestione di modem e porte seriali.

17.21   La posta elettronica e i collegamenti saltuari

Quando non si può gestire localmente un servente SMTP sempre in funzione, si utilizza normalmente un indirizzo di posta elettronica collocato presso un elaboratore esterno; pertanto, con nanoLinux è possibile scaricare la posta remota attraverso Fetchmail (capitolo 176). Lo scarico della posta si può fare sia quando si usa il CD-ROM o il DVD-ROM, sia quando il sistema operativo è stato installato nel disco fisso:

fetchmail -k -u tizio box.brot.dg[Invio]

L'esempio mostra il caso di una persona che ha l'utenza tizio presso l'elaboratore box.brot.dg, il quale viene interpellato in qualità di servente POP3 o IMAP.

Si osservi che ci sono fornitori di accesso a Internet che per accedere alla casella di posta richiedono l'indicazione dell'indirizzo di posta elettronica completo; per esempio tizio@brot.dg. In tal caso, il comando va modificato di conseguenza:

fetchmail -k -u tizio@brot.dg box.brot.dg[Invio]

Nei due esempi mostrati appare l'uso dell'opzione -k che garantisce di prelevare solo una copia dei messaggi, senza eliminarli dal servente remoto. Se si sta utilizzando una copia installata di nanoLinux, si potrebbe decidere di scaricarli definitivamente, anche usando l'opzione -a se necessario.

Come si può intuire, in questo modo l'utilizzatore acquisisce i messaggi presso la propria utenza locale, da dove può consultarli con Mailx o con gli altri programmi MUA disponibili nel CD-ROM o nel DVD-ROM.

Una volta confermato il comando, viene richiesto l'inserimento della parola d'ordine necessaria per accedere alla casella di posta remota. Inoltre, Fetchmail fa tentativi con diversi protocolli e in alcuni casi si possono vedere dei messaggi di errore che comunque non rappresentano necessariamente un problema nell'inserimento del comando da parte dell'utilizzatore.

Prima di inviare dei messaggi di posta elettronica, per i quali si vuole che sia modificato il mittente in modo automatico, è necessario utilizzare il comando nanorc mta sender. Successivamente, se si inviano messaggi a indirizzi esterni alla rete a cui si è connessi, questi rimangono in coda nell'ambito di Exim e si può verificare la loro presenza con il comando mailq:

mailq[Invio]

Quando si ripristina il collegamento necessario, questi messaggi possono essere inviati con l'ausilio del comando seguente:

exim -qf[Invio]

Se il collegamento viene attivato tramite nanorc ppp on, questo comando viene impartito automaticamente, appena la connessione è attiva.

I messaggi inviati e rimasti in coda per l'impossibilità temporanea di recapitarli, sono memorizzati all'interno di file contenuti a partire dalla directory /var/. Se si tratta di una copia di nanoLinux installata nel disco fisso e si arresta il sistema, la coda viene preservata nel riavvio successivo; al contrario, se si sta usando nanoLinux da CD-ROM o da DVD-ROM e si arresta il sistema, questi messaggi in coda vengono perduti.

17.22   Messaggi locali di posta elettronica

In varie circostanze, il sistema genera dei messaggi di posta elettronica diretti localmente all'utente root. Secondo le convenzioni comuni, l'utente root non deve poter ricevere direttamente dei messaggi, pertanto di solito si configura il sistema di recapito (MDA) in modo da rinviare i messaggi all'utente comune che corrisponde in sostanza alla stessa persona che può avere i privilegi di amministratore. In questo caso, il file /etc/aliases è predisposto in modo da rinviare i messaggi per root all'utente tizio, pertanto la casella di questo utente viene spesso occupata da messaggi amministrativi.

Una volta installato nanoLinux, è poco probabile che si vogliano usare gli utenti predefiniti (tizio, caio e gli altri), pertanto, è bene ricordare di modificare il file /etc/aliases in modo da rinviare la posta dell'utente root a un utente comune appropriato, per esempio nel modo seguente, dove è evidenziata la riga significativa:

postmaster: root
root: daniele

daemon: root
bin: root
sys: root
...

17.23   Stampa

nanoLinux include un servente di stampa compatibile con il tipo BSD, dove il file /etc/printcap può essere configurato facilmente con l'aiuto di nanorc.

Le prime edizioni di nanoLinux includevano un file /etc/printcap adatto per tutti i tipi di stampante gestibile, dove era sufficiente usare l'opzione -P in modo appropriato per scegliere il tipo di stampante. Questo meccanismo non viene più adottato, perché ci sono programmi che, utilizzando la stampante, scandiscono ogni coda dichiarata nel file /etc/printcap, introducendo ritardi inspiegabili.

Con il comando nanorc printer config si rigenera il file /etc/printcap, specificando una sola coda di stampa predefinita, che può corrispondere anche a un servizio presso un elaboratore remoto:

nanorc printer config[Invio]

.------------------------Setup default printer type--------------------------.
| Please, select one of the following printer filters:                       |
| .------------------------------------------------------------------------. |
| | bj10e                      /etc/magicfilter/bj10e-filter               | |
| | bj200                      /etc/magicfilter/bj200-filter               | |
| | bj600_draft                /etc/magicfilter/bj600_draft-filter         | |
| | bj600                      /etc/magicfilter/bj600-filter               | |
| | bj610                      /etc/magicfilter/bj610-filter               | |
| | bj800_draft                /etc/magicfilter/bj800_draft-filter         | |
| | bj800                      /etc/magicfilter/bj800-filter               | |
| | cps300                     /etc/magicfilter/cps300-filter              | |
| | cps400                     /etc/magicfilter/cps400-filter              | |
| | cps600                     /etc/magicfilter/cps600-filter              | |
| | cpsonly300                 /etc/magicfilter/cpsonly300-filter          | |
| | cpsonly400                 /etc/magicfilter/cpsonly400-filter          | |
| | cpsonly600                 /etc/magicfilter/cpsonly600-filter          | |
| | deskjet                    /etc/magicfilter/deskjet-filter             | |
| | dj500c                     /etc/magicfilter/dj500c-filter              | |
| `-v(+)-------------------------------------------------------------------' |
|                                                                            |
|                                                                            |
|----------------------------------------------------------------------------|
|                       <  OK  >              <Cancel>                       |
`----------------------------------------------------------------------------'

Dopo avere specificato il nome del filtro da usare, si può indicare l'indirizzi IPv4 presso il quale si trova la stampante; se si tratta dell'indirizzo 127.0.0.1 o se si lascia vuoto il campo, si intende fare riferimento a una stampante locale.

.--------Print address-----------.
| Please insert the printer IPv4 |
| address; if the printer is     |
| local, just use "127.0.0.1" or |
| leave it blank:                |
| .----------------------------. |
| |127.0.0.1                   | |
| `----------------------------' |
|                                |
|--------------------------------|
|     <  OK  >     <Cancel>      |
`--------------------------------'

Se si fa riferimento a una stampante locale, viene richiesto di indicare il file di dispositivo a cui corrisponde la stampante:

.---Setup default printer device-----.
| Please, select one of the          |
| following printer devices:         |
| .--------------------------------. |
| |   /dev/lp0      /dev/lp0       | |
| |   /dev/usb/lp0  /dev/usb/lp0   | |
| `--------------------------------' |
|------------------------------------|
|       <  OK  >     <Cancel>        |
`------------------------------------'

Quando si installa nanoLinux nel disco fisso, se questo non viene aggiornato automaticamente, tramite il protocollo DHCP, è necessario predisporre il file /etc/printcap con l'aiuto del comando nanorc printer config, ritoccandolo eventualmente a mano in un momento successivo. Segue un esempio riferito alla stampa compatibile con un modello HP Laserjet generico, collegata alla prima porta parallela:

lp:\
        :lp=/dev/lp0:\
        :sd=/var/spool/lpd/lp:\
        :af=/var/log/lp-acct:\
        :lf=/var/log/lp-errs:\
        :if=/etc/magicfilter/laserjet-filter:\
        :pl#66:\
        :pw#80:\
        :pc#150:\
        :mx#0:\
        :sh:

Con il comando nanorc printer config è possibile configurare una sola stampante; se si vogliono gestire più stampanti, o semplicemente più code differenti, occorre modificare il file /etc/printcap a mano. L'esempio seguente riporta l'esempio di due code di stampa: quella predefinita riguarda una stampante locale HP Laserjet, mentre la coda successiva (lp2) è rivolta a una stampante remota (192.168.1.254), senza specificare il tipo di filtro:

lp:\
        :lp=/dev/lp0:\
        :sd=/var/spool/lpd/lp:\
        :af=/var/log/lp-acct:\
        :lf=/var/log/lp-errs:\
        :if=/etc/magicfilter/laserjet-filter:\
        :pl#66:\
        :pw#80:\
        :pc#150:\
        :mx#0:\
        :sh:

lp2:\
        :sd=/var/spool/lpd/lp:\
        :af=/var/log/lp-acct:\
        :lf=/var/log/lp-errs:\
        :pl#66:\
        :pw#80:\
        :pc#150:\
        :mx#0:\
        :mc#999:\
        :rp=lp:\
        :rm=192.168.1.254:\
        :sh:

Se per qualche ragione la stampa attraverso la coda consueta non dovesse funzionare, è disponibile lo script minilpr, nella directory /etc/script/, che stampa utilizzando direttamente il file di dispositivo /dev/lpn, oppure /dev/usb/lpn. In questo modo la stampa funziona, ma solo se la stampante è libera, impegnando il programma che richiede la stampa fino alla fine di questa.

Per usare il comando minilpr si deve specificare l'opzione -P, ma si deve osservare che il nome da associare all'opzione può essere piuttosto articolato:

nome_filtro_di_stampa[-{p|u}[n]]

Nell'estensione, la lettera «p» indica un collegamento a una porta parallela, mentre la lettera «u» indica l'uso di una porta USB; inoltre, il numero finale consente si selezionare quale porta: zero nel caso della prima, ma è anche predefinito, uno nel caso della seconda.

Per esempio se si dispone di una stampante compatibile con il modello HP Laserjet generico, dopo aver visto con il comando nanorc printer list che esiste il nome laserjet, sapendo che questa stampante è collegata a una porta USB e non ci sono altre stampanti, si può usare il comando lpr in questo modo:

minilpr -Plaserjet-u0

Se nel nome della stampante si omette il numero finale si intende zero; se si omette tutta l'estensione, si fa riferimento alla prima porta parallela. L'esempio seguente fa riferimento all'uso di una stampante compatibile con il filtro denominato laserjet, collegata attraverso la prima porta parallela:

minilpr -Plaserjet

Per approfondire l'argomento si può consultare la parte xxi dedicata alla stampa.

17.24   Utilizzo dello scanner

nanoLinux III e IV prevedono la presenza di SANE per la gestione dello scanner. Per gli scanner che vengono riconosciuti automaticamente non ci sono problemi di utilizzo, inoltre è prevista una configurazione predefinita di SANE, tale da concedere l'accesso attraverso la rete, purché si tratti di indirizzi privati o comunque locali.

Per accedere a uno scanner remoto, è necessario intervenire nel file di configurazione /etc/sane.d/net.conf di ogni nodo cliente; tuttavia, se si usa il DHCP, lo script che si occupa della configurazione dinamica aggiorna questo file inserendo tutti gli elaboratori che risultano fornire qualche servizio (anche se diverso), considerando che uno scanner di rete potrebbe essere collocato in uno di quelli.

In pratica, se si vuole usare il DHCP e si intende predisporre uno scanner di rete, conviene collocare questo presso lo stesso elaboratore che funge già da servente di stampa, oppure quello che offre il servizio NIS, oppure anche quello che si usa per accumulare il registro di sistema degli elaboratori appartenenti alla rete locale.

17.25   La grafica dal punto di vista dell'utente comune

Anche una volta installato nanoLinux, l'utente comune inesperto, non ha praticamente alcuna possibilità di modificare l'aspetto del sistema grafico; al massimo può cambiare il colore dello sfondo attraverso le voci del menù previste per questo. Questa informazione viene memorizzata nel file ~/.backgroundcolor, che può anche essere modificato a mano.

Eventualmente, il file ~/.wallpaper può essere usato per contenere (o per puntare, se si vuole usare un collegamento simbolico) un'immagine da mettere sullo sfondo. Per leggere questo file viene usato ImageMagick, pertanto l'immagine può essere praticamente in qualunque formato grafico, benché il file in questione sia sprovvisto di estensione.

L'utente comune non ha la possibilità di configurare definitivamente la velocità o l'accelerazione del puntatore del mouse; per queste e altre cose simili deve usare ogni volta il comando xset, per il quale appare qualche esempio nel menù di nanoLinux III e IV.

Eventualmente, l'utente più preparato può sempre realizzare il proprio file ~/.xinitrc, partendo eventualmente da una copia di /etc/X11/xinit/xinitrc, in cui tutte queste cose possono essere gestite in modo più libero. Eventualmente potrebbe anche predisporre una propria configurazione di Fvwm, avendo cura di predisporre per questo anche il proprio file ~/.xinitrc, magari con istruzioni di questo tipo:

...
if [ -x /usr/bin/fvwm2 ]
then
    exec fvwm2 -f /home/tizio/.fvwm2rc
else
    exec fvwm95 -f /etc/X11/fvwm95/system.fvwm95rc
fi

In questo modo, evidentemente, si usa per Fvwm la configurazione contenuta nel file /home/tizio/.fvwm2rc.

17.26   Memoria virtuale

In fase di avvio, il CD-ROM o il DVD-ROM di nanoLinux cerca di individuare tra i dischi fissi delle partizioni già predisposte per lo scambio della memoria virtuale. Se queste partizioni esistono e sono inizializzate correttamente, nanoLinux le utilizza.

Se non sono disponibili partizioni del genere, ma si ritiene ugualmente di attivare una memoria di scambio, è possibile creare e poi utilizzare un file come memoria virtuale. Si crea e si attiva questo file con il comando seguente:

swap file_di_dispositivo

Per esempio, il comando seguente tenta di creare il file nlnx3tmp.swp, nella directory radice della partizione corrispondente al file di dispositivo /dev/hda1, attivando all'interno di questo la gestione dello scambio della memoria virtuale:

swap /dev/hda1[Invio]

Se il disco o la partizione indicati hanno una dimensione adeguata e c'è spazio libero a sufficienza, il file viene creato e lo scambio della memoria viene attivato.

All'avvio del CD-ROM o del DVD-ROM, se non vengono trovate partizioni già previste per lo scambio della memoria virtuale, il sistema controlla le partizioni corrispondenti ai file di dispositivo da /dev/hda1 a /dev/hda7, alla ricerca del file nlnx3tmp.swp. Se questo file viene trovato, si ottiene l'attivazione automatica della memoria virtuale al suo interno. In pratica, se esiste questo file, si intende l'intenzione di gestire la memoria virtuale. Si osservi, però, che la ricerca termina appena viene trovato uno di questi file.

Quando si installa nanoLinux nel disco fisso, questa ricerca di partizioni e file da usare per attivare la memoria virtuale viene meno, perché, come già descritto, si tratta di qualcosa che va definito esplicitamente nel file di configurazione /etc/fstab.

17.27   Dati variabili nel CD-ROM o nel DVD-ROM

Quando nanoLinux funziona da un CD-ROM o da un DVD-ROM, il contenuto di alcune directory, come /etc/ e /var/, è in realtà il contenuto di qualcosa che si trova a partire da /ramdisk/, che a sua volta è il punto di innesto di un disco RAM. In tal modo, il contenuto di queste directory può essere modificato, anche se solo temporaneamente; ovviamente, per risparmiare memoria, la maggior parte dei file contenuti a partire da /ramdisk/ è costituita da collegamenti simbolici agli stessi file, che nel CD o nel DVD appaiono a partire da /HD-ROOT/... e come tali non sono modificabili. Per modificare tali file occorre cancellare i collegamenti simbolici relativi, sostituendoli con una copia del file a cui questi puntano.

Merita un po' di attenzione la configurazione di Exim: il file /etc/exim/exim.conf, ovvero /ramdisk/etc/exim/exim.conf, può essere modificato, ma occorre tenere presente che questo viene aggiornato continuamente dal programma nanorc-config-exim, attraverso Cron. Pertanto, per poter intervenire effettivamente in questo file, occorre prima fermare Cron, oppure intervenire nel file /etc/cron.d/config-exim, ovvero /ramdisk/etc/cron.d/config-exim. La seconda delle due ipotesi è la migliore, perché senza Cron, Exim non recapiterebbe i messaggi che rimangono in coda.

Sempre per motivi didattici, nanoLinux include PostgreSQL, che per funzionare da CD-ROM o da DVD-ROM, deve disporre dei file delle basi di dati a partire da /ramdisk/var/lib/postgres/. Tuttavia, dal momento che ciò richiede un dispendio di memoria molto elevato, la creazione di questi dati nel disco RAM viene fatta attraverso un comando apposito, che prepara e avvia il servizio: nanorc postgresql start, il quale crea contestualmente l'utente PostgreSQL pgnanouser e la base di dati nanodb (appartenente allo stesso utente). Eventualmente, è disponibile anche il comando nanorc postgresql stop, che ferma il servizio e cancella i dati dalla memoria. Naturalmente, l'utilità di questo tipo di programma sta solo nel poter scrivere degli script da eseguire poi con psql; script che possono risiedere in un dischetto montato per l'occasione.

I comandi nanorc postgresql start e nanorc postgresql stop richiedono i privilegi dell'utente root.

17.28   Controllo a distanza

Tra le varie applicazioni che accompagnano nanoLinux, c'è anche VNC (capitolo 118). A questo è stato associato uno script per facilitarne l'utilizzo con degli studenti e anche in altre situazioni, come descritto nella tabella seguente. Si osservi che i nomi riportati nella tabella sono collegamenti simbolici che puntano a vncrc, che in tal modo seleziona direttamente la funzione richiesta, senza passare per il menù iniziale.

Comando Descrizione

vncs

Si avvia da una console per attivare un servente VNC, definendo una parola d'ordine.

vncss

Si avvia da una console per attivare un servente VNC condivisibile, definendo una parola d'ordine.

vncsc

Si avvia da una console per attivare un servente VNC, definendo una parola d'ordine, assieme al cliente VNC necessario a interagire con questo.

vncssc

Si avvia da una console per attivare un servente VNC condivisibile, definendo una parola d'ordine, assieme al cliente VNC necessario a interagire con questo.

vncv nodo

Si avvia da una finestra di terminale per vedere cosa avviene con il servente VNC in funzione presso il nodo indicato.

vncc nodo

Si avvia da una finestra di terminale per interagire con il servente VNC in funzione presso il nodo indicato.

vncvx nodo

Si avvia da una console per visualizzare il servente VNC in funzione presso il nodo indicato, avviando contestualmente anche il servente X, funzionando poi a tutto schermo. Per chiudere la connessione, senza interrompere il lavoro del servente VNC remoto, si deve usare la combinazione [Ctrl+Alt+Backspace].

vnccx nodo

Si avvia da una console per interagire con il servente VNC in funzione presso il nodo indicato, avviando contestualmente anche il servente X, funzionando poi a tutto schermo. Per chiudere la connessione, senza interrompere il lavoro del servente VNC remoto, si deve usare la combinazione [Ctrl+Alt+Backspace].

sharedx

Si avvia da una console, al posto di startx, per fare utilizzare la grafica agli studenti, consentendo a un insegnante di controllare ciò che avviene.

nosharedx

Si avvia da una console, al posto di startx, per fare utilizzare la grafica a un insegnante, consentendo agli studenti di visualizzare ciò che avviene. Può essere usato naturalmente anche per fare l'opposto, quando l'insegnante vuole solo la possibilità di visualizzare le schermate, senza doverle anche controllare.

viewsharedx nodo...

viewremotex nodo...

Si avvia da una finestra di terminale, indicando una serie di nodi da controllare, per visualizzare il funzionamento dei serventi VNC avviati lì attraverso lo script sharedx o nosharedx.

takesharedx nodo...

Si avvia da una finestra di terminale, indicando una serie di nodi da controllare, per controllare il funzionamento dei serventi VNC avviati lì attraverso lo script sharedx.

Questi comandi sono pensati per due situazioni comuni: un insegnante che ha la necessità di mostrare a tutti quello che sta facendo, oppure un insegnante che ha bisogno di controllare in qualche modo ciò che stanno facendo gli studenti.

Nel primo caso, l'insegnante può avviare il comando vncsc, specificando la parola d'ordine che poi deve comunicare agli studenti, i quali si possono collegare al servente VNC dell'insegnante, con il comando vncv o vncvx. In alternativa l'insegnante può usare il comando nosharedx, in modo che gli studenti possano vedere ciò che fa, senza usare alcuna parola d'ordine, attraverso viewremotex.

Nel secondo caso, viene richiesto agli studenti di avviare X per mezzo del comando sharedx o nosharedx, in modo che l'insegnante possa controllare attraverso il comando takesharedx o viewremotex rispettivamente. Si osservi che con il comando sharedx, viewremotex (viewsharedx) e takesharedx non viene inserita alcuna parola d'ordine, perché ne viene usata una prestabilita.

Tutto il meccanismo è organizzato in modo tale da far funzionare il servente VNC sulla stazione grafica :1, pertanto questa informazione non viene mai impartita.

I comandi che avviano un servente VNC richiedono di specificare espressamente la geometria dello schermo:

.---------------geometry-----------------.
| Select VNC server geometry:            |
| .------------------------------------. |
| |   1024x768   default               | |
| |   1440x1080                        | |
| |   1408x1056                        | |
| |   1376x1032                        | |
| |   1344x1008                        | |
| |   1312x984                         | |
| |   1280x960                         | |
| |   1248x936                         | |
| |   1216x912                         | |
| |   1184x888                         | |
| |   1152x864                         | |
| |   1120x840                         | |
| |   1088x816                         | |
| |   1056x792                         | |
| |   1024x768   usual resolution      | |
| |   992x744                          | |
| |   960x720                          | |
| `---v(+)-----------------------------' |
|----------------------------------------|
|       <  OK   >    <Annulla>           |
`----------------------------------------'

Se si vuole accedere al servente VNC attraverso una finestra, conviene utilizzare una geometria leggermente inferiore a quella dello schermo che si ha effettivamente a disposizione. Per esempio, se si utilizza il sistema grafico a una risoluzione di 1024×768, può essere conveniente avviare il servente VNC a 960×720.

Il menù dello script vncrc si presenta in due modi diversi, a seconda che sia avviato da una console o da un terminale all'interno di X:

.------------------------nanoLinux VNC run commands--------------------------.
| nanoLinux VNC: VNC server works at ":1" and X works at ":0"                |
| .------------------------------------------------------------------------. |
| |vncs           srvr             + new password                          | |
| |vncss        shsrvr             + new password                          | |
| |vncsc          srvr + cclnt + X + new password                          | |
| |vncssc       shsrvr + cclnt + X + new password                          | |
| |vnccx                 cclnt + X + password "/home/tizio/.vnc/passwd"    | |
| |vncvx                 vclnt + X + password "/home/tizio/.vnc/passwd"    | |
| |nosharedx      srvr + cclnt + X + default password                      | |
| |sharedx      shsrvr + cclnt + X + default password                      | |
| |takesharedx           cclnt + X + default password                      | |
| |viewsharedx           vclnt + X + default password                      | |
| |viewremotex           vclnt + X + default password                      | |
| `------------------------------------------------------------------------' |
|                                                                            |
|----------------------------------------------------------------------------|
|                       <  OK   >            <Annulla>                       |
`----------------------------------------------------------------------------'
.-----------------------nanoLinux VNC run commands--------------------------.
| nanoLinux VNC: remote VNC server works at ":1"                            |
| .-----------------------------------------------------------------------. |
| |   vncc         cclnt + password "/home/tizio/.vnc/passwd"             | |
| |   vncv         vclnt + password "/home/tizio/.vnc/passwd"             | |
| |   takesharedx  cclnt + default password                               | |
| |   viewsharedx  vclnt + default password                               | |
| |   viewremotex  vclnt + default password                               | |
| `-----------------------------------------------------------------------' |
|---------------------------------------------------------------------------|
|                     <  OK   >           <Annulla>                         |
`---------------------------------------------------------------------------'

Le sigle hanno lo scopo di sintetizzare il senso dei vari comandi: srvr indica l'avvio di un servente VNC; vclnt indica l'avvio di un cliente VNC; X indica l'avvio di un servente X (si usa per avviare il cliente VNC da console, usandolo poi a tutto schermo); il prefisso sh, rappresenta il fatto che è consentita la condivisione con più clienti VNC.

La parola d'ordine può essere predefinita, oppure deve essere specificata all'avvio del servente VNC. Quando invece si avvia un cliente VNC, se non si tratta della parola d'ordine predefinita, questa viene letta dal file ~/.vnc/passwd; se non è la stessa richiesta dal servente VNC, la si deve rimpiazzare.

Appunti di informatica libera 2004.10.10 --- Copyright © 2000-2004 Daniele Giacomini -- <daniele (ad) swlibero·org>, <daniele·giacomini (ad) poste·it>


1) A proposito della configurazione iniziale di ht://Dig c'è da osservare che sono stati esclusi di proposito i percorsi che porterebbero alla scansione della documentazione interna (HOWTO) e di quanto potrebbe essere raggiunto all'indirizzo http://localhost/c/, ovvero la partizione che appartenere a un sistema Dos/MS-Windows, perché altrimenti gli indici sarebbero di dimensioni eccessive, superando tranquillamente anche i 100 Mibyte. Naturalmente, si può modificare la configurazione ed eseguire ugualmente la scansione, se questo è ciò che si desidera realmente.


Dovrebbe essere possibile fare riferimento a questa pagina anche con il nome nanolinux_particolarita.html

[successivo] [precedente] [inizio] [fine] [indice generale] [violazione licenza] [translators] [docinfo] [indice analitico]

Valid ISO-HTML!