Configuration HOWTO

Di Guido Gonzato, guido@ibogeo.df.unibo.it Versione 1.3.7, 6 Settembre 1999.

Lo scopo di questo HOWTO è quello di rendere la configurazione del vostro nuovo sistema Linux più veloce e più semplice. Qui troverete un insieme di configurazioni per le applicazioni più comuni, così potrete cominciare a lavorare con un sistema facile da usare.

Indice

1 Introduzione 3 1.1 Perché questo HOWTO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.2 Cosa configureremo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

2 Setup generale del sistema 3 2.1 Alcune informazioni sulla sicurezza . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.2 Il logbook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.3 Tastiera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.4 Floppy di boot e di ripristino . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.5 Kernel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.6 Blocco di sendmail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.7 Prestazioni del disco fisso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.8 Drive Zip per porta parallela . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.9 Driver di dispositivi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.10 Scheda audio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.11 Messaggi di login . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.12 Hostname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.13 Mouse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.14 Punti di mount . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.15 Lilo(8) e LOADLIN.EXE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

2.15.1 Trucco per la sicurezza . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.16 Mail Capability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.17 Configurazione della stampante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.18 SVGATextMode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

3 Compiti di amministrazione comuni 12 3.1 Configurazione di rete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 3.2 Condivisione di Internet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 3.3 Limitazione dell’accesso di rete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 3.4 Esportazioni NFS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 3.5 Server del nome . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

4 Configurazione software 14 4.1 bash(1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 4.2 ls(1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 4.3 less(1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 4.4 emacs(1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 4.5 joe(1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 4.6 jed(1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 4.7 pine(1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 4.8 minicom(1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 4.9 efax(1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 4.10 Ghostscript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 4.11 TeX e programmi accessori . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 4.12 Evitate PPProblemi! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

4.12.1 Partire in fretta con eznet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 4.12.2 Partire in fretta con wvdial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

4.13 POP Client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 4.14 Sistema X Window (XFree86) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

4.14.1 Configurare il server X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 4.14.2 Il tastierino numerico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 4.14.3 Login grafico con xdm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 4.14.4 Window Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 4.14.5 Impostazioni di default per le applicazioni X11 . . . . . . . . . . . . . . . . . . . . . . 29

4.15 Configurazione per gli utenti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 4.16 Creazione di .rpms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 4.17 Fare l’upgrade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

5 Software per la configurazione 29

6 Fine 30 6.1 Copyright (in inglese) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 6.2 Commenti e critiche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 6.3 Liberatoria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

1 Introduzione

1.1 Perché questo HOWTO

Ho installato Linux su molti PC e ho notato che le distribuzioni attuali sono ottime ma, purtroppo, mancano di alcune configurazioni di base. Molti programmi funzionano subito, ma altri no. Inoltre, ho notato che le solite domande continuano a essere poste su c.o.l.setup.

Per cercare di porre rimedio a questa situazione e per avere un memorandum per le nuove installazioni, mi sono scritto un elenco di cose da fare che ho poi espanso fino a trasformarlo in questo HOWTO. Qui troverete alcuni esempi di configurazioni per i programmi più comuni, il che dovrebbe farvi risparmiare un bel po’ di tempo e lavoro.

Alcuni degli esempi di configurazione in questo HOWTO dipendono in qualche modo dalla distribuzione. Ho accesso solo a macchine Red Hat 5.2, con kernel 2.0.36, quindi non prendete per oro colato i miei suggerimenti se avete altre distribuzioni. Non dovrebbe comunque essere difficile adattare i miei suggerimenti ad altri distributori.

Questo HOWTO non è in grado, né ha lo scopo di sostituire gli altri. La lettura della documentazione e degli HOWTO ripaga sempre, quindi siete comunque invitati a farlo. Se vi rendete conto che qualcosa non è chiaro, fate riferimento all’HOWTO corrispondente. Permettetemi di ricordarvi che il luogo giusto per cercare aiuto relativo alla configurazione di Linux è Usenet, per esempio news:comp.os.linux.setup . Vi prego, di non chiedere direttamente il mio aiuto perché sono molto impegnato.

È possibile reperire questo documento, incluse alcune traduzioni, all’indirizzo

http://metalab.unc.edu/mdw/HOWTO . Qui si possono trovare anche tutti i riferimenti agli altri HOWTO. La versione più aggiornata è disponibile all’indirizzo http://ibogeo.df.unibo.it/guido/Configuration .

1.2 Cosa configureremo

Le configurazioni hardware di un PC sono infinite, ma una è molto comune: un PC con un disco fisso suddiviso in tre partizioni (una per DOS/Windows, una per Linux e una partizione di swap), scheda audio, modem, drive CD–ROM, stampante, mouse. Il drive Zip in versione per la porta parallela è inoltre assai diffuso. Questa macchina è possibilmente parte di una rete mista basata su Windows e Linux dove ha la funzione di server.

Presumerò che questo è l’hardware che volete configurare, ma è semplice adattare i consigli e gli esempi che vi darò per altre configurazioni. È implicito che dovrete essere root per modificare/configurare/manipolare il sistema.

E ora, rimbocchiamoci le maniche.

2 Setup generale del sistema

2.1 Alcune informazioni sulla sicurezza

Anche prima dell’avvio del sistema, dovreste decidere il livello di sicurezza che desiderate implementare. Innanzitutto, non connettete la macchina alla rete se non avete ancora deciso cosa fare.

La sicurezza è un argomento così ampio che va oltre l’abito di questo HOWTO. Due buoni punti di partenza sono la Linux Security Administrator’s Guide all’indirizzo http://www.seifried.org/lasg e la Linux Security Guide all’indirizzo http://nic.com/~dave/Security . Dovreste almeno tenere in considerazione le seguenti fasi: l’utilizzo delle password di protezione (Shadow Password HOWTO), che limitano l’accesso alla macchina (vedere la sezione 3.3 (Limitazione dell’accesso di rete)), mediante la shell di sicurezza (

http://www.cs.hut.fi/ssh/ ) o la password di sicurezza remota ( http://srp.stanford.edu/srp/ ).

Buona fortuna.

2.2 Il logbook

Per ottenere un’installazione corretta, è essenziale che sappiate esattamente quello che accade alla vostra macchina, quali pacchetti sono stati installati, quali sono stati rimossi o modificati e così via. Quindi, la prima cosa da fare prima di manipolare il computer è quella di iniziare un “logbook”. In questo file è possibile prendere nota di tutti gli spostamenti fatti come root. Nel mio logbook c’è una sezione in cui elenco tutti i file di sistema modificati, .rpms aggiuntivi e i .tar.gz che ho installato. Tenendo la traccia delle varie operazioni, dovreste essere in grado di ottenere di nuovo un’installazione originale.

Fate una copia di backup dei file di sistema che modificate. Ancora meglio, utilizzate RCS. Sarete in grado di tenere traccia di tutte le modifiche. Non lavorate mai come root senza registrare ogni mossa.

2.3 Tastiera

Se vi siete persi questo passaggio durante l’installazione o avete cambiato tastiera, dovrete:

• scegliere un’adeguata mappa di tastiera da /usr/lib/kbd/keytables/; ad esempio, it.map seleziona la tastiera italiana;

   • modificare il file /etc/sysconfig/keyboard in modo che appaia: KEYTABLE="/usr/lib/kbd/
     keytables/it.map";

• per impostare il tasso di ripetizione e il ritardo della tastiera, aggiungete questa linea a /etc/rc.d/

     rc.sysinit (Red Hat) o /etc/rc.d/rc.boot (Caldera) o /etc/rc.d/boot (S.u.S.E):
          /sbin/kbdrate -s -r 16 -d 500  # o come preferite

Per caricare la nuova mappa di tastiera, date il comando /etc/rc.d/init.d/keytablestart. Per quanto riguarda altre impostazioni relative ai tasti speciali, troverete istruzioni più avanti.

Per abilitare NumLock per default, aggiungete queste linee a /etc/rc.d/rc.sysinit:

     for tty in /dev/tty[1-9]*; do
       setleds -D +num < $tty
     done

2.4 Floppy di boot e di ripristino

Create due floppy di boot per il sistema appena installato. La distribuzione può includere un comando per la creazione di tale floppy. In caso contrario, questi comandi fanno al vostro caso:

     #~ dd if=/boot/vmlinuz-2.0.36-0.7 of=/dev/fd0  # usa l'immagine del kernel
     #~ rdev /dev/fd0 /dev/hda2                     # la partizione di Linux

Inoltre, fate in modo di avere pronti almeno un paio di floppy di ripristino. Potete trovare un’ampia scelta

di dischi di ripristino all’indirizzo ftp://metalab.unc.edu/pub/Linux/system/recovery . Se non sapete

quale scegliere, vi consiglio di provare Tomsbtrt.

2.5 Kernel

Io credo che a questo punto la cosa più sensata sia farsi un kernel su misura. È molto semplice, ma per ogni dubbio leggetevi il file README in /usr/src/linux/ o il Kernel HOWTO. Suggerimenti:

• considerate le vostre necessità con attenzione. È più produttivo scegliere una configurazione per il kernel, applicare le patch e compilare una volta per tutte, piuttosto che riconfigurare e ricompilare ogni mese; questo vale specialmente se la vostra Linux box è un server. Non dimenticate di aggiungere il supporto per l’hardware che potreste aggiungere in futuro (ad es. SCSI, Zip, schede di rete, ecc.). L’uso dei moduli è sempre la scelta migliore;

• se il vostro PC è basato su CPU Cyrix che non viene riconosciuta come tale dal kernel, ci sono delle patch per incrementarne le prestazioni. Informazioni su http://www.linuxhq.com/patch/20-p0591.html ;

• gli utenti di portatili possono aumentare le leggibilità dello schermo LCD. Una volta suggerivo di applicare una patch al kernel, ma ora credo che SVGATextMode (vedere la sezione 2.18 (SVGATextMode)) sia la soluzione migliore. Per chi vuole, comunque, la patch “Big Cursor” si trova all’indirizzo

http://www.linuxhq.com/patch/20-p0239.html ;

• ancora per gli utenti di portatili: se volete usare un modem/fax PCMCIA, non compilate il supporto seriale come modulo, ma direttamente nel kernel. In caso contrario, il modem PCMCIA non funzionerà;

• se usate schede PCMCIA, compilate anche i relativi moduli; inoltre, non dimenticate di modificare /etc/pcmcia/network.opts se usate una schedina di rete;

• se modprobe vi dà quei fastidiosi messaggi di errore indicando che alcuni moduli non ci sono, dovete correggere /etc/conf.modules. Ad esempio, se non usate i moduli ipx e appletalk, aggiungete queste linee:

     alias net-pf-4 off
     alias net-pf-5 off

• per risparmiare tempo la prossima volta che compilerete il kernel, è consigliabile salvare la configurazione su file e mettere quest’ultimo al sicuro. Attenzione però: se fate l’upgrade del kernel, questo file sarà quasi certamente inutile, perché non contiene le funzionalità del nuovo kernel.

2.6 Blocco di sendmail

Su alcuni sistemi, sendmail blocca la macchina per un paio di minuti in fase di boot. Si distinguono due casi: 1) il PC non è direttamente connesso a Internet, 2) lo è, e ha un indirizzo IP fisso. Correzione per il caso 1: assicuratevi che /etc/hosts contenga una linea con scritto

127.0.0.1 localhost

Nel secondo caso, il blocco avviene se /etc/hosts contiene questa linea:

127.0.0.1   localhost   host_name

che dovrete modificare così:

127.0.0.1    localhost
w.x.y.z      host_name

Vedete anche alla sezione 2.12 (Hostname).

2.7 Prestazioni del disco fisso

Le prestazioni del vostro disco fisso possono essere notevolmente migliorate con l’uso accorto di hdparm(8). Se la vostra distribuzione di Linux non lo include, lo troverete su ftp://sunsite.unc.edu/pub/Linux/

system/hardware ; cercate un file chiamato hdparm-X.Y.tar.gz.

Non c’è una formula valida per tutti, poiché molti dettagli dipendono dal disco fisso e dal controller. Visto che si rischia di danneggiare il filesystem, leggete la man page con attenzione prima di usare certe opzioni. Come minimo, potrete aggiungere a /etc/rc.d/rc.sysinit la linea seguente:

     /sbin/hdparm -c1 /dev/hda  # primo drive IDE

che abilita il supporto per l’I/O (E)IDE a 32-bit. Per quanto riguarda l’opzione “-m”, ecco cosa mi ha scritto l’autore di hdparm, Mark Lord:

(...) se il tuo sistema usa componenti di due anni fa [< 1997], andrà tutto bene. Se sono precedenti a questa data, *potrebbero* esserci dei problemi (poco probabilmente). I chip che hanno dato realmente problemi sono stati il CMD0646 e il RZ1000, usati *su vasta scala* sulle schede madre dei 486 e dei (precedenti) 586 circa 2 0 3 anni fa.

Per le macchine recenti, queste impostazioni dovrebbero funzionare bene:

     /sbin/hdparm -c1 -A1 -m16 -d1 /dev/hda

2.8 Drive Zip per porta parallela

Per usare il drive Zip (versione parallela), potete usare il driver standard fornito con i kernel recenti (2.x.x). Durante la configurazione del kernel, assicuratevi di includere il supporto per lo SCSI generico e per i dischi SCSI. Tenete presente che ci possono essere conflitti tra la stampante e il drive Zip se usano la stessa porta parallela, quindi compilate il supporto per entrambi come moduli. È disponibile un driver ppa alternativo

all’indirizzo http://www.torque.net/~campbell .

I dischi Zip sono venduti preformattati sulla partizione /dev/sda4. Per abilitare lo Zip, aggiungere queste

linee a /etc/rc.d/rc.sysinit:
     # Abilita il drive Zip
     /sbin/modprobe ppa

e lo Zip può essere montato tramite /etc/fstab come mostrato di seguito o tramite Mtools aggiungendo

questa linea a /etc/mtools.conf:
     drive z: file="/dev/sda4" exclusive

inoltre, il comando mzip vi consente di estrarre il disco, effettuare la query dello stato, proteggere in scrittura e con password i dischi Zip; vedere man mzip per dettagli. La home page di Mtools è all’indirizzo

http://linux.wauug.org/pub/knaff/mtools .

2.9 Driver di dispositivi

Alcuni dispositivi in /dev (o meglio, collegamenti ai veri driver) possono essere assenti. Controllate a quali dispositivi corrispondono il mouse, il modem e il CD–ROM, poi fate:

     ~# cd /dev
     /dev# ln -s ttyS0 mouse; ln -s ttyS1 modem; ln -s hdb cdrom; ln -s sda4 zip

Dritta: in molti portatili, il mouse è /dev/psaux: tenetelo presente quando installate X11.

Se volete, assegnate chmod 666 a questi dispositivi per renderli accessibili a tutti gli utenti.

2.10 Scheda audio

Tutto ciò che possiedo è una vecchia Sound Blaster 16. Anche se avete a disposizione qualcosa di diverso, potete fare riferimento a quanto segue.

Ho compilato il supporto per la scheda audio come modulo (sb.o). Quindi ho messo queste linee in /etc/

conf.modules:
     options sb io=0x220 irq=5 dma=1 dma16=5 mpu_io=0x330
     alias sound sb

Per attivare l’audio, accertatevi che venga richiamato modprobe sound in /etc/rc.d/rc.sysinit. In alternativa, scaricate il tool sndconfig dal sito Web di RedHat.

2.11 Messaggi di login

Se volete personalizzare i messaggi di login, controllate se il vostro /etc/rc.d/rc.local sovrascrive /etc/ issue e /etc/motd (RedHat lo fa). Se li sovrascrive, dateci sotto con l’editor.

Se desiderate un messaggio di login colorato, potete adattare il rc.local inserendo linee simili a quelle riportate:

     # immette un vero carattere di escape invece di ^[. Per fare questo:
     # emacs: ^Q ESC   vi: ^V ESC   joe:  ` 0 2 7   jed: ` ESC
     ESC="^["  # un vero carattere di escape
     BLUE="$ESC[44;37m"
     NORMAL="$ESC[40;37m"
     CLEAR="$ESC[H$ESC[J"
     > /etc/issue
     echo "$CLEAR" >> /etc/issue
     echo "$BLUE   Welcome to MyServer (192.168.1.1)   " >> /etc/issue
     echo "$NORMAL " >> /etc/issue
     echo "" >> /etc/issue

2.12 Hostname

Impartire il comando hostname nuovo_host_name non basta. Per evitare il problema del blocco di sendmail, seguite queste istruzioni (valide solo per una macchina non collegata a Internet permanentemente):

• modificate /etc/sysconfig/network e cambiate l’hostname qui contenuto (ad es.

     nuovo_host_nome.localdomain);

• modificate /etc/HOSTNAME in modo appropriato;

• aggiungete il nuovo hostname in questa linea in /etc/hosts:

          127.0.0.1  nuovo_host_name.locadomain nuovo_host_name

2.13 Mouse

I servizi di gpm sono utili per il taglia e incolla in modalità testo, e per usare il mouse in alcune applicazioni. Per Red Hat, controllate se avete un file chiamato /etc/sysconfig/mouse e che ci sia scritto:

     MOUSETYPE="Microsoft"
     XEMU3=yes

Inoltre, dovete avere un file /etc/rc.d/init.d/gpm, dove aggiungerete parametri addizionali. Nel mio ho inserito:

     ...
            daemon gpm -t $MOUSETYPE -d 2 -a 5 -B 132 # mouse a due bottoni
     ...

Ovviamente, accertatevi che la configurazione sia quella giusta per il vostro mouse. Dritta: in molti portatili,

MOUSETYPE è “PS/2”.

Per Caldera, per abilitare il mouse basta aggiungere in fondo a /etc/rc.d/rc.boot:

     /usr/bin/gpm

Per S.u.S.E., i parametri per gpm sono in /etc/rc.config; per Debian, si modifica /etc/gpm.conf.

Se volete usare i menu in console con Ctrl-tasto, configurate anche gpm-root. Modificate il menu di default

in /etc/gpm-root.conf, quindi lanciate gpm-root da /etc/rc.d/rc.sysinit (AQVD).

2.14 Punti di mount

È comodo avere dei punti di mount per il floppy, altri dispositivi e directory esportate da NFS. Ad esempio, potreste fare:

     ~# cd /mnt
     /mnt# mkdir floppy ; mkdir cdrom ; mkdir win ; mkdir zip ; mkdir server

che crea i punti di mount per il floppy in formato DOS/Windows, un floppy extra, il CD–ROM, la partizione Windows, il drive Zip per la porta parallela e una directory NFS.

Ora modifiacte il file /etc/fstab e aggiungete queste linee:

     /dev/fd0        /mnt/floppy     auto            user,noauto 0 1
     /dev/cdrom      /mnt/cdrom      iso9660         ro,user,noauto 0 1
     /dev/zip        /mnt/zip        vfat            user,noauto,exec 0 1
     /dev/hda1       /mnt/win        vfat            user,noauto 0 1
     server:/export  /mnt/server     nfs             defaults

Come è ovvio, dovete usare il dispositivo giusto nel primo campo. I kernel recenti hanno il supporto nativo per le partizioni fat32; oppure troverete informazioni e una patch per il kernel all’indirizzo http://bmrc.

berkeley.edu/people/chaffee/fat32.html . man mount per ulteriori informazioni.

Notate il tipo di filesystem “auto” della prima linea. Consente di montare sia i floppy ext2 sia quelli vfat (DOS/Windows). Potreste trovare più conveniente mtools.

2.15 Lilo(8) e LOADLIN.EXE

Molti utenti vogliono poter usare sia Linux che DOS/Windows, e scegliere al boot quale sistema operativo lanciare; questa impostazione dovrebbe avvenire in fase di installazione, ma se nel caso fate come segue. Supponiamo che /dev/hda1 contenga DOS/Windows e che /dev/hda2 contenga Linux.

     ~# fdisk
     Using /dev/hda as default device!
     Command (m for help):a
     Partition number (1-4): 2
     Command (m for help):w
     ~#

Così si rende attiva la partizione di Linux. Scrivetevi quindi questo semplice /etc/lilo.conf:

     boot = /dev/hda2
     compact                # può essere in conflitto con "linear"
     delay = 100            # 10 secondi
     linear                 # elimina il problema "1024 cylinder"
     # message = /boot/bootmesg.txt  # scrivetene uno, se volete
     root = current
     image = /boot/vmlinuz  # fa partire Linux per default dato che rappresenta la prima entry
       label = linux
       read-only
     #  append="mem=128M"   # per avere più memoria di 64 MB
     other = /dev/hda1
       table = /dev/hda
       label = dos

Ora date il comando /sbin/lilo e siete a posto. Visto che LILO è un passaggio cruciale dell’installazione, vi consiglio caldamente di leggervi comunque la sua documentazione.

Per fare partire Linux senza resettare, mettete LOADLIN.EXE in una directory (nella partizione DOS!) compresa nel path del DOS; poi copiate il kernel nella directory (ad esempio) C:\TEMP\VMLINUZ. Questo semplice file .BAT fa partire Linux:

     rem   linux.bat
     smartdrv /C
     loadlin c:\temp\vmlinuz root=/dev/hda2 ro

Se usate Windows 9x, impostate le proprietà di questo file .BAT in modo che parta in modalità MS–DOS.

2.15.1 Trucco per la sicurezza

Un consiglio: fare una copia del MBR prima di installare Linux può salvarvi dai guai. Usate restorrb (incluso nel pacchetto FIPS) prima dell’installazione o un floppy di ripristino e date questo comando:

     rescue:~# dd if=/dev/hda of=MBR bs=512 count=1

e poi fate almeno due copie del file MBR su altrettanti floppy. Se dovesse capitare il disastro, potrete recuperare il MBR originale con il comando:

     rescue:~# dd if=/mnt/MBR of=/dev/hda bs=446 count=1

presumendo che il floppy che contiene MBR sia montato sotto /mnt. In alternativa, usate un floppy di ripristino DOS o Windows e date il comando FDISK /MBR.

2.16 Mail Capability

Di sicuro vorrete leggere anche i messaggi di posta scritti in HTML o che contengono formati di file esotici. Assicuratevi di avere due file: /etc/mime.types e /etc/mailcap. Il primo elenca tipi di file e l’estensione associata, come ad esempio:

     application/postscript          ps eps
     image/jpeg                      jpe jpeg jpg
     text/html                       html

mentre il secondo spiega al client mail come mostrare quel particolare file.

Vi potrebbe arrivare posta da gente che usa Microsoft Outlook, i cui messaggi sono in formato MIME multi–part. Queste due linee, aggiunte in /etc/mailcap, dovrebbero rendere leggibili quei messaggi:

     text/plain; less %s; needsterminal
     text/html; lynx -force_html %s; needsterminal

2.17 Configurazione della stampante

Le distribuzioni che conosco hanno un programma di configurazione per la stampante (printtool, yast o magicfilter); se non ce l’avete, ecco come implementare una semplice configurazione manuale.

Supponiamo che abbiate una stampante non-PostScript (e non “per Windows”!) con cui volete stampare semplice testo (ad es., sorgenti C) e file PostScript tramite Ghostscript, che deve essere già installato.

Configurare la stampante richiede alcuni passaggi:

• controllate qual è il dispositivo parallelo: provate

          ~# echo "hello, world" > /dev/lp0
          ~# echo "hello, world" > /dev/lp1

e segnatevi quale funziona.

• create due directory di spool:

          ~# cd /var/spool/lpd
          /var/spool/lpd/# mkdir raw ; mkdir postscript

• se la vostra stampante, come molte inkjet, presenta l’“effetto scalinata”, vi servirà un filtro. Provate a stampare due linee di testo con

          ~# echo "prima linea" > /dev/lp1 ; echo "seconda linea" > /dev/lp1

e se l’output è così:

          prima linea
                     seconda linea

salvate questo script col nome /var/spool/lpd/raw/filter:

          #!/bin/sh
          # Questo file elimina l'"effetto scalinata"
          awk '{print $0, "\r"}'
     e rendetelo eseguibile con chmod755/var/spool/lpd/raw/filter.

• fate un filtro per l’emulazione PostScript. Scrivete il filtro seguente col nome /var/spool/lpd/

     postscript/filter:
          #!/bin/sh
          DEVICE=djet500
          RESOLUTION=300x300
          PAPERSIZE=a4
          SENDEOF=
          nenscript -TUS -ZB -p- |
          if [ "$DEVICE" = "PostScript" ]; then
                  cat -
          else
                  gs -q -sDEVICE=$DEVICE \
                          -r$RESOLUTION \
                          -sPAPERSIZE=$PAPERSIZE \
                          -dNOPAUSE \
                          -dSAFER \
                          -sOutputFile=- -
          fi
          if [ "$SENDEOF" != "" ]; then
                  printf "\004"
          fi

(in questo esempio, si presume l’utilizzo di una stampante HP DeskJet. Adattate lo script alla vostra stampante.)

• infine, aggiungete queste linee in /etc/printcap:

          # /etc/printcap
          lp|ps|PS|PostScript|djps:\
                  :sd=/var/spool/lpd/postscript:\
                  :mx#0:\
                  :lp=/dev/lp1:\
                  :if=/var/spool/lpd/postscript/filter:\
                  :sh:
          raw:\
                  :sd=/var/spool/lpd/raw:\
                  :mx#0:\
                  :lp=/dev/lp1:\
                  :if=/var/spool/lpd/raw/filter:\
                  :sh:

Per configurazioni più complesse, il Printing-HOWTO vi aspetta.

Se utilizzate printtool, il dispositivo GSDEVICE scelto da Printtool funziona, ma non è necessariamente il migliore per la vostra stampante. Potreste dover modificare il file postscript.cfg; ad esempio, ho cambiato GSDEVICE da cdj500 a djet500 e ora le stampe sono molto più veloci.

2.18 SVGATextMode

Questa utility, reperibile all’indirizzo ftp://tsx-11.mit.edu/pub/linux/sources/sbin , serve per cambiare il font e la risoluzione in modalità testo, nonché la forma del cursore. Gli utenti che usano lettere accentate (ci siamo anche noi italiani) le possono quindi abilitare nelle applicazioni in console, mentre gli utenti di portatili possono ingrandire il cursore per renderlo più visibile.

Modificate il file /etc/TextConfig o /etc/TextMode, iniziando con la definizione VGA di default. Per abilitare le lettere accentate, assicuratevi di avere queste linee nell’opzione “LoadFont”:

     Option "LoadFont"
     FontProg "/usr/bin/setfont"
     FontPath "/usr/lib/kbd/consolefonts"
     FontSelect "lat1-16.psf"   8x16 9x16 8x15 9x15
     FontSelect "lat1-14.psf"   8x14 9x14 8x13 9x13
     FontSelect "lat1-12.psf"   8x12 9x12 8x11 9x11
     FontSelect "lat1-08.psf"   8x8  9x8  8x7  9x7

Quando avete fatto, provate la configurazione col comando SVGATextMode 80x34x9 e se tutto funziona bene, togliete i warning da /etc/TextMode ed aggiungete questa linea in /etc/rc.d/rc.sysinit (AQVD):

     # SVGATextMode
     /usr/sbin/SVGATextMode "80x34x9"

Da notare che il cursore a blocco funziona solo con alcuni modi schermo; su una delle mie macchine, 80x32x9.

3 Compiti di amministrazione comuni

Ci sono così tante cose da fare e così poco tempo! Ecco che inizia il divertimento. Questa sezione è dedicata alla rete, anche se molti altri task vi aspettano.

La rete è un argomento talmente vasto che non può essere trattato esaurientemente qui. Dovete fare riferimento al NET-3 HOWTO e alla documentazione sulle impostazioni dei servizi di rete della maggior parte delle distribuzioni. In questo caso verranno trattati solo pochi punti.

Ecco un breve elenco di servizi che potreste installare: attività cronologiche e sincronizzate, quali calendari o promemoria, Http, Samba, accesso telnet/ssh, ftp anonimo, server POP/IMAP, servizi NFS...

3.1 Configurazione di rete

Anche se il metodo vero e proprio per avviare i servizi di rete della distribuzione può essere molto più complesso, lo script che segue dovrebbe essere sufficiente perché possiate iniziare:

     #!/bin/sh
     # net-up.sh: imposta l'accesso di rete
     DEVICE=eth0
     IPADDR=192.168.1.100
     NETMASK=255.255.255.0
     NETWORK=192.168.1.0
     GATEWAY=192.168.1.1

     ifconfig $DEVICE $IPADDR netmask $NETMASK up
     route add -net $NETWORK netmask $NETMASK $DEVICE
     route add default gw $GATEWAY

Questo script è utile per attivare l’accesso di rete quando utilizzate un disco di ripristino. Ovviamente, questo consente solo l’utilizzo di ping, ftp e telnet verso l’esterno.

3.2 Condivisione di Internet

Si tratta di uno dei task più utili per un server Linux. Attualmente, la maggior parte dei kernel di stock dispongono del firewall IP, di masquerade e di invio attivati per default. Se avete dei dubbi, consultate IP-Masquerade mini-HOWTO per apprendere come abilitarli. Installate quindi ipfwadm (kernel 2.0.x;

http://www.xos.nl/linux/ipfwadm/ ) o ipchains (kernel 2.2.x;
http://www.adelaide.net.au/~rustcorp/ipfwchains/ipfwchains.html ). Non dimenticate di attivare

i moduli dei kernel per i servizi necessari, ad esempio per ftp verrà aggiunta questa linea a /etc/rc.d/rc.

sysconfig:
     /sbin/modprobe ip_masq_ftp

Altri moduli sono in genere disponibili in /lib/modules/KERNEL-VERSION/ipv4.

L’attivazione del masquerade IP per altre macchine della rete locale è molto semplice. Innanzitutto, controllate gli script di inizializzazione della rete (/etc/sysconfig/network dovrebbe essere la collocazione corrette) per comprendere se contengono la linea FORWARD_IPV4=true. Viene utilizzata per impostare /proc/sys/net/ipv4/ip\_forward a 1 quando il sottosistema di rete viene attivato.

Aggiungete queste linee a /etc/rc.d/rc.sysinit:

     # default: i pacchetti non possono raggiungere l'esterno
     /sbin/ipfwadm -F -p deny
     # consente a tutte le macchina della rete locale di raggiungere Internet
     /sbin/ipfwadm -F -a m -S 192.168.1.0/24 -D 0.0.0.0/0
     # in alternativa, lo consente solo a queste due macchine
     # /sbin/ipfwadm -F -a m -S 192.168.1.100/24 -D 0.0.0.0/0
     # /sbin/ipfwadm -F -a m -S 192.168.1.101/24 -D 0.0.0.0/0

Se utilizzate un kernel della serie 2.2.x, servitevi di ipfwadm-wrapper invece di ipfwadm per iniziare in modo rapido.

Ora dovete disporre di qualcosa che consenta alle macchine client di contattare il provider. Io utilizzo

Mserver ( http://cpwright.villagenet.com/mserver/ ). Modificate etc/mserver.conf; le uniche voci

che dovrete modificare sono “checkhost”, “shadow” e “cname”. Definite quindi le connessioni. Ovviamente, installate uno dei client disponibili sulle macchine client.

3.3 Limitazione dell’accesso di rete

Supponiamo di connetterci a Internet tramite il protocollo PPP. Dopo esserci connessi, la macchina può diventare vulnerabile agli attacchi. Inserite questa linea in /etc/hosts.allow:

     # consente l'accesso solo al localhost
     ALL: 127.

e questa linea in /etc/hosts.deny:
     # nega l'accesso a tutti
     ALL: ALL

Se siete in una rete con accesso diretto a Internet, fareste meglio a disabilitare finger, telnet e possibilmente gli altri servizi per motivi di sicurezza. Utilizzate ssh invece di telnet. Il file da modificare è /etc/inet.conf. In alternativa, potete limitare l’accesso di rete immettendo questa linea in /etc/hosts.allow:

     in.telnetd: 192.168.1., .another.trusted.network
     in.ftpd: 192.168.1., .another.trusted.network
e questa in /etc/hosts.deny:
     in.telnetd: ALL
     in.ftpd: ALL

3.4 Esportazioni NFS

È cosa comune esportare le directory principali sul server. Si pone un problema se UID e GID non sono coerenti in macchine diverse. Se l’utente guido dispone di UID/GID uguali a 500 su server e UID/GID uguali a 512 su client, una configurazione utile può essere:

     # /etc/exports
     /tmp            my.client.machine(rw)
     /home/guido     my.client.machine(rw,map_static=/etc/nfs/client.map)
In /etc/nfs/client.map verrà inserita:
     # /etc/nfs/client.map
     # NFS mapping for client
     #       remote          local
     uid     512             500
     gid     512             500

3.5 Server del nome

Non ancora disponibile.

4 Configurazione software

Questi sono i file di configurazione che stiamo per personalizzare: /etc/profile /etc/bashrc .bashrc

.bash_profile .bash_logout .inputrc .less .lessrc .xinitrc    .fvwmrc .fvwm2rc95 .Xmodmap
.Xmodmap.num .Xdefaults .jedrc  .abbrevs.sl .joerc .emacs

Non aggiungete utenti prima di completare la configurazione; metterete infatti i file dot in /etc/skel.

4.1 bash(1)

Questo è forse il programma più importante dopo il kernel. Per personalizzare bash, questi sono i file principali da modificare:

• /etc/bashrc contiene gli alias e le funzioni valide per l’intero sistema;

• /etc/profile contiene le variabili d’ambiente per l’intero sistema e i programmi di avvio;

• $HOME/.bashrc contiene gli alias e le funzioni dell’utente;

• $HOME/.bash_profile contiene le variabili d’ambiente e i programmi di avvio dell’utente;

• $HOME/.inputrc contiene definizioni di tasti e altri elementi.

Qui sotto ci sono esempi di questi file. Primo, il più importante: /etc/profile. Viene usato per configurare molte caratteristiche in una macchina Linux, come vedrete nelle sezioni seguenti. Fate attenzione agli apici inversi!

# /etc/profile
# Variabili di ambiente globali e programmi di avvio
# Le funzioni e gli alias vanno in /etc/bashrc
# Questo file imposta queste caratteristiche:
#
#   o path
#   o prompt
#   o alcune variabili d'ambiente
#   o ls a colori
#   o il comportamento di less
#   o backspace in rxvt
#
# Gli utenti possono sovrascrivere queste impostazioni e/o aggiungerne altre
# nel loro $HOME/.bash_profile
# imposta un path decente
PATH="$PATH:/usr/X11R6/bin:$HOME/bin:."
# avvisa l'utente: login o non-login shell. Se e' di login, il prompt e'
# colorato in blu; altrimenti in magenta. Il prompt di root e' rosso.
# Per una spiegazione dei codici, vedi il Colour-ls mini HOWTO.
USER=`whoami`
if [ $LOGNAME = $USER ] ; then
  COLOUR=44  # blu
else
  COLOUR=45  # magenta
fi
if [ $USER = 'root' ] ; then
  COLOUR=41  # rosso
  PATH="$PATH:/usr/local/bin"

fi
ESC="\033"
PROMPT='\h'    # hostname
STYLE=';1m'    # grassetto
# PROMPT='\u'  # nomeutente
# STYLE='m'    # testosemplice
PS1="\[$ESC[$COLOUR;37$STYLE\]$PROMPT:\[$ESC[37;40$STYLE\]\w\\$ "
PS2="> "
# niente core dump, per piacere
ulimit -c 0
# imposta umask
if [ `id -gn` = `id -un` -a `id -u` -gt 14 ]; then
  umask 002
else
  umask 022
fi
# alcune variabili
USER=`id -un`
LOGNAME=$USER
MAIL="/var/spool/mail/$USER"  # sendmail, postfix, smail
# MAIL="$HOME/Mailbox"        # qmail
NNTPSERVER=news.myisp.it      # inserite il vostro qui
VISUAL=jed
EDITOR=jed
HOSTNAME=`/bin/hostname`
HISTSIZE=1000
HISTFILESIZE=1000
export PATH PS1 PS2 USER LOGNAME MAIL NNTPSERVER
export VISUAL EDITOR HOSTNAME HISTSIZE HISTFILESIZE
# abilita ls a colori
eval `dircolors /etc/DIR_COLORS -b`
export LS_OPTIONS='-F -s -T 0 --color=yes'
# personalizza less
LESS='-M-Q'
LESSEDIT="%E ?lt+%lt. %f"
LESSOPEN="| lesspipe.sh %s"
LESSCHARDEF=8bcccbcc13b.4b95.33b. # mostra i colori in ls -l | less
PAGER=less
export LESS LESSEDIT LESSOPEN VISUAL LESSCHARDEF
# aggiusta il backspace per rxvt/xterm
CTRL_H="\010"
NULL_STRING=" $CTRL_H" # spazio + backspace
if [ "$NULL_STRING" != "" ] ; then

  stty erase ^?
else
  stty erase ^H
fi
# imposta il titolo xterm title: path completo
case $TERM in
  xterm*)
    PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}: ${PWD}\007"'
    ;;
esac
for i in /etc/profile.d/*.sh ; do
  if [ -x $i ]; then
    . $i # attenzione - le variabili e gli alias potrebbero sovrapporsi!
  fi
done
# se c'è fortune, lancialo
if [ -x /usr/games/fortune ] ; then
  echo ; /usr/games/fortune ; echo
fi

Questo è un esempio di /etc/bashrc:

# /etc/bashrc
# Funzioni e alias globali
# Le variabili d'ambiente vanno in /etc/profile
# Inserite qui le definizioni PS1 se si verificano problemi.
export CDPATH="$CDPATH:~"
# alias comuni
alias cp='cp -i'
alias l=less
alias ls="ls $LS_OPTIONS"
alias mv='mv -i'
alias rm='rm -i'
alias rmbk='/bin/rm -f .*~ *~ *aux *bak *log *tmp 2> /dev/null'
alias u='cd ..'
alias which="type -path"
alias x=startx
# Alcune funzioni utili
c ()    # cd per la nuova directory ed elenco del contenuto
{
  cd $1 ; ls
}
inst()  # Installa un archivio .tar.gz nella directory corrente

{
  if [ $# != 0 ]; then tar zxvf $1; fi
}
cz()    # Elenca il contenuto di un archivio .zip
{
  if [ $# != 0 ]; then unzip -l $*; fi
}
ctgz()  # Elenca il contenuto di un archivio .tar.gz
{
  for file in $* ; do
    tar ztf ${file}
  done
}
tgz()   # Crea un archivio .tgz alla zip.
{
  if [ $# != 0 ]; then
    name=$1.tar; shift; tar -rvf ${name} $* ; gzip -9 ${name}
  fi
}
crpm()  # elenca le informazioni in un file .rpm
{
  if [ $# != 0 ]; then rpm -qil $1 | less; fi
}

Questo è un esempio di .bashrc:

# $HOME/.bashrc
# Prendi le definizioni globali
if [ -f /etc/bashrc ]; then
  . /etc/bashrc
fi
# questo serve per avvisare l'utente che si trova in non-login shell
if [ "$GET_PS1" = "" ] ; then
  COLOUR=45; ESC="\033"; STYLE=';1m';  # STYLE='m'
  USER=`whoami`
  export PS1="\[$ESC[$COLOUR;37$STYLE\]$USER:\[$ESC[37;40$STYLE\]\w\\$ "
fi
# alias personali
alias backup='tar -Mcvf /dev/fd0'
alias dial='eznet up myisp'
alias f='cd ~/fortran'
alias hangup='eznet down'
alias lyx='lyx -width 580 -height 450'
alias restore='tar -M -xpvf /dev/fd0'

# funzioni personali
xj()    # Lancia xjed e un file in background
{
  xjed $1 &
}

Questo è un esempio di .bash_profile:

# $HOME/.bash_profile
# Variabili di ambiente e programmi di avvio utente
# Questo file contiene impostazioni personalizzati che si sovrappongono
# a quelli in /etc/profile
# Prendi gli alias e le funzioni
if [ -f ~/.bashrc ]; then
  GET_PS1="NO"  # non cambiare il colore del prompt
  . ~/.bashrc
fi
# imposta alcune directory di default
export CDPATH="$CDPATH:$HOME:$HOME/testi:$HOME/testi/geologia"

Questo è un esempio di .inputrc:

# $HOME/.inputrc
# combinazioni di tasti
"\e[1~": beginning-of-line
"\e[3~": delete-char
"\e[4~": end-of-line
# (F1 .. F5) are "\e[[A" ... "\e[[E"
"\e[[A": "info \C-m"
set bell-style visible         # non fare beep
set meta-flag On               # permetti input a 8-bit (ad esempio le lettere accentate)
set convert-meta Off           # non togliere l'ottavo bit
set output-meta On             # mostra i caratteri a 8-bit correttamente
set horizontal-scroll-mode On  # scorri la linea di comando se e' lunga
set show-all-if-ambiguous On   # dopo aver premuto TAB

Per fare funzionare i tasti backspace e delete in xterm e altre applicazioni X11, bisogna inoltre:

• mettere questo nel vostro .xinitrc:

          usermodmap=$HOME/.Xmodmap
          xmodmap $usermodmap

• e nel vostro .Xmodmap dovrete inserire:

          keycode 22 = BackSpace
          keycode 107 = Delete

questo adatta la modalità console.

• Per sistemare xterm, inserite questo nel vostro .Xdefaults:

          xterm*VT100.Translations: #override <Key>BackSpace: string(0x7F)\n\
                  <Key>Delete:        string(0x1b) string("[3~")\n\
                  <Key>Home:          string(0x1b) string("[1~")\n\
                  <Key>End:           string(0x1b) string("[4~")\n\
                  Ctrl<Key>Prior:     string(0x1b) string("[40~")\n\
                  Ctrl<Key>Next:      string(0x1b) string("[41~")
          nxterm*VT100.Translations: #override <Key>BackSpace: string(0x7F)\n\
                  <Key>Delete:        string(0x1b) string("[3~")\n\
                  <Key>Home:          string(0x1b) string("[1~")\n\
                  <Key>End:           string(0x1b) string("[4~")\n\
                  Ctrl<Key>Prior:     string(0x1b) string("[40~")\n\
                  Ctrl<Key>Next:      string(0x1b) string("[41~")

rxvt è un po’ più complicato da sistemare, perché alcune opzioni si danno in fase di compilazione. Vedete

il /etc/profile qui sopra.

Ulteriori informazioni nelle pagine man di bash(1) e readline(3).

Non vi aspettate che tutte le applicazioni funzionino! Con joe in xterm, ad esempio, alcuni tasti non funzionano; lo stesso vale per alcune versioni di rxvt.

4.2 ls(1)

ls può mostrare a colori i contenuti delle directory, per evidenziare i diversi tipi di file. Per abilitare questa caratteristica, servono un paio di linee come in /etc/profile qui sopra. Questo però non funziona in alcune versioni di rxvt; dovrete usare xterm. Sembra che rxvt abbia un bug che gli impedisce in alcuni casi di ereditare correttamente le variabili di ambiente.

Caldera ha un ls che non supporta i colori, ma c’è un comando color-ls che è la stessa cosa. Inserite in

/etc/bashrc:
     alias ls="color-ls $LS_OPTIONS"

4.3 less(1)

Con questo eccellente pager si leggono non solo file di testo, ma anche file compressi con gzip, archivi tar e zip, pagine man e altro ancora. La sua configurazione richiede alcuni passaggi:

• per abilitare i tasti cursore, scrivetevi questo file .lesskey (è un semplice file ASCII) nella vostra directory principale:

          ^[[A   back-line
          ^[[B   forw-line
          ^[[C   right-scroll
          ^[[D   left-scroll
          ^[OA   back-line

     ^[OB   forw-line
     ^[OC   right-scroll
     ^[OD   left-scroll
     ^[[6~  forw-scroll
     ^[[5~  back-scroll
     ^[[1~  goto-line
     ^[[4~  goto-end
     ^[[7~  goto-line
     ^[[8~  goto-end

quindi lanciate il comando lesskey. Si tratta di sequenze di escape per terminali vt100. Questa consente di creare un file binario chiamato .less contenente le definizioni dei tasti.

• scrivetevi questo script col nome /usr/local/bin/lesspipe.sh:

#!/bin/sh
# Preprocessore per 'less'. Viene usato quando questa variabile di ambiente
# è impostata:   LESSOPEN="|lesspipe.sh %s"
lesspipe() {
  case "$1" in
  *.tar) tar tf $1 2>/dev/null ;; # Vedi i file .tar e .tgz
  *.tgz|*.tar.gz|*.tar.Z|*.tar.z) tar ztf $1 2>/dev/null ;;
  *.Z|*.z|*.gz) gzip -dc $1  2>/dev/null ;; # Vedi i file compressi
  *.zip) unzip -l $1 2>/dev/null ;; # Vedi gli archivi
  *.arj) unarj -l $1 2>/dev/null ;;
  *.rpm) rpm -qpil $1 2>/dev/null ;;
  *.cpio) cpio --list -F $1 2>/dev/null ;;
  *.1|*.2|*.3|*.4|*.5|*.6|*.7|*.8|*.9|*.n|*.man) FILE=`file -L $1`
    FILE=`echo $FILE | cut -d ' ' -f 2`
    if [ "$FILE" = "troff" ]; then
      groff -s -p -t -e -Tascii -mandoc $1
    fi ;;
  *) file $1 | grep text > /dev/null ;
    if [ $? = 1 ] ; then # non e' un file di testo di qualche tipo
      strings $1
    fi ;;
  esac
}
lesspipe $1

e rendetelo eseguibile con chmod 755 lesspipe.sh.

• inserite le variabili necessarie, che sono già presenti nel file /etc/profile visto prima. La variabile LESSCHARSET dipende dal fatto che io vivo in Italia e quindi uso il set di caratteri ISO 8859/1. Gli amici americani, giapponesi, russi e altri fanno meglio a non impostarla.

4.4 emacs(1)

Uso emacs di rado, quindi ho solo un paio di dritte. Alcune versioni di emacs non sono preconfigurate per i colori e l’evidenziazione della sintassi. Scrivete quanto segue nel vostro .emacs:

     (global-font-lock-mode t)
     (setq font-lock-maximum-decoration t)

Funziona solo in X11. Inoltre, per abilitare le lettere accentate dovrete aggiungere:

     (standard-display-european 1)

Lascio a voi la lettura di tutta la documentazione di emacs per scoprire come adattarlo ai vostri gusti; potenzialmente, ce n’è per mesi di smanettamenti. Il Dotfile Generator (Sezione 5 (Software per la configurazione)) vi può dare una mano.

4.5 joe(1)

Alcune versioni di joe non funzionano a colori in console, e non vanno nemmeno certi tasti speciali. Una soluzione svelta (ma inelegante) per il primo problema è questa:

     ~$ export TERM=vt100
     ~$ joe myfile
        (modificate il vostro file)
     ~$ export TERM=linux

Per fare in modo che i tasti speciali funzionino, modificate .joerc, .jstarrc o l’emulazione che preferite; potete partire dai file di configurazione in /usr/lib/joe. Fate riferimento alla quarta sezione (binding dei tasti) che abilita i tasti Home e End:

     bol ^[ [ 1 ~    Go to beginning of line
     eol ^[ [ 4 ~    Go to end of line

Scoprite le sequenze di escape desiderate digitando cat seguito dai tasti speciali.

4.6 jed(1)

Questo è il mio editor preferito: fa quello che mi serve, è più snello e più facile da configurare di emacs ed emula altri editor molto bene. Presso la mia università, molti usano jed in emulazione EDT, l’editor di sistema di VMS.

I file di configurazione sono .jedrc e /usr/lib/jed/lib/*; il primo può essere adattato dal file jed.rc che sta nella directory appena indicata.

• per fare usare i tasti speciali a jed, create un file di nome /usr/lib/jed/lib/defaults.sl contenente una sola linea:

          () = evalfile("linux");

• se xjed apparentemente non riconosce il tasto DEL, aggiungete queste linee nel vostro .jedrc:

          #ifdef XWINDOWS
            x_set_keysym (0xFFFF, 0, "\e[3~");
            setkey (`delete_char_cmd'', "\e[3~");
          #endif
   • modificate /usr/lib/jed/lib/linux.sl e scrivete le due linee Info_Directory = /usr/info; e
     UCB_Mailer = /bin/mail;;

• configurare jed per fargli emulare EDT (o altri editor) è semplicissimo: dovete solo cambiare un paio di linee nel vostro .jedrc. Se volete usare il tasto ‘+’ del tastierino numerico per cancellare parole anziché un singolo carattere, aggiungete in .jedrc:

     unsetkey("\eOl");
     unsetkey("\eOP\eOl");
     setkey("edt_wdel", "\eOl");
     setkey("edt_uwdel", "\eOP\eOl");

dopo la linea con scritto () = evalfile(edt);.

• per fare usare a xjed il tastierino numerico per l’emulazione EDT, inserite quanto segue in .Xmodmap:

     keycode 77  = KP_F1
     keycode 112 = KP_F2
     keycode 63  = KP_F3
     keycode 82  = KP_F4
     keycode 86  = KP_Separator

• la scelta dei colori per xjed si fa aggiungendo linee come le seguenti in .Xdefaults:

     xjed*Geometry: 80x32+150+50
     xjed*font: 10x20
     xjed*background: midnight blue
     # eccetera...

• la funzionalità delle abbreviazioni fa risparmiare un sacco di tempo. Scrivete un file come questo col nome $HOME/.abbrevs.sl: (potete modificare questo nome inserendo variable Abbrev_File =

/usr/lib/jed/abbrev.sl; in .jedrc)
     create_abbrev_table ("Global", "0-9A-Za-z");
     define_abbrev ("Global", "GG", "Guido Gonzato");
     create_abbrev_table ("TeX", "\\A-Za-z0-9");
     define_abbrev ("TeX", "\\beq", "\\begin{equation}");
     define_abbrev ("TeX", "\\eeq", "\\end{equation}");
     % and so on...

quindi digitate ESC x abbrev_mode per abilitarlo. Se volete avere le abbreviazioni attivate per default, aggiungete queste entry in .jedrc:

     define text_mode_hook ()
     {
       set_abbrev_mode (1);
     }
     %
     define fortran_hook ()
     {
       set_abbrev_mode (1);
       use_abbrev_table ("Fortran");
     }
     % e cosi' via...

4.7 pine(1)

Modificate la configurazione globale in /usr/lib/pine.conf, tenendo in considerazione almeno i campi

seguenti: user-domain, smtp-server e nntp-server. Notate che inbox-path dipende dal vostro MTA:
se utilizzate sendmail o postfix, sarà var/spool/mail/$USER; con Qmail, /home/\$USER/Mailbox (ma la
root userà /var/qmail/alias/Mailbox.

4.8 minicom(1)

Gli utenti possono servirsi di minicom se non è stata creata una configurazione globale dalla root. Ricordatevi di farlo.

4.9 efax(1)

Questo programma è forse il più comodo per una semplice gestione dei fax. È necessario modificare lo script /usr/bin/fax; molto semplice, ma ci sono un paio di stranezze che mi hanno procurato qualche grattacapo:

• per scoprire se il modem è di classe 1, 2 o 2.0, utilizzate minicom o un programma simile per eseguire il comando at+fclass=?. La risposta potrebbe essere simile a 0,1,2; 1 e 2 sono le classi supportate dal modem;

• DIALPREFIX: in Italia (e forse anche altri Paesi) non basta mettere ‘T’ o ‘P’. Inserite invece ‘ATDT’ o

     ‘ATDP’;

• INIT and RESET: queste stringhe contengono gli inizializzatori ‘-i’ e ‘-k’, necessari per efax. Se volete aggiungere un comando AT, mettetelo nella stringa appropriata senza ‘AT’ ma col prefisso ‘-i’ o ‘-k’. Per esempio, per aggiungere ‘ATX3’ a INIT, dovrete mettere ‘-iX3’.

Dopo questa operazione, ci sono alcuni permessi da stabilire per fare in modo che gli utenti non-root inviino e ricevano fax. Le directory /var/lock e /var/spool/fax devono essere modificabili. Per fare questo, create il gruppo faxusers, aggiungetevi gli utenti e digitate:

     ~# chown root.faxusers /var/lock
     ~# mkdir /var/spool/fax
     ~# chown root.faxusers /var/spool/fax; chmod g+w /var/spool/fax

4.10 Ghostscript

Questo tool essenziale pone un piccolo intralcio. A causa delle note regole di esportazione degli Stati Uniti, l’utility pdf2ps non funziona in file .pdf crittografati. Ma questo non importa: digitate nel browser l’indirizzo

http://www.ozemail.com.au/~geoffk/pdfencrypt , scaricate il file pdf_sec.ps e sostituitelo al file con

lo stesso nome che è disponibile con la distribuzione di Ghostscript.

4.11 TeX e programmi accessori

Presumendo che abbiate la distribuzione teTeX, ecco un paio di cosette:

• scaricate altri pacchetti LaTeX dal sito mirror CTAN più vicino, ad esempio ftp://ftp.dante.de/ pub/tex . Aggiungete i file a /usr/share/texmf/tex/latex, quindi eseguite il comando texhash per fare in modo che teTeX riconosca il nuovo pacchetto; • per configurare la sillabazione, modificate il file /usr/lib/texmf/texmf/tex/generic/config/

language.dat ed eseguite i comandi:

          ~# texconfig init ; texconfig hyphen
   • per personalizzare dvips, il file da modificare è /usr/share/texmf/dvips/config/config.ps. Atten-

zione, i campi riguardanti la risoluzione di default toccano anche xdvi; se vi succede che quest’ultimo cerca di ricreare i font ogni volta che lo fate partire, aggiungete in .Xdefault la linea

          XDvi*mfmode:

Questo dovrebbe aiutare.

• per includere immagini PostScript che si trovano nelle sottodirectory, potete espandere il path di ricerca di TeX per includere le sottodirectory. Mettete questo comando in .bash\_profile:

          export TEXINPUTS="$HOME/figures::./figures"

che fa in modo che TeX cerchi in $HOME/figures prima delle directory di default e in ./figures dopo le directory di default.

4.12 Evitate PPProblemi!

Si dà per scontato che il vostro kernel abbia il supporto per i protocolli PPP e TCP/IP, che il loopback sia abilitato e che disponiate già del pacchetto pppd correttamente installato e magari impostato suid root. Ovviamente, il vostro ISP deve supportare il protocollo PPP.

Ci sono due modi per fare funzionare il PPP: 1) configurazione manuale, e 2) un programma di configurazione che faccia tutto lui. Qualunque opzione scegliate, dovrete avere queste informazioni a portata di mano:

• il numero di telefono del vostro ISP;

• l’indirizzo del server del nome, delle mail e delle news del vostro ISP;

• il dominio del vostro ISP;

• i vostri username e password.

La configurazione manuale è un fastidio. Si tratta di modificare vari file e scrivere degli script; non è troppo difficile, ma è facile fare errori e i nuovi utenti ne sono spesso spaventati. Il PPP HOWTO vi attende. In alternativa, ci sono programmi che vi richiedono le informazioni elencate qui sopra e fanno il lavoro per voi.

Gnome è KDE includono, rispettivamente, gnome-ppp e kppp che sono molto semplici da installare. In alternativa, suggerisco che diate un’occhiata a un paio di tool basati su testo semplice, wvdial ed eznet. Dovete fornire loro il numero di telefono dell’ISP, il vostro username, la vostra password ed è fatta. Le relative home page sono disponibili agli indirizzi http://www.worldvisions.ca/wvdial e

http://www.hwaci.com/sw/eznet . Entrambi sono molto utili, ma preferisco l’ultimo.

4.12.1 Partire in fretta con eznet

Prima di tutto, create un file /etc/resolv.conf come questo:

     nameserver w.x.y.z

dove inserirete l’indirizzo del name server del vostro provider. Per creare un account con eznet, eseguite questo comando:

     #~ eznet add service=VOSTRO_ISP user=NOME password=PASSWORD phone=NUMERO

che crea il file /var/eznet/eznet.conf della root.root con permessi 600; modificatelo in 666 se desiderate che tutti lo possano leggere. Quindi provate a chiamare con eznet up VOSTRO_ISP. Se il modem non prende la linea, aggiungete questo comando:

     #~ eznet change VOSTRO_ISP init0=atx3

Per finire la connessione, il comando è eznet down. Tutto qui!

4.12.2 Partire in fretta con wvdial

L’installazione di wvdial è ancora più breve. Digitate wvdialconf /etc/wvdial.conf, quindi modificate il file risultante per includere il vostro username, la password e il numero di telefono. Provate wvdial e tenete le dite incrociate. Per finire la connessione, arrestatela con Ctrl-C.

4.13 POP Client

Per ricevere la posta dal server POP3, si usa un client POP come fetchpop o fetchmail; quest’ultimo è il più avanzato, ma richiede l’esecuzione di sendmail. Si tratta di una specie di sovrapposizione nelle macchine

con specifiche minime. Si trovano su ftp://metalab.unc.edu/pub/Linux/system/mail/pop .

Per configurare questi client:

• fetchpop: la prima volta che lo lanciate, vi verranno chieste delle informazioni. Rispondete alle domande e siete a posto. fetchpop deve essere utilizzato con lo switch -r se il server POP3 del vostro ISP non implementa il comando LAST in modo corretto.

• fetchmail: adattate questo esempio di file .fetchmailrc:

          # $HOME/.fetchmailrc
          poll mbox.supernet.edu with protocol pop3;
            user pippo there with password _Loo%ny is pippo here

Un utente mi ha scritto per dirmi che aggiungendo “smtphost localhost” alla seconda linea, le prestazioni sono molto migliorate. Dovete impostare i permessi di questo file con chmod 600 .fetchmailrc, altrimenti fetchmail si rifiuterà giustamente di partire. Questo esempio è molto semplice; ci sono possibilità di configurazione

     infinite. Verificatele all’indirizzo http://www.ccil.org/~esr/fetchmail .

4.14 Sistema X Window (XFree86)

4.14.1 Configurare il server X

Andiamo, non è più difficile come una volta... Tutte le principali distribuzioni forniscono un programma di configurazione per X11 (ad es. XConfigurator, sax, XF86Setup o almeno xf86config). Ormai l’installazione del server X è pressoché automatica, ma certe schede video possono fare i capricci. In questi casi, seguo questo metodo che ha sempre funzionato:

• assicuratevi che il server per la VGA sia installato;

   • andate su ftp://ftp.XFree86.org/pub/XFree86/current/binaries , cd nella sottodirectory di

Linux che vi riguarda e scaricate i file XVERSIONEbin.tgz, XVERSIONEset.tgz e tutti i server. Il primo di questi archivi contiene il SuperProbe più aggiornato;

• decomprimete XVERSIONEbin.tgz in una directory temporanea, spostatevi in essa ed eseguite il comando ./SuperProbe. Se la vostra scheda video viene riconosciuta, è molto probabile che riuscirete a configurarla; altrimenti, peccato.

• installate i server e XVERSIONEset.tgz partendo da /usr/X11R6/, quindi eseguite XF86Setup.

Anche se ha sempre funzionato per me, potreste avere diversa fortuna. Attenzione che spesso X11 non parte perché avete scelto impostazioni troppo elevate per il monitor! Iniziate con impostazioni di base, ad es. 800x600 e 256 colori, poi provate ad aumentarle. Attenzione: queste operazioni sono pericolose e potreste danneggiare il monitor!

4.14.2 Il tastierino numerico

Abbiamo visto prima come fare funzionare alcuni tasti speciali. Il file .Xmodmap funziona bene se vogliamo usare Xjed, ma rende inutilizzabile il tastierino numerico. Servirà quest’altro file, che chiameremo

.Xmodmap.num:
     ! Le definizioni si trovano in <X11/keysymdef.h>
     keycode 77  = Num_Lock
     keycode 112 = KP_Divide
     keycode 63  = KP_Multiply
     keycode 82  = KP_Subtract
     keycode 86  = KP_Add
     keycode 79  = KP_7
     keycode 80  = KP_8
     keycode 81  = KP_9
     keycode 83  = KP_4
     keycode 84  = KP_5
     keycode 85  = KP_6
     keycode 87  = KP_1
     keycode 88  = KP_2
     keycode 89  = KP_3
     keycode 90  = KP_0
     keycode 91  = KP_Decimal

Assicuratevi che /etc/X11/XF86Config non contenga queste tre linee:

       ServerNumLock
       Xleds
       XkbDisable

e nel caso, mettetele in un commento. Per riabilitare il tastierino, si dà il comando xmodmap .Xmodmap.num.

4.14.3 Login grafico con xdm

Per ottenere il login in modalità grafica, si deve modificare il file /etc/inittab, che dovrebbe includere una linea come questa:

     x:5:respawn:/usr/bin/X11/xdm -nodaemon

5 è il runlevel che corrisponde alla modalità X11 (S.u.S.E. usa 4). Modificate la linea che stabilisce il runlevel di default (di solito è 2 o 3), inserendo il valore qui sopra:

     id:5:initdefault:

Il numero di colori si specifica in /etc/X11/xdm/Xserver (AQVD):

     :0 local /usr/X11R6/bin/X :0 -bpp 16 vt07  # primo server X, colori a 65 kb
     :1 local /usr/X11R6/bin/X :1 -bpp 32 vt08  # secondo server X, true colour

Se avete già il file .xinitrc, copiatelo nel file .xsession e rendete eseguibile quest’ultimo con chmod +x .xsession. Ora eseguite il comando telinit 5 e siete a posto!

4.14.4 Window Manager

Una volta che il server X funziona, ci sono infinite possibilità di configurazione; dipende dal window manager che volete usare, e ce ne sono decine tra cui scegliere. Quasi sempre, si tratta di modificare uno o più file ASCII nella vostra home directory; in altri casi non si deve modificare nulla e si utilizzano appositi programmini, o addirittura un apposito menu.

Alcuni esempi:

• fvwm e derivati: copiate il file /etc/X11/fvwm/system.fvwmrc (o altro) nella vostra home col nome adeguato, leggetelo e provate. Potreste perdere molto tempo prima di ottenere quello che desiderate;

• WindowMaker: possiede diversi file di configurazione che risiedono in $HOME/GNUstep, oltre a un ottimo programmino di configurazione;

• KDE e Gnome: qui non è necessario modificare nulla, e si configura il tutto da menu.

In breve: se non vi dispiace modificare dei file di configurazione, scegliete icewm, fvwm*, blackbox etc; se invece non è di vostro gradimento, la scelta è limitata attualmente a KDE, Gnome, WindowMaker e XFCE.

È importante avere un buon file .xinitrc. Un esempio:

     #!/bin/sh
     # $HOME/.xinitrc
     usermodmap=$HOME/.Xmodmap
     xmodmap $usermodmap
     xset s noblank  # disattiva lo screen saver
     xset s 300 2    # screen saver che parte dopo 5 minuti
     xset m 10 5     # imposta l'accelerazione del mouse
     rxvt -cr green -ls -bg black -fg white -fn 7x14 \
       -geometry 80x30+57+0 &
     if [ "$1" = "" ] ; then  # default
       WINMGR=wmaker
     else
       WINMGR=$1

     fi
     $WINMGR

Per quanto non mi sembra che sia strettamente necessario, rendetelo eseguibile con chmod +x .xinitrc.

Questo .xinitrc consente di scegliere il window manager: provate

     $ startx startkde # o altro

(non funziona in alcune versioni di S.u.S.E.).

4.14.5 Impostazioni di default per le applicazioni X11

Scoprite dove si trova la directory app-defaults (dovrebbe essere in /usr/X11R6/lib/X11/app-defaults). Numerose applicazioni conservano qui un file di configurazione.

4.15 Configurazione per gli utenti

Quando avete finito di configurare i file dot, copiateli nella directory /etc/skel come già detto alla Sezione 4 (Configurazione software).

4.16 Creazione di .rpms

rpm è un metodo talmente utile per il controllo dei pacchetti che sono riluttante a installare gli archivi .tar.gz, ma solo in pochi casi speciali (ad esempio, per la sicurezza). Ogni volta che installate un tarball, considerate di trasformarlo in un archivio .rpm, quindi reinstallatelo; fate riferimento al RPM HOWTO. Inoltre, se utilizzate le versioni di gcc aggiornate, quali egcs o pgcc, può essere consigliabile immettere quanto segue

in /etc/rpmrc:
     optflags: i386 -O2 -mpentium

4.17 Fare l’upgrade

Se fate l’upgrade, oltre ai soliti backup dovrete ricordarvi di salvare alcuni file addizionali. Alcuni potrebbero essere /etc/X11/XF86Config, /usr/bin/fax, tutto quello che avete messo in /usr/local, la configurazione del kernel, l’intero /etc e la posta in /var/spool/mail.

È quindi il momento di fare l’upgrade (in rari casi, downgrade!) delle applicazioni della distribuzione e di aggiungere ulteriori pacchetti. Mantenete un elenco di questi ultimi.

5 Software per la configurazione

Diversi programmi rendono Linux più semplice da configurare. Alcuni stanno diventando più o meno standard: Red Hat, Caldera e altre distribuzioni forniscono utility come printtool, netcfg, usertool, ecc. S.u.S.E. fornisce un elaborato programma di configurazione del sistema chiamato YAST. Altri programmi utili sono:

• The Dotfile Generator: buona applicazione per X11 con moduli per configurare emacs, bash,

     procmail e altri. La sua home page è all’indirizzo http://www.imada.ou.dk/~blackie/dotfile

; • Linuxconf: il massimo dei programmi di configurazione. Può fare tutto, sia in console che sotto X11.

     Andate subito a vederlo all’indirizzo http://www.solucorp.qc.ca/linuxconf .

6 Fine

6.1 Copyright (in inglese)

Unless otherwise stated, Linux HOWTO documents are copyrighted by their respective authors. Linux HOWTO documents may be reproduced and distributed in whole or in part, in any medium physical or electronic, as long as this copyright notice is retained on all copies. Commercial redistribution is allowed and encouraged; however, the author would like to be notified of any such distributions.

All translations, derivative works, or aggregate works incorporating any Linux HOWTO documents must be covered under this copyright notice. That is, you may not produce a derivative work from a HOWTO and impose additional restrictions on its distribution. Exceptions to these rules may be granted under certain conditions; please contact the Linux HOWTO coordinator at the address given below.

In short, we wish to promote dissemination of this information through as many channels as possible. However, we do wish to retain copyright on the HOWTO documents, and would like to be notified of any plans to redistribute the HOWTOs.

If you have questions, please contact Tim Bynum, the Linux HOWTO coordinator, at tjbynum@sunsite.unc.edu via email.

6.2 Commenti e critiche

Forse più ancora di altri HOWTO, questo ha bisogno dei vostri suggerimenti, critiche e contributi. Tutto è benvenuto, anzi necessario. Se pensate che manchi qualcosa o che ci siano errori, mandatemi un’email. Se avete una distribuzione diversa da Redhat/Mandrake e i vostri file di configurazione sono diversi dai miei o collocati in altre directory, comunicatemelo, e io aggiungerò i vostri suggerimenti. Il mio scopo è quello di rendere il lavoro con Linux il più semplice possibile.

Linux ha un numero enorme di programmi, quindi non posso includere suggerimenti per ciascuno. Cercate di mantenere i vostri suggerimenti nell’ambito dei programmi “più ragionevoli”; lascio l’interpretazione di questo concetto al vostro buon senso.

6.3 Liberatoria

“Configuration HOWTO” è stato scritto da Guido Gonzato, guido@ibogeo.df.unibo.it . I miei sentiti ringraziamenti vanno a tutti gli altri autori di HOWTO e di man page, il cui lavoro ho saccheggiato senza vergogna; e a tutte le persone che mi hanno inviato suggerimenti.

Questo lavoro è distribuito senza garanzie. Mi sono sforzato di scriverlo con la massima accuratezza, ma usate le informazioni qui contenute a vostro rischio. Non sarò responsabile in alcun caso di danni provocati da questo documento.

Spero che troviate utile questo mio lavoro. Ogni volta che installo una macchina Linux, io lo trovo utilissimo...

Ciao,

Guido =8-)