[ precedente ] [ Contenuti ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ 14 ] [ 15 ] [ A ] [ successivo ]

La guida Debian
Capitolo 9 - Messa a punto del sistema Debian


Questo capitolo descrive solo i principi basilari della configurazione del sistema tramite l'interfaccia a carattere. Un prerequisito di questo capitolo è aver letto Suggerimenti per l'installazione di un sistema Debian, Capitolo 3.

Per coloro interessati alla sicurezza, si raccomanda caldamente di leggere il Securing Debian Manual, che si può anche reperire come pacchetto harden-doc.


9.1 Inizializzazione del sistema

debian; usa il sistema di script System V. Vedere Il programma init, Sezione 2.4.1 per un'introduzione.


9.1.1 Personalizzare gli script di inizializzazione

Il modo più semplice di controllare il comportamento di uno script di inizializzazione è modificando i compiti assegnati alle variabili d'ambiente nel file con lo stesso nome dello script nella directory /etc/default/*. [40] Per esempio, /etc/default/hotplug può essere utlizzato per controllare il comportamento di /etc/init.d/hotplug. Il file /etc/init.d/rcS può essere utilizzato per personalizzare i default al boot per motd, sulogin, etc.

Se non riuscite ad ottenere il comportamento che volete modificando dette variabili, potete allora modificare gli script stessi: sono tutti file di configurazione.


9.1.2 Personalizzare i file di log

La modalità del log del sistema può essere configurata tramite /etc/syslog.conf. Date un'occhiata al pacchetto colorize per un programma che assegna colori differenti ai vari file di log. Vedere anche syslogd(8) e syslog.conf(5).


9.1.3 Ottimizzare l'accesso hardware

Esistono alcune configurazioni hardware la cui ottimizzazione e lasciata da Debian alla cura dell'amministratore di sistema.

Montare un filesystem con l'opzione noatime è anch'esso molto efficace nel velocizzare l'accesso in lettura ai file. Vedere fstab(5) e mount(8).

Alcuni componenti hardware possono essere messi a punto direttamente dal kernel stesso, tramite il filesystem proc. Vedere Mettere a punto il kernel tramite il filesystem proc, Sezione 7.3.

Esistono molte utilità di configurazione hardware-specifiche in Debian. Molte di loro sono specifiche per i bisogni dei PC portatili. Ecco alcuni pacchetti interssanti disponibili in Debian:

ACPI è un'infrastruttura più nuova di APM per la gestione dei profili energetici.

Alcuni di questi pacchetti richiedono speciali moduli del kernel. In molti casi sono già inclusi nei sorgenti più recenti. In caso di problemi potreste dover applicare da voi l'ultima patch.


9.2 Controllare gli accessi


9.2.1 Restrizione tramite PAM

PAM (Pluggable Authentication Modules) forniscono il controllo sul login.

     /etc/pam.d/*             # file di controllo PAM 
     /etc/pam.d/login         # file di controllo PAM per il login
     /etc/security/*          # parametri dei moduli PAM
     /etc/securetty           # controlla il login di root da console (login)
     /etc/login.defs          # controlla i vari comportamenti del login (login)

Se volete dei terminali senza password, ma insicuri, modificate a vostro rischio e pericolo il contenuto di /etc/pam.d/login come segue.

     #auth       required   pam_unix.so nullok 
     auth       required pam_permit.so

Trucchetti simili possono essere applicati a xdm, gdm, ... , per un accesso senza password alla console X.

Al contrario, se volete applicare una buona politica di password, installate cracklib2 e modificate /etc/pam.d/passwd come segue.

     password required pam_cracklib.so retry=3 minlen=6 difok=3

Le password utilizzabili solo una volta per l'attivazione degli account possono anche essere utili. Per fare ciò, usate il comando passwd con l'opzione -e. Vedere passwd(1).

Il numero massimo di processi può essere impostato con ulimit -u 1000 nella Bash shell oppure tramite /etc/security/limits.conf da PAM. Altri parametri, come core possono essere impostati allo stesso modo. Il valore iniziale di PATH può essere impostato tramite /etc/login.defs prima che intervenga lo script di inizializzazione della shell.

La documentazione per PAM è contenuta nel pacchetto libpam-doc. La Linux-PAM System Administrator's Guide copre gli aspetti della configurazione di, quali moduli sono disponibili, ecc. La documentazione comprende, inoltre, la The Linux-PAM Application Developers' Guide e la The Linux-PAM Module Writers' Guide.


9.2.2 "Why GNU su does not support the wheel group" (Perchè GNU su non supporta il gruppo wheel)

Questa è la famosa frase al termine della vecchia pagina di info su, di Richard M. Stallman. Per non preoccuparsi: l'attuale su in Debian usa PAM, così che potete ridurre la capacità di usare su a qualsiasi gruppo usando pam_wheel.so in /etc/pam.d/su. Quanto segue imposta il gruppo adm group di un sistema Debian come equivalente del gruppo wheel di BSD, permettendo su senza la password per i suoi membri.

     # configurazione anti-RMS in /etc/pam.d/su
     auth       required   pam_wheel.so group=adm
     
     # I membri del gruppo wheel possono dare su senza la password
     auth       sufficient pam_wheel.so trust group=adm

9.2.3 Il significato dei vari gruppi

Alcuni gruppi interessanti:

Per una lista completa, leggete la sezione "FAQ" del Securing Debian Manual, che può anche essere reperita come pacchetto harden-doc in Woody. Anche il nuovo pacchetto base-passwd (>3.4.6) contiene una lista autorevole: /usr/share/doc/base-passwd/users-and-groups.html.


9.2.4 sudo – lavorare con maggiore sicurezza

L'uso che faccio di sudo è fondamentalmente a protezione dalla mia stessa stupidità. Reputo l'uso di sudo un'alternativa migliore al continuo uso del sistema come root. Per voi le cose possono essere diverse.

Installate sudo ed attivatelo impostando le opzioni in /etc/sudoers. Controllate anche le caratteristiche del gruppo sudo in /usr/share/doc/sudo/OPTIONS.

La configurazione di esempio fornisce ai membri del gruppo "staff" accesso a qualsiasi comando come root tramite sudo nonchè accesso ai membri di "src" a comandi selezionati come root, sempre tramite sudo.

Il vantaggio di sudo è che richiede solo la password utente, e che l'attività e monitorizzata. E' un modo carino per dare un minimo di autorità ad un amministratore alle prime armi. Per esempio:

     $ sudo chown -R myself:mygrp .

Ovviamente se conoscete la password di root (come la maggior parte degli utenti casalinghi) qualunque comando può essere eseguito come root da un account utente:

     $ su -c "shutdown -h now"
     Password:

(So che dovrei restringere i privilegi dell'account admin in sudo. Dato che è il mio server casalingo, non me ne sono ancora preso la briga.)

Per un programma differente che permetta agli utenti ordinari di eseguire comandi con privilegi di root, vedere il pacchetto super.


9.2.5 Controllare l'accesso ai servizi

Il super-server Internet inetd, viene lanciato al boot da /etc/rc2.d/S20inetd (per RUNLEVEL=2), che è un collegamento simbolico a /etc/init.d/inetd. In breve, inetd permette il lancio di un demone per richiamarne altri, riducendo il carico sul sistema.

Ogni volta che arriva la richiesta di un servizio, il suo protocollo ed il servizio vengono identificati guardando nel database contenuto in /etc/protocols e in /etc/services. inetd cerca, poi, un normale servizio Internet nel database /etc/inetd.conf, oppure un servizio basato su Sun-RPC in /etc/rpc.conf.

Per la sicurezza del sistema, accertatevi di disabilitare i servizi inutilizzati in /etc/inetd.conf. I servizi Sun-RPC devono essere attivi per il NFS ed altri programmi basati su RPC.

Talvolta inetd non lancia il server interessato direttamente, ma lancia il wrapper del demone TCP/IP tcpd con il nome del server come argomento in /etc/inetd.conf. In questo caso tcpd lancia il server appropriato dopo aver registrato la richiesta e fatto alcuni controlli addizionali, utilizzando /etc/hosts.deny e /etc/hosts.allow.

Se avete problemi con l'accesso remoto in un sistema Debian recente, commentate "ALL: PARANOID" in /etc/hosts.deny, se esiste.

Per i dettagli, vedere inetd(8), inetd.conf(5), protocols(5), services(5), tcpd(8), hosts_access(5), e hosts_options(5).

Per maggiori informazioni su Sun-RPC, vedere rpcinfo(8) , portmap(8), e /usr/share/doc/portmap/portmapper.txt.gz.


9.2.6 Centralizzare l'autenticazione – LDAP

Usate il Lightweight Directory Access Protocol (LDAP) Riferimenti:


9.3 Masterizzatori

I masterizzatori con interfaccia ATAPI/IDE sono di recente diventati un'opzione molto popolare. Rappresentano un supporto valido per il backup e l'archiviazione per l'utente casalingo che ha bisogno di capacità di < 640 MB. Per le informazioni più autorevoli, consultate il LDP CD-Writing-HOWTO.


9.3.1 Introduzione

Primo, ogni danneggiamento di dati inviati al masterizzatore porterà ad un danno irreparabile del CD. Prendete il masterizzatore con il buffer più grande possibile. Se i soldi non sono un problema, prendetene uno con interfaccia SCSI. Se potete scegliere quale interfaccia IDE connettere, prendete quello su bus PCI (sulla scheda madre), piuttosto che su bus ISA (schede SB16, ecc.). etc.).

Quando il masterizzatore è connesso su IDE, deve essere comandato dal driver IDE-SCSI, non dall'IDE-CD. Deve essere attivato anche il driver generico SCSI. Esistono due approcci per ottenere ciò, per i kernel delle moderne distribuzioni (aggiornato a Marzo 2001).

Per il kernel 2.6, dovreste usare il driver ordinario IDE ed accedere al masterizzatore direttamente con il nome del device, tipo /dev/hdx. In questo modo, potete usare il DMA.


9.3.2 Approccio 1: moduli + lilo

Aggiungete la riga seguente a /etc/lilo.conf se state usando un kernel Debian standard. Se usate opzioni multiple, separatele da spazi:

     append="hdx=ide-scsi ignore=hdx"

Dove la collocazione del masterizzatore, a cui si accede tramite il driver ide-scsi, è indicata da hdx, dove x rappresenta uno dei seguenti:

     hda          se master sulla prima porta IDE
     hdb          se slave sulla prima porta IDE
     hdc          se master sulla seconda porta IDE
     hdd          se slave sulla seconda porta IDE
     hde ... hdh  per un drive su porta IDE esterna, ATA66/100

Date i comandi seguenti per l'attivazione dopo la configurazione:

     # lilo
     # shutdown -h now

9.3.3 Approccio 2: ricompilare il kernel

Debian usa make-kpkg per creare il kernel. Usate il nuovo --append_to_version con make-kpkg per produrre più kernel. Vedere Il kernel Linux su Debian, Capitolo 7.

Usate le seguenti impostazioni attraverso make menuconfig:


9.3.4 Procedure post-configurazione

Il supporto del kernel per il CD-writer può essere attivato al boot con il seguente:

     # echo ide-scsi >>/etc/modules
     # echo sg       >>/etc/modules
     # cd /dev; ln -sf scd0 cdrom

L'attivazione manuale può essere fatta con:

     # modprobe ide-scsi
     # modprobe sg

Dopo il reboot, potete controllarne l'installazione con:

     $ dmesg|less
     # apt-get install cdrecord
     # cdrecord -scanbus

[Da Warren Dodge] Talvolta sorgono conflitti fra ide-scsi e ide-cd se ci sono sia un lettore che un masterizzatore nel sistema. Provate ad aggiungere la riga seguente al vostro /etc/modutils/aliases, lanciando poi update-modules, e facendo il reboot.

     pre-install      ide-scsi      modprobe ide-cd

Ciò determina il caricamento del driver IDE prima di ide-scsi. Il driver IDE ide-cd prende il controllo del CD_ROM ATAPI—qualsiasi che non gli sia stato detto di ignorare. Ciò lascia solo i device ignorati al controllo di ide-scsi.


9.3.5 Il file CD-image (avviabile)

Per creare un CD-ROM con files contenuti nella target-directory/ come cd-image.raw (avviabile, con il formato Joliet TRANS.TBL abilitato; se non lo volete avviabile, togliete le opzioni -b e -c), inserite un boot floppy nel drive e,

     # dd if=/dev/fd0 target-directory/boot.img 
     # mkisofs -r -V volume_id -b boot.img -c bootcatalog -J -T \
             -o cd-image.raw target_directory/

Una trucco divertente è fare dei CD-ROM avviabili in DOS. Se una normale immagine DOS di un boot floppy è contenuta in boot.img, il CD-ROM eseguirà il boot come se nel primo floppy drive (A:) ci fosse un floppy DOS. Più interessante potrebbe essere farlo con freeDOS.

Il file CD-image può essere ispezionato montandolo sul device loop.

     # mount -t iso9660 -o ro,loop cd-image.raw /cdrom
     # cd /cdrom
     # mc
     # umount /cdrom

9.3.6 Scrivere sul masterizzatore (R, RW):

Primo test con (in caso di velocità 2x)

     # nice --10 cdrecord -dummy speed=2 dev=0,0 disk.img

Se tutto va bene, scrivete sul CD-R con

     # nice --10 cdrecord -v -eject speed=2 dev=0,0 disk.img

Oppure, sul CD-RW con

     # nice --10 cdrecord -v -eject blank=fast speed=2 dev=0,0 disk.img

Alcune periferiche CD-RW funzionano meglio con

     # nice --10 cdrecord -v blank=all speed=2 dev=0,0 disk.img

seguito da

     # nice --10 cdrecord -v -eject speed=2 dev=0,0 disk.img

Sono necessari due passaggi per prevenire i timeout SCSI durante la fase di blanking dall'interferire con la fase di masterizzazione. Il valore dell'argomento di nice può richiedere qualche aggiustamento.


9.3.7 Creare un file immagine di un CD

Alcuni CD-R e CD commerciali hanno dei settori spuri alla fine, cosa che rende impossibile la copia tramite dd (il CD di Windows 98 è uno di questi). Il pacchetto cdrecord ha il comando readcd. Usatelo per copiare qualsiasi CD in un file immagine. Se è un disco di dati, montatelo ed eseguite mount per vedere le dimensioni reali. Dividete il numero ottenuto (in blocchi = 1024 bytes) per 2 per avere il numero reale di settori del CD (2048 bytes). Lanciate readcd con le opzioni ed usate l'immagine risultante per bruciare il CD-R/RW.

     # readcd dev=target,lun,scsibusno # select function 11

Impostate tutti e tre i parametri a 0 per la maggior parte dei casi. Talvolta il numero di settori dato da readcd è eccessivo! Utilizzate il numero ottenuto da un montaggio reale per i migliori risultati.

Dovrebbe essere notato che l'uso di dd ha alcuni problemi se usato su CD-ROM. La prima esecuzione del comando dd può causare un messaggio di errore e produrre un'immagine del disco più piccola con perdita della coda. La seconda esecuzione di dd può produrre un'immagine più grande, con dati spuri attaccati alla fine su alcuni sistemi se le dimensioni dei dati non sono specificate. Solo la seconda esecuzione di dd con le dimensioni corrette dei dati specificate e senza espellere il CD dopo un messaggio di errore, sembra evitare questi problemi. Se, per esempio, le dimensioni dell'immagine mostrate da df sono di 46301184 blocchi, usate il comando seguente due volte per ottenere l'immagine corretta (queste sono mie informazioni empiriche):

     # dd if=/dev/cdrom of=cd.img bs=2048 count=$((46301184/2))

9.3.8 CD con le immagini Debian

Per le informazioni più aggiornate sui CD Debian visitate il Sito Debian CD.

Se avete una connessione Internet veloce, potete prendere in considerazione l'installazione via rete usando:

Se non avete una connessione veloce, considerate l'acquisto dei CD dai Venditori di CD.

Non sprecate banda scaricando i CD immagine standard a meno di non essere un tester di CD immagine (anche con il nuovo metodo jigdo).

Un'mmagine degna di nota è KNOPPIX - Live Linux Filesystem On CD. Questo CD farà il boot in un sistema Debian perfettamente funzionante senza installarsi sul disco rigido.


9.3.9 Backup del sistema su CD-R

Per copiare i file di configurazione chiave e di dati sul CD-R, usate lo script di "backup" backup. Vedete anche Copia ed archiviazione di una intera sottodirectory, Sezione 8.3 e Backup differenziali e sincronizzazione dei dati, Sezione 8.4.


9.3.10 Copiare CD musicali su CD-R

Non testato da me:

     # apt-get install cdrecord cdparanoia
     # cdparanoia -s -B
     # cdrecord dev=0,0,0 speed=2 -v -dao -eject defpregap=1 -audio *.wav

oppure,

     # apt-get install cdrdao #disk at once
     # cdrdao read-cd --device /dev/cdrom --paranoia-mode 3 mio_cd # legge il cd
     # cdrdao write --device /dev/cdrom --speed 8 mio_cd    # scrive un nuovo CD

cdrdao esegue una copia conforme (senza pause, ecc...)


9.3.11 Masterizzare i DVD-R, DVD-RW e DVD+RW

Per masterizzare i DVD, avete due approcci:


9.4 X

L'ambiente grafico X è fornito da Xfree86. Due sono le versioni principali del server X disponibili su un sistema Debian: Le serie di XFree86 Versione 3.3 (XF3) e XFree86 Versione 4.x (XF4) sono basate sulle specifiche X11R6 di X.Org.

Per le basi di X, fate riferimento a X(7), l'LDP XWindow-User-HOWTO, ed il Remote X Apps mini-HOWTO. Per una guida per l'utente Debian-specifica, leggete /usr/share/doc/xfree86-common/FAQ.gz fornito dal pacchetto xfree86-common. Questa contiene una interessante ed autorevole revisione dei problemi chiave di Branden Robinson.

X server, Sezione 9.4.3
è un programma su host locale che mostra una finestra X e/o un desktop sul monitor di un utente (CRT, LCD) ed accetta input da tastiera e mouse.
X client, Sezione 9.4.4
è un programma su un host (locale o remoto) su cui girano applicazioni compatibili con X window.

Queste definizioni ribaltano il concetto normale di "server" e "client".

Molteplici sono i modi di far accettare al "server X" (lato schermo) connessioni remote da un "client X" (lato applicazione):

Tutti i metodi di connessione remota, tranne ssh, richiedono l'abilitazione della connessione TCP/IP sul server X. Vedere Connessione TCP/IP ad X, Sezione 9.4.6.


9.4.1 Pacchetti del sistema X

Per facilitare l'installazione di X esistono alcuni (meta)pacchetti in Woody.

x-window-system-core
Questo metapacchetto fornisce i componenti essenziali per una singola postazione con l' X Window System. Fornisce le librerie X, un X server xserver-xfree86, una serie di font ed un gruppo di X client base e di utilità.
x-window-system
Fornisce in sostanza tutti i componenti dell' X Window System così come sono stati sviluppati dall' XFree86 Project, ed una serie di programmi accessori storicamente popolari. (Da notare che dipende da x-window-system-core, twm, e xdm, cioè non è necessario installare x-window-system-core se installate questo.)
xserver-common-v3
Files ed utilità comuni agli X server XFree86 3.x (XF3)
xserver-*
Pacchetti supplementari per XF3 server per supportare hardware non supportato dal nuovo XF4 server per qualsiasi ragione. Alcune vecchie ATI mach64 non sono supportate in XF4, alcune schede video si piantano brutalmente nella versione di XF4 per Woody, ecc. (Per una lista di pacchetti disponibili, usate apt-cache search xserver-|less. Tutti questi XF3 server dipendono da xserver-common-v3.)

Per la maggior parte dei casi il pacchetto da installare è x-window-system. (Se volete il login da console, assicuratevi di diasbilitare xdm come descritto in "Voglio disabilitare X al boot!", Sezione 8.1.4.)


9.4.2 Pacchetti per il riconoscimento hardware per X

Per abilitare il riconoscimento dell' hardware durante la fase di configurazione di X, installate i seguenti pacchetti prima di installare X:


9.4.3 X server

Vedere XFree86(1x) per informazioni sull' X server.

Invocare l' X server da una console locale:

     $ startx -- :<display> vtXX 
     p.es.: 
     $ startx -- :1 vt8 -bpp 16
     ... parte su vt8 connesso ao localhost:1 in modalità 16 bpp

Gli argomenti dati dopo -- sono per l' X server.

Notate che, quando si usa uno script ~/.xserverrc per la personalizzazione dell'avvio dell' X server, bisogna essere certi di exec l' X server reale. Non fare ciò può causare rallentamenti nell'avvio e nell'uscita del server. Per esempio:

     #!/bin/sh 
     exec /usr/bin/X11/X -dpi 100 -nolisten tcp

9.4.3.1 Configurare l' X server (versione 4)

Per (ri-)configurare l' XF4 server,

     # dpkg-reconfigure --priority=low xserver-common
     # dpkg-reconfigure --priority=low xserver-xfree86

genererà il file /etc/X11/XF86Config-4 e configurerà X usando lo script dexconf.


9.4.3.2 Configurare l' X server (versione 3)

Per (ri-)configurare l' X3 server,

     # dpkg-reconfigure --priority=low xserver-common-v3
     # dpkg-reconfigure --priority=low xserver-mach64

genererà il file /etc/X11/XF86Config e configurerà X usando lo script xf86config-v3.


9.4.3.3 Configurazione manuale dell' X server

Per aggiungere delle personalizzazioni utente a /etc/X11/XF86Config-4, non modificate il file di configurazione compreso fra il testo:

     ### BEGIN DEBCONF SECTION 
     [snip]
     ### END DEBCONF SECTION

Invece, aggiungete le personalizzazioni prima del testo. Per esempio, per usare una scheda video personalizzata, aggiungete qualcosa di simile al testo seguente all' inizio del file:

     Section "Device"
       Identifier        "Custom Device"
       Driver            "ati"
       Option            "NoAccel"
     EndSection
     
     Section "Screen"
       Identifier  "Custom Screen"
       Device      "Custom Device"
       Monitor     "Generic Monitor"
       DefaultDepth 24
       Subsection "Display"
         Depth       8
         Modes       "1280x960" "1152x864" "1024x768" "800x600" "640x480"
       EndSubsection
       Subsection "Display"
         Depth       16
         Modes       "1280x960" "1152x864" "1024x768" "800x600" "640x480"
       EndSubsection
       Subsection "Display"
         Depth       24
         Modes       "1280x960" "1152x864" "1024x768" "800x600" "640x480"
       EndSubsection
     EndSection
     
     Section "ServerLayout"
         Identifier        "Custom"
         Screen            "Custom Screen"
         InputDevice       "Generic Keyboard" "CoreKeyboard"
         InputDevice       "Configured Mouse" "CorePointer"
     EndSection

Per Sarge (testing al momento di scrivere), se volete mantenere le personalizzazioni dell'utente a /etc/X11/XF86Config attraverso gli aggiornamenti, lanciate da root il comando seguente:

     # cp /etc/X11/XF86Config-4 /etc/X11/XF86Config-4.custom
     # md5sum /etc/X11/XF86Config-4 > /var/lib/xfree86/XF86Config-4.md5sum
     # dpkg-reconfigure xserver-xfree86

Per ottenere un abbellimento dei caratteri, dovete modificare /etc/X11/XF86Config-4 come descritto in Font TrueType in X, Sezione 9.4.13.

Controllate anche le altre parti della vostra confiurazione di X. Impostazioni errate per il monitor possono dare più mal di testa dei caratteri brutti, quindi assicuratevi che il refresh rate sia il più alto che il vostro monitor possa gestire (85 Hz è ottimo, 75 Hz buono, 60 Hz doloroso).


9.4.4 X client

La maggior parte dei programmi X client possono essere lanciati con un comando tipo questo:

     client $ xterm -geometry 80x24+30+200 -fn 6x10 -display hostname:0 &

Dove gli argomenti opzionali vogliono dire:

Il displayname predefinito per il programma X client program (lato applicazione) può essere impostato tramite la variabile d'ambiente DISPLAY. Per esempio, prima di lanciare un programma X client l'esecuzione di uno dei seguenti comandi permette ciò:

     $ export DISPLAY=:0 
             # il predefinito, macchina locale, utilizzando il primo schermo X
     $ export DISPLAY=hostname.fulldomain.name:0.2
     $ export DISPLAY=localhost:0

Il suo lancio può essere personalizzato tramite ~/.xinitrc. Per esempio:

     xrdb -load $HOME/.Xresources
     xsetroot -solid gray &
     xclock -g 50x50-0+0 -bw 0 &
     xload -g 50x50-50+0 -bw 0 &
     xterm -g 80x24+0+0 &
     xterm -g 80x24+0-0 &
     twm

Come descritto in Personalizzare le X session, Sezione 9.4.5.1, ciò scavalca ogni normale esecuzione di Xsession, quando lanciato da startx. Usate questo approccio solo come ultima risorsa. Vedere xsetroot(1x), xset(1x), e X resources, Sezione 9.4.10.


9.4.5 Le X session

Una X session (X server + X client) può essere lanciata da:

Si può avere l'accesso alla console come da "Voglio disabilitare X al boot!", Sezione 8.1.4.


9.4.5.1 Personalizzare le X session

Lo script di inizializzazione predefinito, /etc/X11/Xsession è, in effetti, una combinazione di /etc/X11/Xsession.d/50xfree86-common_determine-startup e di /etc/X11/Xsession.d/99xfree86-common_start.

L'esecuzione di /etc/X11/Xsession viene in qualche modo influenzata da /etc/X11/Xsession.options ed è fondamentalmente l'esecuzione del programma che viene trovato per primo nella seguente lista dal comando exec:

  1. ~/.xsession o ~/.Xsession, se è definito.
  2. /usr/bin/x-session-manager, se è definito.
  3. /usr/bin/x-window-manager, se è definito.
  4. /usr/bin/x-terminal-emulator, se è definito.

L'esatto significato di questi comandi è determinato dal sistema alternativo Debian descritto in Comandi alternativi, Sezione 6.5.3. Per esempio:

     # update-alternatives --config x-session-manager
     ... oppure
     # update-alternatives --config x-window-manager

Per rendere qualsiasi X window manager quello predefinito mentre si mantengono installati i session manager di GNOME e KDE, sostituite /etc/X11/Xsession.d/50xfree86-common_determine-startup con quello allegato al secondo bug report in http://bugs.debian.org/168347 (Spero che venga presto incluso.) e modificate /etc/X11/Xsession.options come segue per disabilitare l' X session manager:

     # /etc/X11/Xsession.options
     #
     # configuration options for /etc/X11/Xsession
     # See Xsession.options(5) for an explanation of the available options.
     # Default enabled
     allow-failsafe
     allow-user-resources
     allow-user-xsession
     use-ssh-agent
     # Default disabled (enable them by uncommenting)
     do-not-use-x-session-manager
     #do-not-use-x-window-manager

Senza le summenzionate modifiche al sistema, gnome-session e kdebase sono i pacchetti che contengono questi X session manager. Rimuovendoli si permette all'X window manager preferito di essere quello predefinito. (Idee migliori?)

Su un sistema in cui /etc/X11/Xsession.options contiene una riga allow-user-xsession non preceduta da altri caratteri, qualsiasi utente che definisse un proprio ~/.xsession o ~/.Xsession sarebbe in grado di personalizzare le azioni di /etc/X11/Xsession.

L'ultimo comando nel file ~/.xsession dovrebbe essere sotto forma di exec some-window/session-manager per lanciare il vostro X window/session manager preferito.

Un buon esempio del file ~/.xsession si trova in /usr/share/doc/xfree86-common/examples/xsession.gz.

Io lo uso per impostare il window manager, accesso allo schermo e lingua per ciascun utente. Vedere Lanciare una X session per un utente, Sezione 9.4.5.2, Diventare root in X, Sezione 9.4.12, e Esempio per un sistema multilingue per X window system, Sezione 9.7.9.

Se volete avere lanciare automaticamente parecchi programmi X client, guardate gli esempi di X client, Sezione 9.4.4 ed invocateli da ~/.xsession invece che da ~/.xinitrc.

Risorse addizionali di X specifiche per utente possono essere inserite in ~/.Xresources. Vedere X resources, Sezione 9.4.10.

Mappature del mouse e della tastiera specifiche per ciascun utente in X possono essere definite nello script di lancio dell'utente. Vedere Mappatura della tastiiera e dei tasti del puntatore in X, Sezione 9.4.11.


9.4.5.2 Lanciare una X session per un utente

Seguendo il principio descritto in Personalizzare le X session, Sezione 9.4.5.1, X session/window manager specifici per l'utente possono essere attivati installando il pacchetto indicato ed impostando il contenuto alla fine del file ~/.xsession come segue. (Amo blackbox/fluxbox per lo stile semplice e la velocità.):

Vedere Window Manager per X.


9.4.5.3 Impostazione degli ambienti KDE e GNOME

Per un setup completo degli ambienti KDE o GNOME sono utili i seguenti metapacchetti:

L'installazione di questi pacchetti con programmi in grado di maneggiare pacchetti marcati con Raccomanda, tipo dselect ed aptitude, fornisce una scelta di software rispetto alla semplice installazione con apt-get.

Se volete comunque il login da console, disabilitate gli X display manager, tipo kdm, gdm, e wdm, che possono essere richiamati dal gioco delle dipendenze, come descritto in "Voglio disabilitare X al boot!", Sezione 8.1.4.

Se volete GNOME come sistema predefinito invece che KDE, configurate x-session-manager come descritto in Comandi alternativi, Sezione 6.5.3.


9.4.6 Connessione TCP/IP ad X

Siccome una connessione remota TCP/IP senza cifratura è vulnerabile ad attacchi tipo eavesdropping, l'impostazione predefinita per X nelle versioni Debian più recenti disabilita il socket TCP/IP. Prendete in considerazione ssh per una connessione remota ad X (vedere Connessioni ad un X server remoto – ssh, Sezione 9.4.8).

Il metodo qui descritto non è consigliato, a meno di essere in un ambiente altamente sicuro, dietro un buon firewall, solo con utenti fidati. Usate il seguente comando per verificare le impostazioni del vostro X server rispetto al socket TCP/IP:

     # find /etc/X11 -type f -print0 | xargs -0 grep nolisten
     /etc/X11/xinit/xserverrc:exec /usr/bin/X11/X -dpi 100 -nolisten tcp

Rimuovete -nolisten per ripristinare l'ascolto TCP/IP sull' X server.


9.4.7 Connessioni ad un X server remoto – xhost

xhost permette l'accesso basato sugli hostname. Altamente insicuro. Quanto segue disabilita il controllo degli host e permette le connessioni da ovunque se una connessione TCP/IP è permessa (vedere Connessione TCP/IP ad X, Sezione 9.4.6):

     $ xhost +

Potete riabilitare il controllo dell'host con:

     $ xhost -

xhost non fa distinzioni fra utenti differenti sull'host remoto. In più gli hostname (in realtà gli indirizzi) possono essere contraffatti.

Tale metodo va evitato, anche con criteri relativi agli host più restrittivi, se siete su una rete non fidata (tipo l'accesso dialup con PPP ad Internet). Vedere xhost(1x).


9.4.8 Connessioni ad un X server remoto – ssh

L'uso di ssh permette una connessione sicura da un server X locale ad un application server remoto.

Questo metodo permette la visione dell'output del client X remoto come fosse connesso localmente attraverso uno UNIX domain socket.


9.4.9 L'emulatore di terminale di X – xterm

Per conoscere tutto su xterm guardate a http://dickey.his.com/xterm/xterm.faq.html.


9.4.10 X resources

Molti programmi per X più vecchi, tipo xterm, usano il cosiddetto X resource database per configurare il loro aspetto. Per immagazzinare le risorse specifiche per l'utente si usa il file ~/.Xresources. Questo file viene fatto confluire automaticamente al login nelle X resources di default. Le X resources predefinite per il sistema sono contenute in /etc/X11/Xresources/* e i loro application defaults in /etc/X11/app-defaults/*. Usate queste impostazioni come punto di partenza.

Ecco alcune impostazioni utili da aggiungere al vostro file ~/.Xresources:

     ! Imposta il font ad un più leggibile 9x15
     XTerm*font: 9x15
     
     ! Mostra la barra di scorrimento
     XTerm*scrollBar: true
     
     ! Imposta la grandezza del buffer a 1000 linee
     XTerm*saveLines: 1000
     
     ! Schermo kterm più grande
     KTerm*VT100*fontList: -*-fixed-medium-r-normal--24-*,\
      -*-gothic-medium-r-normal--24-*,\
      -*-mincho-medium-r-normal--24-*

Affinchè queste impostazioni abbianno effetto immediato, fatele confluire nel database con il comando:

     xrdb -merge ~/.Xresources

Vedere xrdb(1x).


9.4.11 Mappatura della tastiiera e dei tasti del puntatore in X

Il programma xmodmap viene usato per modificare e mostrare la la modifier map della tastiera la keymap table usate dalle applicazioni client per convertire i keycode in keysyms in X.

     $ xmodmap -pm 
      ... mostra la modifier map attuale
     $ xmodmap -pk | pager
      ... mostra la keymap tabl attuale
     $ xmodmap -e "pointer = 3 2 1" # imposta il mauose per la mano sinistra
     $ xmodmap ~/.xmodmaprc # imposta la tastiera come in ~/.xmodmaprc

E' in genere lanciato dallo script di inizio della sessione di ciascun utente, ~/.xsession.

Per avvere il keycode, lanciate xev in X e premete i tasti. Per sapere cosa significa keysym, guardate alla definizione MACRO in /usr/include/X11/keysymdef.h. Tutte le istruzioni #define in questo file sono chiamate con XK_ davanti ai nomi keysym.

Vedere xmodmap(1x).


9.4.12 Diventare root in X

Se un programma con interfaccia grafica richiede l'esecuzione da root, usate le seguenti procedure per visualizzare l'output del programma sull'X server dell'utente. Non tentate mai di lanciare un X server direttamente dal root account per evitare possibili rischi dal punto di vista della sicurezza.

Lanciate l' X server come un utente normale, ed aprite una console xterm. Poi:

     $ XAUTHORITY=$HOME/.Xauthority
     $ export XAUTHORITY
     $ su root
     Password:*****
     # printtool &

Quando usate questo trucco con su verso un utente non root, assicuratevi che ~/.Xauthority sia leggibile dal gruppo di detto utente non root.

Per automatizzare questa sequenza di comandi, create un file ~/.xsession dall'accout utente che contenga le seguenti righe:

     # Questo fa funzionare X quando lancio su verso l'account root.
     if [ -z "$XAUTHORITY" ]; then
             XAUTHORITY=$HOME/.Xauthority
             export XAUTHORITY
     fi
     unset XSTARTUP
     # Se si desidera un window/session manager particolare, decommentate la riga seguente
     # e modificatela a vostro piacimento.
     #XSTARTUP=/usr/bin/blackbox
     # Questo lancia il programma x-window/session-manager
     if [ -z "$XSTARTUP" ]; then
       if [ -x /usr/bin/x-session-manager ]; then
         XSTARTUP=x-session-manager
       elif [ -x /usr/bin/x-window-manager ]; then
         XSTARTUP=x-window-manager
       elif [ -x /usr/bin/x-terminal-emulator ]; then
         XSTARTUP=x-terminal-emulator
       fi
     fi
     # lancia automaticamente l'X window/session manager selezionato
     exec $XSTARTUP

Poi lanciate su (non su -) in una finestra xterm dell'utente. I programmi con interfaccia grafica lanciati da questo xterm possono visualizzare l'output sull'X window dell'utente mentre girano con i privilegi di root. Il trucco funziona finchè si usa il file /etc/X11/Xsession di default. Se un utente fa le proprie modifiche tramite ~/.xinit o ~/.xsession, la variabile d'ambiente sopra descritta XAUTHORITY dovrà essere impostata allo stesso modo in questi script.

In alternativa, si può usare, sudo per automatizzare la sequenza di comandi:

     $ sudo xterm
     ... oppure 
     $ sudo -H -s

In questo caso /root/.bashrc dovrà contenere:

     if [ $SUDO_USER ]; then 
     sudo -H -u $SUDO_USER xauth extract - $DISPLAY | xauth merge - 
     fi

Questo funziona bene anche se la directory home dell'utente è montata su NFS mount, poichè root non legge il file .Xauthority.

Esistono anche parecchi altri pacchetti specializzati all'uopo: kdesu, gksu, gksudo, gnome-sudo, e xsu. Altri metodi possono essere usati per raggiungere lo stesso risultato: creare un collegamento simbolico tra /root/.Xauthority ed il corrispettivo dell'utente; usare lo script sux; or mettere "xauth merge ~USER_RUNNING_X/.Xauthority" nello script di inizializzazione di root.

Vedere anche sulla lista di messaggi debian-devel.


9.4.13 Font TrueType in X

Lo standard xfs in XFree86-4 funziona bene con i fonts TrueType. Se usate XFree86-3 dovete installare un server di terzi, tipo xfs-xtt.

Dovete solo assicurarvi che con qualsiasi applicazione vogliate usare, i font TrueType siano collegati a libXft o libfreetype (se usate file .deb precompilati non dovete nemmeno preoccuparvi di questo, probabilmente).

Per prima cosa, impostate l'infrastruttura per il supporto dei font:_

Poi installate i pacchetti di font DFSG:

Siccome i font Free sono talvolta limitati, installarne o condividerne di commerciali è un'opzione per gli utenti Debian. Per rendere facile tale processo, sono stati creati alcuni pacchetti ad hoc:

Avrete un'ottima selezione di font TrueType al costo di contaminare il vostro sistema Free con font non-Free.

Tutti questi pacchetti di font dovrebbero funzionare in Debian senza sforzi, ed apparire disponibili a tutti i programmi che usano il font system "centrale". Ciò include programmi tipo Xterm, Emacs, e molte altre applicazioni non-KDE e non-GNOME.

Ora, lanciate xfontsel e scegliete qualsiasi font TrueType nel menu fndry, dovreste essere in grado di vedere molte voci disponibili nel menu "fmly".

Per KDE2.2 e GNOME1.4 (con libgdkxft0, che è un trucco per costringere GTK 1.2 ad eseguire il rendering dei font anti-aliased), dovete impostare anche Xft1. Xft1 è altamente deprecato ed è in pratica usato solo da GNOME1.4 e da KDE2.2. Modificate /etc/X11/XftConfig ed aggiungete una riga tipo

         dir "/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType"

prima delle altre righe dir. [43]

Per GNOME2 e KDE3 (dopo il rilascio di Sarge), dovete impostare fontconfig che usa Xft2 per trovare i font. [44] Non dovreste aver bisogno di installare alcunchè di extra per questo, pochè tutti i pacchetti che usano fontconfig Dipendono già da esso (indirettamente).

Prima gurdate in /etc/fonts/fonts.conf. Dovrebbe esserci una riga come quella sotto. Se non c'è, aprite /etc/fonts/local.conf ed aggiungete questo

         <dir>/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType</dir>

subito dopo la riga <fontconfig>.

Fontconfig dovrebbe prenderli immediatamente ed "fc-list" dovrebbe elencare i vostri nuovi font. Un'altra valida caratteristica di fontconfig è che potete inserire semplicemente i font da ~/.fonts/ e tutti i vostri programmi fontconfigurati avranno accesso a loro immediatamente.

Se installate manualmente un set di font TrueType mentre siete in X senza usare un pacchetto Debian, lanciate

     # xset fp rehash

per far sì che XFree86 guardi al contenuto di quella directory nuovamente e prenda i nuovi font.


9.4.14 Web Browser (grafici)

In Woody esistono alcuni pacchetti di Web browser con capacità grafiche:

La versione di mozilla deve corrispondere a quella richiesta da galeon. Nonostante differiscano nell'interfaccia, entrambi condividono il motore di rendering HTML Gecko.

I plug-in per i browser tipo mozilla e galeon possono essere abilitati installando manualmente "*.so" nella directory plug-in e riavviando i browser.

Varie risorse per i plug-in:


9.5 SSH

SSH (Secure SHell) è il modo sicuro per connettersi via Internet. Una versione free di SSH, chiamata OpenSSH è disponibile come pacchetto ssh in Debian.


9.5.1 Principi basilari di SSH

Installate prima il server ed il client OpenSSH.

     # apt-get update && apt-get install ssh

E' necessario il riferimento a non-US in /etc/apt/source.list. /etc/ssh/sshd_not_to_be_run non deve essere presente se si vuole far girare il server OpenSSH.

SSH ha due protocolli di autenticazione:

Fate attenzione a queste differenze se state migrando da Woody od usando un sistema non-Debian.

Vedere /usr/share/doc/ssh/README.Debian.gz, ssh(1), sshd(8), ssh-agent(1), e ssh-keygen(1) per i dettagli.

A seguire i file di configurazione chiave:

I seguenti comandi lanciano una connessione ssh da un client.

     $ ssh username@hostname.domain.ext 
     $ ssh -1 username@hostname.domain.ext # Forza la versione 1 di SSH
     $ ssh -1 -o RSAAuthentication=no -l username foo.host
         # forza la password su SSH1
     $ ssh -o PreferredAuthentications=password -l username foo.host
         # forza la password su SSH2

Per l'utente, ssh funziona da telnet più sicuro ed intelligente (non vi bombarda con ^]).


9.5.2 Port forwarding – per il tunneling SMTP/POP3

Per stabilire una pipe per connettere la porta 25 del server-remoto dalla porta 4025 del localhost, e la porta 110 del server-remoto dalla porta 4110 del localhost attraverso ssh, eseguite sulla macchina locale:

     # ssh -q -L 4025:server-remoto:25 4110:server-remoto:110 \
                username@server-remoto

E' un modo sicuro di eseguire connessioni a server SMTP/POP3 su Internet. impostate la voce AllowTcpForwarding a yes in /etc/ssh/sshd_config sull'host remoto.


9.5.3 Connettersi con meno passwords – RSA

Potete evitare di ricordare una password per ogni sistema remoto usando la RSAAuthentication (protocollo SSH1) o PubkeyAuthentication (protocollo SSH2).

Sul sistema remoto impostate i rispettivi parametri, "RSAAuthentication yes" o "PubkeyAuthentication yes", in /etc/ssh/sshd_config.

Infine, generate le chiavi di autenticazione localmente ed installate la chiave pubblica sul sistema remoto:

     $ ssh-keygen          # RSAAuthentication: chiave RSA per SSH1
     $ cat .ssh/identity.pub | ssh user1@remote \
             "cat - >>.ssh/authorized_keys"
     ...
     $ ssh-keygen -t rsa   # PubkeyAuthentication: chiave RSA per SSH2
     $ cat .ssh/id_rsa.pub | ssh user1@remote \
             "cat - >>.ssh/authorized_keys"
     ...
     $ ssh-keygen -t dsa   # PubkeyAuthentication: chiave DSA per SSH2
     $ cat .ssh/id_dsa.pub | ssh user1@remote \
             "cat - >>.ssh/authorized_keys"

Potrete cambiare la passphrase in seguito con "ssh-keygen -p". Verificate le impostazioni provando la connessione. In caso di problemi, usate "ssh -v".

Potete aggiungere delle opzioni ai parametri in authorized_keys per limitare gli host e per eseguire comandi specifici. Vedere sshd(8) per i dettagli.

Notate che SSH2 ha HostbasedAuthentication. Affinchè funzioni, dovete aggiustare le impostazioni di HostbasedAuthentication a yes in both /etc/ssh/sshd_config on the server machine and /etc/ssh/ssh_config o $HOME/.ssh/config sulla macchina client.


9.5.4 Client SSH differenti

Esistono alcuni client SSH disponibili per piattaforme non Unix e simili.

Windows
puTTY (GPL)
Windows (cygwin)
SSH in cygwin (GPL)
Macintosh Classic
macSSH (GPL) [Notate che Mac OS X include OpenSSH; usate ssh nell'applicazione Terminal]

Vedere anche SourceForge.net, site documentation, "6. CVS Instructions".


9.5.5 SSH agent

E' più sicuro proteggere la vostra autenticazione SSH con una passphrase. Se non è impostata, usate ssh-keygen -p per farlo.

Inserite la vostra chiave pubblica (p. es ~/.ssh/id_rsa.pub) in ~/.ssh/authorized_keys, su un host remoto mediante una connessione basata su password come descritto in Connettersi con meno passwords – RSA, Sezione 9.5.3.

     $ ssh-agent bash # oppure lanciate zsh/tcsh/pdksh.
     $ ssh-add ~/.ssh/id_rsa
     Enter passphrase for /home/osamu/.ssh/id_rsa:
     Identity added: /home/osamu/.ssh/id_rsa (/home/osamu/.ssh/id_rsa)
     $ scp foo user@remote.host:foo
      ... da qui in poi più nessuna passphrase richiesta :-)
     $^D
      ... terminando la sessione di ssh-agent

Per l'X server, i normali script di lancio Debian eseguono ssh-agent come processo genitore. Così, dovete eseguire ssh-add solo una volta.

Per ulteriori informazioni, leggete ssh-agent(1) e ssh-add(1).


9.5.6 Risoluzione dei problemi con SSH

In caso di problemi, controllate i permessi del file di configurazione e lanciate ssh con l'opzione "-v".

Usate l'opzione "-P" se siete root ed avete problemi col firewall, per evitare di usare le porte del server 1–1023.

Se le connessioni ssh ad un sito remoto smettono improvvisamente di funzionare, ciò può essere dovuto a maneggiamenti dell'amministratore o, più probabilmente a cambiamenti in host_key durante la manutenzione del sistema. Dopo essersi assicurati che è proprio questo il caso e che nessuno sta tentando di falsificare l'host remoto mediante qualche trucco geniale, potete riguadagnare la connessione rimuovendo la voce host_key da $HOME/.ssh/known_hosts della macchina locale.


9.6 Posta

La configurazione della posta si divide in tre categorie:


9.6.1 Mail transport agent (MTA)

Per un MTA con tutte le funzionalità, usate exim in Woody e exim4 in Sarge. [45] Riferimenti:

L'unica alternativa ragionevole è postfix se avete a cuore la sicurezza. sendmail e qmail sono disponibili come pacchetti Debian, ma non sono raccomandati.

Se non avete bisogno delle capacità specifiche di un MTA, come nel caso di un sistema satellite tipo un portatile, potete prendere in considerazione uno di questi pacchetti leggeri.

Al momento, trovo exim più adatto, anche per la mia workstation pesonale, che è un PC portatile.

Potreste dover rimuovere exim per installare questi pacchetti conflittuali:

     # dpkg -P --force-depends exim
     # apt-get install nullmailer         # o ssmtp

9.6.1.1 Smarthost

Se avete exim4 o exim su un host connesso tramite servizi commerciali, assicuratevi di inviare la posta in uscita attraverso uno smarthost offerto dal vostro ISP, o da qualcun altro. [46] esistono alcune buone ragioni:

Le uniche eccezioni possibili sono:


9.6.1.2 Configurazione base di Exim

per usare exim e exim4 come MTA, configurate:

     /etc/exim/exim.conf     "eximconfig" per crearlo e modificarlo
     /etc/exim4/*            "dpkg-reconfigure exim4" per crearlo e modificarlo (exim4)
     /etc/inetd.conf         decommentate smtp per lanciare exim come demone
     /etc/email-addresses    Aggiungete una lista di indirizzi email fasulli

controllate i filtri usando exim4 o exim con -brw, -bf, -bF, -bV, ... ecc.


9.6.1.3 Raccolta di tutti gli indirizzi e-mail inesistenti in Exim

In /etc/exim/exim.conf (Woody e seguenti), aggiungete nella sezione DIRECTORS alla fine, (dopo localuser: director) un indirizzatore (director) che raccolga tutti gli indirizzi che i directors precedenti non hanno potuto risolvere (Secondo Miquel van Smoorenburg):

     catchall:
       driver = smartuser
         new_address = webmaster@mydomain.com

Se si desidera avere una ricetta più dettagliata per ogni dominio virtuale, ecc., aggiungete la seguente riga alla fine di /etc/exim/exim.conf (secondo me, non ben testato):

     *@yourdomain.com ${lookup{$1}lsearch*{/etc/email-addresses} \
             {$value}fail} T

Aggiungete, poi una "*" in /etc/email-addresses.


9.6.1.4 Riscrivere selettivamente l'indirizzo per la posta in uscita (Exim)

La riscrittura selettiva dell'indirizzo per la posta in uscita per avere un giusto header "From:" può essere fatta con exim configurando verso la parte finale /etc/exim/exim.conf:

     *@host1.something.dyndns.org \
       "${if eq {${lookup{$1}lsearch{/etc/passwd}{1}{0}}} {1}  \
        {$0}{$1@somethig.dyndns.org}}"  frFs

Ciò riscrive tutti gli indirizzi che coincidono con *@host1.something.dyndns.org.

  1. Cerca dentro /etc/password per vedere se la parte locale ($1) è un utente locale o no.
  1. Se lo è, riscrive l'indirizzo facendolo coincidere con la stessa cosa trovata al primo posto ($0).
  1. Se non lo è, riscrive la parte del dominio.

9.6.1.5 Configurare l'autenticazione SMTP in Exim

Alcuni servizi SMTP, tipo yahoo.com richiedono l'autenticazione SMTP. Configurate /etc/exim/exim.conf come segue:

     remote_smtp:
       driver = smtp
       authenticate_hosts = smtp.mail.yahoo.com
     ...
     
     smarthost:
       driver = domainlist
       transport = remote_smtp
       route_list = "* smtp.mail.yahoo.com bydns_a"
     ...
     
     plain:
       driver = plaintext
       public_name = PLAIN
       client_send = "^cmatheson3^this_is_my_password"

Non dimenticate le virgolette doppie sull'ultima riga.


9.6.2 Ritirare la posta – Fetchmail

fetchmail viene eseguito in modalità demone per raccogliere la posta dagli account POP3 del vostro provider smistandoli nel sistema locale di posta. Configurate:

     /etc/init.d/fetchmail   
     /etc/rc?.d/???fetchmail lancia update-rc.d fetchmail default priority 30
     /etc/fetchmailrc        file di configurazione (chown 600, posseduto da fetchmail)

Le informazioni su come lanciare fetchmail come demone dallo script init.d in Potato sono confuse (in Woody è stato risolto). Vedere i file di esempio /etc/init.d/fetchmail e /etc/fetchmailrc negli script di esempio.

Se i vostri header di posta sono infestati da ^M per colpa del mailer del vostro provider, aggiungete "stripcr" alle vostre opzioni in $HOME/.fetchmailrc:

     options fetchall no keep stripcr

9.6.3 Processare la posta – Procmail

procmail è il sistema locale di consegna e filtraggio della posta. Per ogni account che lo usa si deve creare un file $HOME/.procmailrc. Per esempio: _procmailrc


9.6.4 Processare lo spam con crm114

Il pacchetto crm114 fornisce lo script /usr/share/crm114/mailfilter.crm, che è scritto in CRM114. Esso fornisce un filtro per lo spam molto efficace, che può essere instruito fornendogli spam e posta normale.

CRM114 è un piccolo linguaggio disegnato per scrivere dei filtri; consideratelo una versione di grep con superpoteri. Vedere crm(1).


9.6.5 Leggere la posta – Mutt

Usate mutt come MUA in combinazione con vim. Personalizzatelo tramite ~/.muttrc; per esempio:

     # usa il modo visuale e "gq" per riformattare le citazioni
     set editor="vim -c 'set tw=72 et ft=mail'"
     #
     # impostazione degli header, presa direttamente dal manuale ("Sven's Draconian header weeding")
     #
     ignore *
     unignore from: date subject to cc
     unignore user-agent x-mailer
     hdr_order from subject to cc date user-agent x-mailer
     auto_view application/msword
     ....

Aggiungete quanto segue a /etc/mailcap o a $HOME/.mailcap per visualizzare messaggi in HTML ed allegati MS Word:

     text/html; lynx -force_html %s; needsterminal;
     application/msword; /usr/bin/antiword '%s'; copiousoutput;
     description="Microsoft Word Text"; nametemplate=%s.doc

9.7 Localizzazione (l10n)

Debian è internazionalizzato, offrendo supporto per un numero crescente di lingue e convenzioni locali. La sottosezione seguente elenca alcune delle diversità che Debian attualmente supporta, mentre la successiva tratta della localizzazione, ovvero il processo di personalizzare il vostro ambiente di lavoro per permettere il giusto input ed output del(i) linguaggio(i) scelto(i) e le convenzioni per date, formati numerici e monetari e per tutti gli aspetti che caratterizzano una data regione.


9.7.1 Le basi della localizzazione

Ci sono alcuni aspetti da considerare per la personalizzazione della localizzazione ed il supporto della propria lingua nazionale.


9.7.1.1 Localizzare la tastiera

Debian è distribuito con le keymap per quasi due dozzine di tastiere. In Woody, riconfigurate la tastiera con:


9.7.1.2 Localizzare i file di dati

La gran parte dei pacchetti software Debian supporta il trattamento dei dati formati da caratteri non-US-ASCII attraverso la variabile d'ambiente LC_CTYPE offerta dalla tecnologia locale in glibc


9.7.1.3 Localizzare lo schermo

X è in grado di mostrare qualsiasi coding, compreso UTF-8 e supporta tutti i font. La lista comprende non solo tutti i font a 8-bit, ma anche quelli a 16-bit, come il Cinese, Giapponese o Coreano. Il metodo di inserimento dei caratteri multibite è supportato dal meccanismo XIM. Vedere Esempio per un sistema multilingue per X window system, Sezione 9.7.9 e Supporto UTF-8 per l'emulatore di terminale in X, Sezione 9.7.12.

La visualizzazione del codice Giapponese EUC è anche disponibile nella console grafica (S)VGA, tramite il pacchetto kon2. Esiste anche un nuovo display giapponese alternativo, jfbterm che usa la console framebuffer. In queste console, il metodo di inserimento dei caratteri giapponesi deve essere fornito dalla applicazione. Usate il pacchetto egg per Emacs ed il pacchetto giapponesizzato jvim per Vim.

L'installazione di font non Unicode in X aiuta a mostrare i documenti con qualsiasi condifica. Quindi, non preoccupatevi tanto della codifica dei font.


9.7.1.4 Localizzare i messaggi e la documentazione

Traduzioni esistono per molti dei messaggi di testo e documenti che vengono visualizzati nel sistema Debian, tipo messaggi di errore, output dei programmi, menu e pagine man. Al momento il supporto per le pagine di manuale in Tedesco, Spagnolo, Finlandese, Francese, Ungherese, Italiano, Giapponese, Coreano, Polacco, Portoghese, Cinese e Russo, viene fornito attraverso i pacchetti manpages-LANG (dove LANG è una lista separata da virgole dei codici nazione ISO (di due lettere). Usate apt-cache search manpages-|less per avere una lista delle pagine di manuale Unix disponibili.)

Per accedere ad una pagina di manuale NLS, l'utente deve impostare la variabile d'ambiente LC_MESSAGES alla stringa appropriata. Per esempio, in caso di pagine di manuale in Italiano, LC_MESSAGES dovrà essere impostata a it. Il programma man cercherà quindi le pagine in Italiano sotto /usr/share/man/it/.


9.7.2 I locale

Debian supporta la tecnologia locale. Locale è un meccanismo che permette ai programmi di fornire un valido output e funzionalità in accordo con le convenzioni locali, tipo il set di caratteri, il formato per data e ora, il simbolo di valuta, e così via. Usa delle variabili d'ambiente per determinare il comportamento più appropriato. Per esempio, assumendo che abbiate installati i locale per L'Inglese Americano ed il Tedesco sul vostro sistema, i messaggi di errore di molti programmi potrebbero essere bilingue:

     $ LANG="en_US" cat foo
     cat: foo: No such file or directory
     $ LANG="de_DE" cat foo
     cat: foo: Datei oder Verzeichnis nicht gefunden

Glibc offre il supporto per locale ai programmi sotto forma di libreria. Vedere locale(7).


9.7.3 Introduzione ai locale

Una descrizione completa di locale consiste in 3 parti: xx_YY.ZZZZ.

Per i codici lingua e nazione, vedere una descrizione pertinente in info gettext.

Notate che la parte codeset può venire normalizzata internamente per ottenere una compatibilità cross platform rimuovendo tutti i - e convertendo tutti i caratteri in minuscolo. Codeset tipici sono:

Per quanto riguarda il gergo del sistema base di codifica:

ISO-8859-?, EUC, ISO-10646-1, UCS-2, UCS-4, ed UTF-8 condividono lo stesso codice con ASCII per i caratteri a 7 bit. EUC o Shift-JIS usa caratteri high-bit (0x80-0xff) per indicare che parte della codifica è a 16 bit. Anche UTF-8 usa caratteri high-bit (0x80-0xff) per indicare byte con sequenze di caratteri non a 7 bit, e questo è il sistema di codifica più sano per gestire i caratteri non-ASCII.

Notate la differenza nell'ordine dei byte della implementazione Unicode:

Vedere Convertire un file di testo con recode, Sezione 8.6.12 per la conversione fre i vari set di caratteri. Per maggiori informazioni, vedere Introduzione a i18n.


9.7.4 Attivare le capacità di supporto locale

Debian non arriva con tutti i locale disponibili precompilati. Controllate /usr/lib/locale per vedere quali (oltre a quello predefinito, "C") sono compilati sul vostro sistema. Se quello di cui avete bisogno non è presente, avete due opzioni:


9.7.5 Attivare un locale in particolare

Le seguenti variabili d'ambiente vengono valutate in questo ordine per fornire ai programmi particolari valori di locale:

  1. LANGUAGE: Consiste di una lista di nomi di locale, separati da una virgola, in ordine di priorità. Usata solo se il locale POSIX è impostato ad un valore diverso da "C" [in Woody; la versione Potato ha sempre priorità sul locale POSIX]. (Estensione GNU)
  1. LC_ALL: Se non è nullo, il valore è usato per tutte le categorie di locale. (POSIX.1) Di solito "" (nullo).
  1. LC_*: Se non è nullo, il valore è utilizzato per la categoria corrispondente (POSIX.1). Di solito "C".

    Variabili LC_* sono:

  1. LANG: Se non è nullo e se LC_ALL non è definito, il valore è usato per tutte le categorie di locale LC_* con valori non definiti. (POSIX.1) Di solito "C".

Notate che alcune applicazioni (p.es., Netscape 4) ignorano le impostazioni LC_*.

Il programma locale può mostrare le impostazioni attive ed i locale disponibili; vedere locale(1). (NOTA: locale -a elenca tutti i locale che il vostro sistema conosce; questo non significa che tutti siano compilati! Vedere Attivare le capacità di supporto locale, Sezione 9.7.4.)


9.7.6 Formato data ISO 8601

Il supporto locale per lo standard internazionale di data aaaa-mm-gg (formato data ISO 8601) è fornito dal locale chiamato en_DK, "English in Denmark" che è una sorta di gioco di parole :-) Sembra funzionare solo in console per ls.


9.7.7 Esempio per US (ISO-8859-1)

Aggiungete le righe seguenti in ~/.bash_profile:

     LC_CTYPE=en_US.ISO-8859-1
     export LC_CTYPE

9.7.8 Esempio per l'Italiano con euro (ISO-8859-15)

Aggiungete le righe seguenti in ~/.bash_profile:

     LANG=it_IT@euro
     export LANG
     LC_CTYPE=it_IT@euro
     export LC_CTYPE

Configurate la tastiera per l'Italiano "QWERTY" come descritto in Localizzare la tastiera, Sezione 9.7.1.1. ed aggiungete le pagine di manuale in Italiano installando manpages-it. Il tasto Right-Alt degli USA è Alt-Gr in Europa. Premedolo con altri tasti crea molti caratteri speciali. Per esempio, Alt-Gr+E crea il segno dell'euro.

Molti dei linguaggi dell'Europa occidentale possono essere configurati allo stesso modo.

Vedere Debian Euro HOWTO per aggiungere il supporto per l'euro e Utiliser et configurer Debian pour le français per maggiori dettagli per il Francese (NdT: no, per l'Italiano non mi risulta un equivalente).


9.7.9 Esempio per un sistema multilingue per X window system

Impostiamo un sistema multilingue che supporti simultaneamente Giapponese, Inglese Tedesco e Francese con codifiche EUC, UTF-( ed ISO-8859-1 sulle diverse console.

Vi mostrerò una personalizzazione del Debian menu system. Vedere i dettagli del Debian menu system in /usr/share/doc/menu/html/index.html. Creerò anche una scorciatoia al browser mozilla. [47]

Per altro supporto per il linguaggio CJK, vedere le sezioni seguenti ed anche le pagine SuSE per CJK.


9.7.10 Metodi alternativi di input in X

Molti i pacchetti disponibili che supprtano metodi alternativi di input in X:

     LIngua     LC_CTYPE     XIM server XMODIFIERS              Tasto per il lancio
     Japanese   ja_JP*       kinput2    "@im=kinput2"           Maiusc-Spazio
     Korean     ko_KR*       ami        "@im=Ami"               Maiusc-Spazio
     Chinese(T) zh_TW.Big5   xcin       "@im=xcin-zh_TW.big5"   Ctrl-Spazio
     Chinese(S) zh_CN.GB2312 xcin       "@im=xcin-zh_CN.GB2312" Ctrl-Spazio

Il metodo Giapponese, kinput2 è offerto dai pacchetti kinput2-canna-wnn, kinput2-canna e kinput2-wnn. Il metodo Giapponese necessita di un server per il dizionario, tipo canna e freewnn-jserver per essere pratico.


9.7.11 Emulatori di terminale in X

Sono molte le console in X che supportano la semplice codifica a 8 bit quando i pacchetti dei font pertinenti sono installati:

Il supporto per la codifica multi-byte vine fornito da xterm tramite la codifica UTF-8 (Supporto UTF-8 per l'emulatore di terminale in X, Sezione 9.7.12). Altri metodi di supporto tradizionali sono in fase di lavorazione (al 2003). I seguenti pacchetti offrono supporti tradizionali:

Per kterm (e possibilmente altri), potreste voler attivare XIM da menu dopo aver premuto Ctrl-tasto-centrale del mouse.


9.7.12 Supporto UTF-8 per l'emulatore di terminale in X

Il supporto UTF-8 per l'emulatore di terminale viene fornito dal programma uxterm del pacchetto xterm per XFree86 4.x. Abilita il supporto per tutte le lingue. E' un wrapper di xterm(1) che invoca quest'ultimo con impostata la X resource class "UXTerm".

Per esempio, per abilitare la bella visione ingrandita dei caratteri Inglese, Russo, Giapponese, Cinese e Coreano, aggiungete quanto segue al vostro ~/.Xresources dopo aver installato i font pertinenti:

     ! set large font
     UXTerm*font: -misc-fixed-medium-r-normal-*-18-120-100-100-c-90-iso10646-1
     ! Use XIM for Japanese
     *inputMethod: kinput2

Poi eseguite xrdb -merge ~/.Xresources per aggiornare le X resources come descritto in X resources, Sezione 9.4.10.

Sebbene gran parte dei pacchetti dei programmi di console popolari, come vim, mutt, e emacs sono stati resi compatibili con UTF-8 di recente (Woody-Sarge), un programma come mc ancora non lo è, ma semplicemente è 8-bit clean. Se state lavorando sulla parte a 7 bit ASCII di un file dalla codifica sconosciuta o mista, è più sicuro usare un editor locale ignaro dell'8-bit clean.

Vedere The Unicode HOWTO.


9.7.13 Esempio per UTF-8 in console framebuffer

Il supporto UTF-8 sulla console FB è fornito da bterm usato nel debian-installer.


9.7.14 Oltre i locale

Quando state impostando il sistema per la prima volta per un linguaggio nazionale, prendete in considerazione l'uso di tasksel o di aptitude per scoprire quali pacchetti vengono selezionati scegliendo il task corrispondente al linguaggio prescelto. La scelta dei pacchetti fatta in tal modo è utile persino per un setup multilingua. Se vi imbattete in qualche conflitto di dipendenze durante l'installazione del vostro raffinato sistema, evitate di installare i programmi che sono in conflitto col sistema esistente. Potreste dover utilizzare update-alternative per riguadagnare lo stato originale per alcuni comandi, dato che quelli puù recentemente installati potrebbero avere priorità più elevate rispetto a quelli preesistenti.

I programmi principali più recenti usano glibc 2.2 e sono molto internazionalizzati. Quindi, versioni localizzate in maniera particolare, come jvim per VIM possono non essere necessarie e la sua funzionalità è offerta da vim versione 6.0 in X. In realtà, è ancora da raffinare. Dato che jvim ha una versione compilata con il supporto diretto per il Giapponese IM (canna) ha il supporto persino in console ed è indirizzato verso molte altre caratteristiche giapponesi, ed è maturo, potreste ancora volerlo :-)

I programmi potrebbero avere la necessità di essere configurati oltre la configurazione locale, per fornire un ambiente di lavoro confortevole. Il pacchetto language-env ed il suo comando set-language-env facilitano di molto questo processo.

Vedere anche il documento sulla internazionalizzazione, Introduction to i18n. E' indirizzato agli sviluppatori, ma è anche utile per gli amministratori di sistema.


9.8 Multilingualizzazione (m17n)

Localizzazione (l10n), Sezione 9.7 abilitato dal pacchetto language-env e simili, è mirato ad ottenere una localizzazione monolingua. Questi pacchetti usano anche codifiche tradizionali come scelta per la codifica del testo. Non potete mescolare in un tale ambiente testo in Francese e Giapponese, poiche utilizzano codifiche incompatibili ISO-8859-1 ed EUC-JP, rispettivamente.

Potete ottenere un Desktop multilingua UTF-8 usando GNOME e KDE eseguiti sotto uno dei locale UTF-8 disponibili. (Sarge) In tale ambiente potrete mescolare caratteri inglesi, cinesi, russi e giapponesi sotto programmi complianti con UTF-8.

m17n-env è uno script di aiuto per l'impostazione di un tale ambiente. L'ambiente multilingua UTF-8 viene configurato eseguendo il comando set-m17n-env dagli account di root ed utente. [51]

In un tale ambiente, il nuovo metodo di input multilingualizzato (IM) che usa scim è da preferirsi. IM offerto da scim viene attivato e disattivato premendo Ctrl-spazio insieme. Il motore di conversione dell'input può essere cambiato cliccando il piccolo pannello SCIM.

Potete ancora avere un facile accesso all'ambiente di codifica tradizionale attraverso le console locale personalizzate, create da m17n-env. Ciò torna utile in caso di modifiche a vecchi file con codifica EUC-JP o ISO-8859-1.


[ precedente ] [ Contenuti ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ 14 ] [ 15 ] [ A ] [ successivo ]

La guida Debian

1.08-3, dom mag 1 07:45:18 UTC 2005

Osamu Aoki osamu@debian.org
Editor: David Sewell dsewell@virginia.edu
Traduzione italiana: Davide Di Lazzaro mc0315@mclink.it
Autori, Sezione A.1