SlideShare una empresa de Scribd logo
1 de 165
Descargar para leer sin conexión
UNIVERSITÀ DEGLI STUDI DI PISA - FACOLTÀ DI INGEGNERIA
CORSO DI LAUREA TRIENNALE IN INGEGNERIA DELLE
TELECOMUNICAZIONI
Andrea Marchetti Michele Bartoli
CCOONNFFIIGGUURRAAZZIIOONNEE EE GGEESSTTIIOONNEE,,
SSUU PPIIAATTTTAAFFOORRMMAA LLIINNUUXX,,
DDII UUNN SSIISSTTEEMMAA IINNFFOORRMMAATTIIVVOO
IINNTTEEGGRRAATTOO
Tutori interni:
Prof. Ing. Stefano Giordano
Ing. Rosario G. Garroppo
Tutore esterno:
Dott.ssa Ilaria Bertolucci
2
INDICE
Profilo dell’azienda 5
Ringraziamenti 5
Introduzione 6
1. Come avvicinarsi a Linux? 10
1.1. Le distribuzioni 11
1.2. Scelta della distribuzione Linux 19
1.3. Requisiti di sistema Intel 20
1.4. Macchine utilizzate per i test 20
1.5. Prima di installare 20
1.6. Installazione di Red Hat Linux 22
1.7. Configurazione del sistema 42
1.8. Creare un account utente 45
2. Alcuni segreti dei tool di Linux 46
2.1. La shell 46
Completamento automatico della digitazione 46
Ripetizione dei comandi digitati 46
Ridirigere l’input e l’output 47
La documentazione 48
2.2. File e directory 49
Creare un file vuoto 50
2.3. Lavorare con i file 51
Trovare i file 53
Analisi del testo 54
2.4. Gestione dei dischi 55
Un solo disco più piattaforme 57
Usare i dischi rimovibili 58
2.5. L’elaborazione del testo 60
Vi 60
Emacs 60
La selezione del testo 61
3. Samba 62
3.1. File samba.conf 63
3.2. SWAT 69
3.3. Configurazione di Samba su Windows NT 70
3.4. Configurazione di Samba su Windows 95/98 71
3.5. Utilizzo di Samba 73
4. Le routine di avvio: i primi minuti dopo il lancio del sistema operativo 75
4.1. Init: il processo 1 75
4.2. L’organizzazione degli script di avvio 83
4.3. Gli script di attivazione e disattivazione dei servizi 84
5. Lan browsing 87
5.1. LAN Information Server – LISa 87
3
5.2. Come funziona LISa? 88
5.3. Accesso alle informazioni – client 90
5.4. resLISa 90
5.5. Installazione 91
5.6. Configurazione 92
5.7. Quattro differenti esempi di file di configurazione 95
5.8. Opzioni e segnali della riga di comando 96
6. X-Win32 v.5.5.2 98
6.1. Nuove caratteristiche 99
6.2. X-Win32 + SSH 99
6.3. Lingue 99
6.4. Altre importanti caratteristiche 100
6.5. Filosofia del prodotto 100
6.6. Font aggiuntivi 100
6.7. Configurazione di X-Win32 101
7. Web Server Linux 104
7.1. Quale Web Server scegliere: Apache, NCSA o Netscape 104
7.2. Installazione del Web Server 106
7.3. Configurazione 106
7.4. Ottimizzazione del Web Server 108
7.5. Apache Server Status 109
7.6. La sicurezza del Web Server 110
7.7. Hosting virtuale 111
7.7.1. Hosting basato su indirizzo IP 111
7.7.2. Hosting virtuale basato su nome 112
7.7.3. Hosting virtuale basato sulla porta 113
7.7.4. File httpd.conf 114
7.8. Sommario delle caratteristiche del Web Server Apache HTTP Server 1.3 125
8. TWiki 127
8.1. Introduzione 127
8.2. Requisiti di sistema di TWiki 129
8.3. Requisiti del server 129
8.4. Requisiti dei client 130
8.5. Guida di installazione di TWiki 130
8.6. Abilitare l’autenticazione degli utenti 134
8.6.1. File .htaccess 135
8.7. Aggiungere un sito web 138
8.8 TWiki Access Control 138
8.9. Nascondere i settaggi di controllo 142
8.10. Il SuperAdminGroup 142
8.11. Gestione file allegati 143
8.12. Sistema di gestione dei documenti 143
8.13. Condivisione file 143
8.14. Web Authoring 143
8.15. Upload dei file 144
8.16. Download dei file 144
8.17. Spostare i file allegati 144
8.18. Eliminare gli allegati 144
4
8.19. Link ai file allegati 144
8.20. Form TWiki 146
8.21. Templates TWiki 146
9. Java 2 SDK, Standard Edition Versione 1.4.0 Linux 148
9.1. Presentazione di Java 148
9.2. Java come strumento di programmazione 148
9.3. Java virtual machine 149
9.4. Struttura della Java virtual machine 150
9.5. Vantaggi di Java 151
9.6. Caratteristiche di Java 152
Appendice 159
Red Hat: disponibile la versione 7.3 159
I contenuti 159
Installazione 160
Le prime impressioni 160
L’ambiente grafico e il software multimediale 161
Il software da ufficio 162
Gli strumenti d’amministrazione 163
Conclusioni 163
Requisiti Hardware 164
Indirizzi Internet utili 164
I costi 164
Bibliografia 165
5
Profilo dell’azienda
Gruppo Servizi progetta, sviluppa e rende operativi sistemi informativi per il management aziendale
ed offre attività di consulenza nelle aree d’intervento dei software proposti, ponendosi sul mercato
nazionale come sintesi efficace ed innovativa fra software house e società di consulenza.
Il consolidamento civilistico e gestionale di bilanci, la pianificazione finanziaria e patrimoniale, il
budgeting, forecasting e il financial report, ma anche il datawarehousing, la business intelligence e
la logistica, rappresentano aree di forte competenza nelle quali sono nate soluzioni particolarmente
efficaci.
Gruppo Servizi è una delle poche realtà presenti sul mercato a possedere la caratteristica della
“doppia competenza”: al know how tecnologico affianca skill organizzativi, al software abbina
consulenza qualificata. Queste caratteristiche consentono di fornire ai clienti “soluzioni a problemi”
pronte all’uso, efficaci, affidabili e facili da utilizzare.
Ringraziamenti
Ringraziamo la ditta che ci ha dato la possibilità di svolgere il tirocinio aziendale per completare il
nostro corso di studi. Siamo grati in particolare all’Ing. Duccio Vigolo ed ai suoi collaboratori per
l’aiuto che ci hanno fornito.
6
Introduzione
Mappa di massima della rete aziendale:
7
L’obiettivo da raggiungere è realizzare una postazione Server Linux configurata per ospitare un
Web Server in grado di interpretare applicazioni Java Based integrata in un dominio Windows 2000
(con protocolli di tipo Samba). Il Server dovrà poi poter essere amministrato da remoto (tramite
Telnet, X-Win32, ecc.) da macchine Windows e dovrà vedere i Server ed i Client della rete
Windows (per la condivisione di cartelle, file e stampanti). Dovrà inoltre ospitare uno spazio di
sviluppo di progetti, gestione documenti e database di informazioni per facilitare lo sviluppo di
gruppo, sia sulla rete intranet sia su quella internet. La funzione del Server in azienda sarà quella di
offrire un banco di test per la compatibilità multipiattaforma delle applicazioni Web Java Based
sviluppate da Gruppo Servizi e file sharing.
Una bozza di struttura della intranet e dei relativi servizi per il file sharing è di seguito
rappresentata:
 Area Pubblica: l'accesso a questa parte della intranet è soggetto a Login e Password (solo i
clienti abilitati potranno entrare) ed è visibile anche agli utenti interni.
 Programma X (pagina accessibile a tutti gli utenti registrati):
o Segnalazione Bug (per ogni programma un utente può inserire informazioni relative a
presunti bug).
o Segnalazione Migliorie (per ogni programma gli utenti possono inserire suggerimenti
per nuove implementazioni).
o FAQ (i clienti possono solo leggere).
o Releases e Patches (con possibilità di download) (i clienti possono solo leggere).
o History ed Elenco versioni rilasciate (i clienti possono solo leggere).
 Programma Y:
o ...
o ...
o ...
 Pagina privata utente: ogni utente ha accesso a questa pagina in cui può modificare informazioni
e gestire allegati (questa pagina è la candidata per sostituire l'area di scambio).
 Pagina di News di Gruppo Servizi: in questa pagina potrebbero essere pubblicate informazioni
che Gruppo Servizi vuol rendere disponibile a tutti gli utenti ma in forma riservata, ovvero
senza pubblicarle sul sito ufficiale.
 Area Privata: l'accesso a questa parte è visibile solo agli utenti interni, che tipicamente potranno
accedere a tutte le pagine.
 Richieste di intervento/acquisto HW
8
 Installazioni (trasversale a tutti i prodotti dovrebbe fornire indicazioni sul cliente, prodotto,
Consulente Responsabile, Tecnico Responsabile, Data Scadenza).
 Gestione Documenti (potrebbe essere implementato un db di documenti reperibili via Web con
possibilità di ricerca sui contenuti... ecc. ecc...)
 Gestione Programmi Software:
o Programma X:
 Elenco lavori schedulati (con indicazione di assegnazione risorse, tempistiche, ecc...)
 Elenco proposte per new release
 ...
o Programma Y:
 ...
 ...
 ...
 Knowledge Base (in questa sezione - correlata da funzionalità di ricerca- gli utenti inseriscono e
trovano informazioni e trucchi sui vari argomenti):
o Visual Basic
o Power Builder
o Database
o Oracle
o SQLServer
o Java
o HTML e/o JavaScript
o ...
Utenti e Gruppi
Dovranno esistere 2 gruppi: "GruppoServizi" e "Cliente". Gli utenti del primo gruppo potranno
tipicamente modificare e vedere tutte le pagine della intranet. Gli utenti del secondo gruppo vedono
solo la parte pubblica e di tale parte possono modificare solo alcune pagine/sezioni. Inoltre avranno
accesso ad una propria pagina personale non visibile dagli altri utenti "Cliente". Dovrà esistere un
utente Amministratore in grado di creare nuovi utenti per la parte pubblica. Si potrà accedere alla
parte pubblica solo se si è utenti di "GruppoServizi" o "Cliente". La parte privata (non accessibile
dall'esterno) potrà consentire ai nuovi utenti di creare nuovi account (un utente può essere creato da
chiunque).
9
Riassumendo:
- installazione e configurazione di un Server Linux (versione da definire);
- installazione della virtual machine Java;
- installazione e configurazione di Web Server Apache;
- installazione di un’architettura sistemistica in grado di integrare il Server Linux con il
dominio Windows 2000 (tipo Samba);
- creazione di uno spazio di sviluppo di progetti, gestione documenti e database di
informazioni (ad esempio TWiki).
10
1. Come avvicinarsi a Linux?
Dieci anni fa uno studente universitario di nome Linus Torvalds annunciava sul newsgroup
comp.os.minix che aveva iniziato a lavorare su un sistema operativo per piattaforma Intel 386,
leggero e ispirato a Unix. ”Semplicemente un hobby”: cosi egli stesso definiva il proprio lavoro:
oggi quel sistema operativo, Linux gira su macchine di qualunque tipo, a partire dai portatili e dai
dispositivi embedded per arrivare a grossi mainframe.
Linux viene rilasciato sotto la Gnu General Public License (Gpl), che impone la distribuzione del
codice sorgente assieme ai programmi e la distribuzione sempre sotto licenza Gpl dunque anch’esso
deve essere liberamente distribuibile.
Un argomento spesso portato a sostegno dell’open-source è che il software open–source sia di
qualità superiore rispetto a quello commerciale perché “se ci sono abbastanza occhi aperti, tutti i
bug vengono a galla”. In molti ambienti, la semplice definizione di sistema operativo è un
argomento in grado di scatenare vere e proprie guerre di religione. La maggior parte degli utenti
Windows potrebbe indicare con questo termine una singola applicazione che include diversi
software creati per interagire con il proprio computer. Per un utente Linux, invece, il termine è
sinonimo di una raccolta di molti programmi piccoli e indipendenti, ma strettamente legati fra di
loro.
Di questo concetto è permeato Linux (e più in generale l’intero mondo Unix), popolato da piccoli
componenti ben distinti tra loro che interagiscono in modo tale da fornire un servizio complesso.
Questo principio offre indubbi vantaggi in termini di flessibilità e robustezza del codice: i
sostenitori di Linux, ad esempio, deridono gli utenti di altre piattaforme sulle quali è necessario
riavviare il sistema dopo aver installato del software, operazione necessaria molto di rado in tale
ambiente. D’altro canto, per l’utente medio, la presenza di molti tool dalle funzionalità
assolutamente specifiche può rendere più complessa la gestione del sistema. Il cuore di ogni sistema
operativo Unix -incluso Linux – è il kernel, che comunica direttamente con l’hardware, gestisce la
memoria di sistema, distribuisce le risorse ai vari processi ed effettua lo scheduling dei processi in
esecuzione. È assieme il contabile, il vigile e il buttafuori del sistema operativo. Il kernel in se,
tuttavia, non fa nulla di particolarmente interessante: deve essere accompagnato da una certa
quantità di tool, utilità e programmi alcuni dei quali agiscono quasi al livello del kernel stesso, che
si occupano di compiti come la gestione dei file system, l’allocazione della memoria e il controllo
dell’hardware. Gli utenti spesso si sorprendono quando vengono a sapere che molti dei comandi che
usano, per esempio ls e cd, sono in realtà piccoli programmi indipendenti, la maggior parte dei
quali non è stata nemmeno scritta dagli sviluppatori Linux, ma da quelli della Free Software
11
Fondation. Anche l’interfaccia utente (GUI, Grafical User Intreface), il componente maggiormente
visibile del sistema operativo, non è per Linux altro che una semplice applicazione, per quanto di
grosse dimensioni e molto complessa. L’interfaccia grafica si compone di un sistema a finestre,
solitamente Xfree86, e di un window manager: fra questi ultimi i più diffusi sono oggi KDE e
Gnome.
Ciò significa che, a differenza di quanto accade per Windows, gli utenti Linux possono decidere
con la massima libertà quale interfaccia grafica utilizzare per il sistema operativo.
1.1. Le distribuzioni
Ogni utente abbastanza esperto può in teoria costruirsi il proprio Linux assemblando manualmente
tutti i componenti, anche se il processo è decisamente complicato e piuttosto dispendioso in termini
di tempo. Numerose aziende hanno fatto cosi il loro ingresso nel mondo dell’open-source creando
le cosiddette “distribuzioni Linux”, che eliminano la maggior parte del lavoro noioso di
acquisizione dei dati, installazione e amministrazione delle applicazioni, aggiungendo al semplice
sistema operativo tool per l’installazione dei pacchetti e la gestione del sistema e di altre utilità. Per
le caratteristiche della licenza Gpl, le aziende che producono le distribuzioni non modificano
comunque il sistema operativo ma, al contrario, sviluppano i propri prodotti raccogliendo i tool per
l’installazione e la gestione attorno al cuore di Linux, riunendoli su uno o più cd-rom e vendendo il
pacchetto completo di un contratto di supporto.
Data la natura estremamente personalizzabile di Linux, ciascuna azienda può dedicarsi ad una
nicchia di mercato e costruire un prodotto che si adatti ad essa..Mandrake è la distribuzione più
semplice da installare, oltre che quella più adatta a agli utenti non familiari con il mondo Unix.
Debian invece ha fatto una scelta diversa, focalizzando la propria attenzione sull’aderenza agli
standard, sulla sicurezza e del software e della sua stabilità.
12
TurboLinuxServer6.5
SuSeLinux7.3
RedHatProfessional7.2
MandrakeLinux
ProSuiteEditino8.1
DebianGnu/Linux2.2
(potato)
CalderaOpenLinux
Server3.1
Distribuzione
TurbolinuxInc.
SuSEGmbH
RedHatInc.
MandrakeSoftS.A.
TheDebianProject
CalderaInternational
Inc.
Azienda
DollariUSA200
Euro68
Euro211,67
Euro149
Gratuito
Euro769,52
Prezzo
Applicazionispecializzate
edenterprisedialto
livello;clustereserver
database.
Applicazionimidrangeper
workstationeserver;
simileaRedHatper
l’adattabilitàacampi
diversi,conalcune
differenzedidesign.
Qualsiasitipodiutente
softwareadattoaogni
situazione.
L’utentefinale;Mandrake
forniscepotentistrumenti
diconfigurazioneperl’uso
delladistribuzionesul
propriodesktoposul
portatile.
Utentiespertiche
desideranoipacchetti
essenzialieuna
distribuzioneprivadi
fronzoli.
Segmentodimercato
Enterprise.OpenLinux
offrepacchettiperla
sicurezzadelserverper
l’e-commerce.
Target
Pacchettiperspecifiche
applicazionicomei
databaseeperspecificiusi
comeservizidiclustering.
Installazionesemplicee
completeutilitydi
configurazione.
Distribuzioneben
bilanciata.
Installazioneimpeccabilee
ottimaintegrazionedegli
strumentidiconfigurazione
proprietari;nonrichiede
troppacompetenzasu
Linux.
È“puroLinux”;utileagli
amministratoriche
desideranoavereil
controllocompletosul
sistema.
Ottimosupportoaziendalee
grandeintegrazionefra
servereworkstation.
Puntidiforza

1Cd-Rom;routinedi
installazionenella
media.

7Cd-Rom+1Dvd-
Rom;YaST2èmolto
semplicedautilizzare.

10Cd-Rom+1Dvd-
Rom;buoneleroutinedi
installazioneeiltooldi
partizionamentodel
disco.

9Cd-Rom+1Dvd-
Rom;ottimeroutinedi
installazione.

3immaginiIso
disponibilion-line;
l’installazionerichiede
qualchecompetenza
tecnica.

5Cd-Rom;routinedi
installazionenella
media.
Mediaeistallazione
13

TurboToolsforniscele
funzionalitàdi
amministrazionedibase.

YaST2èuneccellentee
completotooldi
configurazione.

Setdiutilitàdi
configurazionestabilee
standard.

Grandequantitàdiutilità
diconfigurazione
proprietarie.

Pacchettopotentee
privodiabbellimenti.

Volution,
un’applicazionealivello
enterpriseperlagestione
dellarete.
Utilitydiconfigurazione

On-lineinformatoPdf.

Ampia6manuali
inclusi.

Ampia4manuali
inclusi.

Manualiutenteedi
riferimento;disponibili
ancheinHtmlepdfin
seilinguedifferenti.

On-line,pdfsuCD-
Rom.

Sucdromeon-line;la
copiacartaceadei
manualidiriferimentoè
disponibileconi
pacchettiavanzati.
Documentazione

Diversesottoscrizioniepacchettidi
supportosullabasedellerichiestedi
intervento;supportotramitesitoweb.

60giornidisupportopost-
installazione;supportotramitemailing
listesitoWeb.

Diversesottoscrizioniepacchettidi
supportosullabasedellerichiestedi
intervento;ampiaknowledgebasesul
sitoWeb,cheincludeilsupportoper
prodotti,applicazioniesviluppo.

Diversesottoscrizioniepacchettidi
supportosullabasedellerichiestedi
intervento.

Risorseperlaricercaon-line“tra
comunitàdiutenti”;comunitàdi
sviluppatorimoltoattiva.

SitoWeb;supportointernazionaleper
glisviluppatoribusinessegliutenti
finali;diversesottoscrizioni,contratti
diassistenzaepacchettidisupporto
sullabasedellerichiestediintervento.
Supportotecnico

Supportogarantitoingenere
attraversoapplicationesolution
provider..

DopoRedHat,unadelleaziende
dimaggiorpesosulmercato.
Diversiprogrammiprecompilati
soloperRedHateSuSe.

LaposizionediRedHatassicura
ottimizzazionialivellodi
configurazionihardwareela
disponibilitàdiapplicazioniper
questapiattaforma.

Mandrakebeneficiadella
derivazionedaRedHat;gliutenti
possonogoderedeivantaggidel
dominiodiRedHatnelcampo
delledistribuzioniLinux.

AllespallediDebianvièl’intera
comunitàdisviluppatoriopen-
sourcecheassicurailrilasciodi
applicazionistabilieaggiornate.

Supportogarantitoingenere
attraversoapplicationesolution
provider.
Supportodimercato






Giudizio
globale
 = Eccellente
 = Molto buono
 = Buono
 = Discreto
 = Scarso
14
La flessibilità di Linux, il suo basso costo e la capacità di girare anche su hardware non troppo
recente, sono le qualità che hanno convinto coloro che per primi hanno adottato questa piattaforma
a introdurla in molte reti aziendali. Un altro vantaggio di Linux è la sua spiccata propensione
all’utilizzo in rete, ad esempio per condividere i file e stampanti su reti NetWare, Unix e Windows.
La penetrazione di Linux nel mercato desktop, tradizionalmente riservato a Windows e Mac Os, è
però ancora piuttosto limitata: mentre i fan di Unix e gli sviluppatori in genere spesso usano Linux
anche sulle proprie workstation, questo sistema operativo continua a suscitare la maggior attenzione
in ambito server. Occorre comunque sottolineare i passi compiuti per rendere Linux un sistema
operativo utilizzabile dall’utente medio a partire dall’interfaccia dei window manager, le cui
versioni più recenti iniziano a potersi confrontare, per semplicità d’uso, con Windows e Mac Os.
In ogni caso la complessità del core Unix rimane immutata, anche se ben nascosta, e forse anche per
questo Linux richiede qualche competenza in più da parte dell’utente. Secondo uno studio svolto da
Idg, il primo impedimento all’adozione di Linux in azienda è la mancanza di personale interno
competente; altri aspetti che scoraggiano l’adozione di Linux sono la mancanza di supporto da parte
dal produttore e la riluttanza ad introdurre all’interno dell’azienda un sistema operativo
completamente nuovo.
Dunque visti questi potenziali aspetti negativi, perché un’azienda dovrebbe passare a Linux?
Sicuramente perché una volta superato il primo impatto con il nuovo sistema operativo, si
guadagnano notevoli benefici, il più importante dei quali e nel contempo quello più citato è la
mancanza di una software house di riferimento assoluto che possano comportarsi in modo
monopolistico. Si possono elencare altri vantaggi, fra i quali l’incremento del tasso di sviluppo e di
supporto delle applicazioni Linux. Le ultime release del kernel, dotate di migliori capacità di
multiprocessing simmetrico (Smp, Symmetrical Multi Processing), hanno permesso a Linux di
occupare posti sempre più importanti sui server aziendali. I nuovi file system con funzionalità di
journaling sono inoltre in grado di mantenere un log delle modifiche dei dati su disco, in modo da
ripristinarli in caso di crash e rendono assai poco probabili la perdita dei dati. Inoltre diversi
produttori di hardware rilasciano oggi driver per Linux oltre che per Windows, e aziende come IBM
hanno addirittura a listino sistemi con una distribuzione Linux gia preinstallata.
Ora il problema rimane nel decidere quale distribuzione scegliere.
A differenza di Windows, Linux richiede una conoscenza di base dell’architettura del sistema. Il
cuore di Linux è il kernel, che gestisce tutte le funzioni di “basso livello”. Il codice del kernel è in
realtà molto ristretto: Linux carica infatti al volo molte delle funzionalità di cui necessita, lasciando
libera la memoria per altri compiti. Per inciso oggi la maggior parte dei sistemi operativi carica
invece la maggior parte dei propri componenti direttamente all’avvio della macchina, a prescindere
15
dal fatto che queste siano utilizzate o meno. Le interfacce grafiche di Linux iniziano inoltre a far
competere Linux con Windows in termini di utilizzabilità nella maggior parte delle più comuni
operazioni.
I requisiti minimi hardware per far girare Linux sono modesti: sono sufficienti un microprocessore
Pentium, 16 MByte di Ram e 50 MByte di spazio su disco, e se si vuole usare anche l’interfaccia
grafica c’è bisogno di altri 100Mbyte di spazio su disco. I sistemi sui quali gira Linux possono
essere utilizzati per mesi senza che un crash o un blocco di sistema ne renda necessario un riavvio.
Tuttavia, così come accade sotto Windows, anche le applicazioni Linux non devono passare un test
formale di qualità, e un codice colmo di bug può talvolta causare il blocco di alcuni processi o
dell’interfaccia grafica. Sotto Linux, però, l’interfaccia grafica stessa è un programma come tutti gli
altri e come tale può essere chiusa e rieseguita senza per questo dover riavviare la macchina.
Il kernel di Linux è sicuro, ma il framework che lo circonda può aprire falle che possono permettere
a un malintenzionato l’ingresso non autorizzato del sistema. Virus e worm colpiscono inoltre anche
macchine Linux, ma va detto che questo sistema operativo è in genere più protetto rispetto ad altre
piattaforme.
Solo dopo aver provato Linux si potrà apprezzare la disponibilità di applicazioni e tool gratuiti il cui
prezzo sarebbe assai elevato in un ambiente commerciale, facendo cosi emergere rapidamente le
vere potenzialità di questo sistema operativo.
Andando ad esaminare le varie distribuzioni sono venuti fuori i seguenti aspetti.
Per Caldera Open Linux 3.1: è un supporto di ottimo livello e una grande quantità di prodotti, tra
cui alcune soluzioni orientate al commercio elettronico, rendono Caldera OpenLinux Server 3.1 una
scelta decisamente attraente. La decisione di caldera di fare una netta distinzione tra le piattaforme
client e server sottolinea la volontà di rendere i propri prodotti appetibili al mercato aziendale.
Openlinux 3.1 offre un proprio prodotto per l’installazione e la configurazione del sistema: Lizard è
il nome dato da Caldera a una sofisticata routine di installazione curata nei particolari quanto
DrakConf di Mandrake, con cui si possono scegliere cinque configurazioni predefinite per la
piattaforma server e semplificare così il processo di installazione.
Openlinux Workstation 3.1 non è certo migliore di altre distribuzioni ma è senz’altro un’ottima
scelta se si progetta un’infrastruttura basata su Linux e si desidera affidarsi a un unico produttore.
Distinguendosi dal resto del mondo Linux, Caldera pone un particolare risalto sul ridotto costo di
possesso in ambiente corporate. Per raggiungerlo l’azienda ha sviluppato diversi tool e pacchetti,
primo tra tutti Volution, un software di gestione e amministrazione del sistema basato su
un’interfaccia Web. Costruito intorno a Ldap, Volution è progettato per aiutare gli amministratori
16
nell’implementazione di profili e policy di rete, inventari hardware e software, installazioni
centralizzate, upgrade, rilevamenti di intrusioni e monitoraggio dello stato dei sistemi aziendali.
Il servizio di supporto di Caldera è di ottimo livello.
Esaminando ora Debian Gnu/Linux 2.2 (potato) è risultato che: è la meno commerciale fra le
distribuzioni Linux, è gestita da una comunità di utenti piuttosto che da un’azienda. Date queste
premesse e ricordato lo stretto legame tra Debian e Free Software Foundation è facile comprendere
come Debian abbia la reputazione di essere la distribuzione scelta dai guru di Linux, fama che può
rivelarsi a doppio taglio.
Da un punto di vista aziendale il più grosso svantaggio di Debian è la mancanza di una casa madre
che fornisca un supporto adeguato: si tratta di “free software” nel senso più puro della parola, e
questo fatto potrebbe non essere gradito da alcuni amministratori e responsabili IT. I creatori di
Debian hanno fatto poco per semplificare il processo di apprendimento, quindi chi si avvicina a
Linux per la prima volta è meglio che si rivolga verso altre distribuzioni che offrono miglior
documentazione. I servizi di rete e gli strumenti per lo sviluppo di Debian Gnu/Linux sono
paragonabili a quelli delle altre distribuzioni: mantenendo fede alla natura prudente e conservatrice
di coloro che l’hanno creata, Debian spesso utilizza software in versioni non troppo recenti. I
responsabili di questa distribuzione infatti preferiscono utilizzare pacchetti ben collaudati e che
abbiano dato prova di stabilità e assenza di bug. Per esempio Debian non include le versioni più
recenti del kernel di Linux, dell’interprete Perl e del sistema X window. Ciò la rende inadatta a
sistemi dotati di hardware particolarmente recente (per esempio periferiche usb e schede video
appena uscite): la rivelazione e la configurazione dell’hardware può rivelarsi, in questi casi,
un’operazione poco agevole anche per l’utente più esperto, se non addirittura impossibile senza
adottare software più aggiornato. Uno dei motivi di vanto della maggior parte dei sostenitori di
Debian è il sistema di gestione dei pacchetti, APT (Advanced Package Tool è la risposta di Debian
al gestore di pacchetti di Red Hat, utilizzabile per installare, aggiornare e disinstallare software sia
in locale sia da diversi Ftp remoti.
Mandrake Linux ProSuite Edition 8.1: è un prodotto di qualità e decisamente stabile. Mandrake si è
dimostrata nei nostri test una delle più amichevoli e intuitive distribuzioni disponibili. Basata su
Red Hat, Mandrake è la miglior scelta per gli utenti alle prime armi, che non dovrebbero incontrare
nessun problema nell’utilizzare le applicazioni di questa distribuzione, tuttavia non può ancora
competere con caldera e Red Hat per quanto concerne la disponibilità di supporto. E’ da ritenere
giusto l’utilizzo di questa distribuzione sia per desktop che per notebook.
Le procedure di installazione, basate su interfacce testuali, erano spesso un primo scoglio di fronte a
cui molti utenti si arenavano. Con il tool di installazioni di Mandrake non c’è questo problema: in
17
15 passi, illustrati in modo chiaro, l’utente viene guidato verso l’installazione e la configurazione
del sistema, senza che sia necessario intervenire manualmente su alcun file di configurazione.
Una delle caratteristiche più apprezzate di Mandrake è il meccanismo di selezione dei pacchetti,
spesso uno dei punti più critici e macchinosi delle procedure di installazione. L’installer divide i
pacchetti in due gruppi logici, rispettivamente per server e workstation. All’interno delle due
categorie i software sono raggruppati in base alle funzioni e al loro utilizzo sul sistema, ed è
possibile scegliere liberamente pacchetti appartenenti alle diverse categorie fino ad ottenere la
selezione più adatta alle proprie esigenze. Ottime sono anche le procedure di installazione
automatica della stampante, dei wizard di rete, della configurazione della connessione remota e del
meccanismo di attivazione dei servizi. Distribuzione corredata da due manuali abbastanza chiari: la
guida all’installazione conduce gli utenti poco esperti nel processo di installazione di Mandrake
mentre gli argomenti più approfonditi come la sicurezza o la configurazione dettagliata del sistema
sono trattati nel secondo manuale. Rendere sicuro il proprio sistema è ancora un compito complesso
ma con l’utility Bastile risulta un po’ più semplice. Con questa utilità è possibile scegliere fra tre
tipi diversi di sicurezza predefiniti.
In ogni segmento del mercato del software si può trovare un prodotto considerato leader e per
quanto riguarda Linux questo viene svolto da Red Hat. Questa distribuzione viene considerata come
uno standard per gli sviluppatori. Con la versione 7.2, che l’azienda ha acquistato, Red Hat rimane
all’altezza della sua fama. Debian può essere l’alternativa più indicata per i puristi del free software,
Mandrake la più adatta per gli utenti desktop alla ricerca di un ambiente semplice da utilizzare:
tuttavia in un ambiente aziendale, Red Hat è a nostro parere la scelta più sicura. La versione
acquistata è corredata da una grande quantità di tool e di software: Red Hat mette a disposizione
dell’utente il kernel 2.4.7 compilato in diverse versioni, compilatori per tutti i principali linguaggi di
programmazione e strumenti di vario genere. L’installazione, priva di inutili fronzoli, è una delle
più sicure fra quelle disponibili per Linux. A tutt’oggi i punti più critici nell’installazione dei
sistemi operativi Linux sono il partizionamento dei dischi, il riconoscimento dell’hardware e
l’installazione del software, ambiti in cui Red Hat 7.2 eccelle. Per il partizionamento del disco Red
Hat fa ricorso all’utility Disk Druid, utility caratteristica di questa distribuzione. Il software
permette di applicare in modo automatico tre schemi predefiniti per la distribuzione dello spazio su
disco per configurare il computer rispettivamente come workstation, server o laptop, ma lascia
liberi gli utenti più esperti di gestire in prima persona tale operazione. L’elenco delle periferiche
riconosciute da Red Hat è molto ampio e cresce in maniera costante.
Le distribuzioni di Linux forniscono solitamente un’enorme quantità di software. Riconoscendo che
questo fatto potrebbe indurre in confusione l’utente, Red Hat effettua una selezione dei programmi
18
a seconda dell’utilizzo del sistema indicato durante l’installazione anche se la lista di pacchetti può
essere modificata e personalizzata. La gestione dei pacchetti si basa su RPM (Red Hat Manager),
tool in grado di aiutare gli amministratori nel compito di installare, aggiornare, rimuovere e gestire
il software. Nonostante gli amministratori esperti solitamente mettono mano a Linux direttamente
tramite la linea di comando, Red Hat offre una buona serie di strumenti basati sull’interfaccia
grafica, fra cui citiamo il tool Linuxconf. La documentazione cartacea e quella elettronica sono ben
bilanciate nell’offrire un certo livello di dettaglio pur mantenendosi comprensibili ai nuovi utenti.
Passando alla versione SuSe Linux 7.3 Professional Edition: è corredata da un’ampia e aggiornata
quantità di software free e open-source. La distribuzione include tutti i tool di sviluppo Gnu, i
servizi di rete standard (Apache, Bind, Samba e così via), i principali data base server (MySql, e
PostgreSql) e il supporto per la maggior parte dei linguaggi di programmazione. Durante
l’installazione gli utenti hanno modo di familiarizzare con YaST2 (Yet Another Setup Tool),
l’utilità di gestione del sistema fornita da SuSe. YaST2 si occupa di partizionare i dischi,
configurare l’hardware, selezionare il software e completarne l’installazione. L’utility è veramente
notevole: ha un aspetto curato, è semplice da utilizzare e muovendosi fra i suoi menu è abbastanza
facile amministrare molti degli aspetti del sistema operativo. Ha delle ottime routine di rivelazione
dell’hardware. L’installazione di SuSe Lnux Professional 7.3 è in grado di rivelare e configurare
non solo le schede di rete, le schede audio e i modem, ma anche le stampanti, gli adattatori isdn e le
schede Tv eventualmente presenti sul sistema.
Un aspetto che può creare qualche confusione è quello legato al particolare utilizzo che la
distribuzione fa del file system. SuSe tende a “personalizzare” le posizioni predefinite per diverse
componenti del sistema, ad esempio installando il software applicativo nella directory /opt invece
che in /usr più frequentemente utilizzata. Questo significa che gli utenti gia familiari con le altre
versioni di Linux devono porre attenzione a riservare spazio sul disco durante la partizione che
conterrà tale directory. L’approccio di SuSe è poco diffuso nel mondo Linux, e se anche si tratta
tecnicamente di una maniera accettabile di partizionare e gestire il sistema, potrebbe essere fonte di
spiacevoli sorprese a causa della sua scarsa diffusione.
Passando a TurboLinux 6.5: mentre tutte le altre distribuzioni hanno posto l’accento su elementi
quali la facilità d’uso e l’ampiezza dell’offerta di software, TurboLinux ha seguito una sua strada,
creando differenti versioni mirate a specifici ambienti di utilizzo: in questo modo possono
risparmiare molto tempo ad esempio gli utenti aziendali cui è sufficiente la soluzione pacchettizzata
fornita dall’azienda, perché ogni elemento della distribuzione è preconfigurato e testato per
funzionare perfettamente integrandosi con il resto del software incluso.
19
TurboLinux fornisce i medesimi servizi di rete delle altre distribuzioni, ma si distingue per una
scelta conservatrice del kernel 2.2.18 in luogo dei più recenti kernel 2.4.x. Se così da una parte, a
TurboLinux mancano alcune nuove caratteristiche, occorre però sottolineare come tale distribuzione
risulti più probabilmente esente da bug. Anche per TurboLinux possiamo dire che la propensione
all’uso di sistemi desktop è piuttosto scarsa. La dotazione software non proprio aggiornata rende
particolarmente complesso il lavoro di configurazione delle periferiche più recenti.
TurboLinux pone la sua attenzione nel garantire agli utenti la sicurezza della propria distribuzione,
cercando di impedire potenziali exploit di servizi di rete come telnet e Ftp. A differenza di molti dei
prodotti concorrenti, questi servizi sono tra l’altro disattivati secondo le impostazioni di default.
Turbolinux è corredata da una versione sicura di Apache, dal software di controllo del server
Tripwire e da OpenSsh. La routine di installazione di Turbolinux sono semplici e pratiche ma prive
degli abbellimenti grafici che caratterizzano alcune delle altre distribuzioni da noi esaminate.
Coloro che sono poco pratici con le procedure di installazione Unix si troveranno probabilmente più
a proprio agio con i tool forniti da altre distribuzioni.
Le utilità in Turbolinux, chiamate Turbo Tools, forniscono un’interfaccia grafica per la
configurazione e l’amministrazione dei servizi più comuni e delle applicazioni, in modo non
completo come avviene con Linuxconf o YaST2 ma comunque funzionale. Come la maggior parte
delle distribuzioni, Turbolinux utilizza RPM per l’installazione, la gestione, la disinstallazione del
software, vero standard nel settore anche se alcuni utenti più esperti potrebbero preferire il sistema
APT (Advanced Package Tool) di Debian. Fedele alla sua natura di distribuzione orientata alla
praticità, la documentazione Turbolinux è disponibile solo in formato elettronico (.pdf) e sul sito
Web dell’azienda. Turbolinux offre 60 giorni di supporto via e-mail, oltre a vari tipi di contratti di
supporto.
1.2. Scelta della distribuzione Linux
Nell’azienda abbiamo discusso a lungo per decidere a quale distribuzione affidarci per creare una
postazione Web Server sulla rete interna, ma alla fine siamo stati tutti d’accordo nello scegliere Red
Hat Linux Professional 7.2. Molti fattori hanno influenzato il giudizio a favore di Red Hat: i più
importanti sono la sua qualità, la semplicità d’uso e l’ottima fama di cui essa gode in ambito
aziendale. Nonostante altre distribuzioni le siano superiori nello svolgere specifici compiti, nessuna
è così ben bilanciata e versatile. La longevità di Rad Hat nel mercato Linux sta inoltre a
testimoniare la sua compatibilità con i sistemi usati in azienda. Molto vicino a Red Hat giunge,
seconda scelta possibile, SuSE, la distribuzione più diffusa sul mercato europeo.
20
1.3. Requisiti di sistema Intel
Linux è in grado di funzionare in quasi tutti i computer moderni che usano processori intel. Se il
computer può usare il sistema operativo Dos o Windows potrà generalmente eseguire Linux.
Secondo Red Hat si elencano i requisiti di sistema necessari per eseguire Red Hat Linux sulle
piattaforme Intel:
 Processore Intel 386 o superiore.
 Spazio disponibile su disco. 850 MB per l’installazione Workstation e 1.7 GB per
un’installazione Server. E’ possibile ridurre la dimensione dell’installazione ed installare
meno software eseguendo l’installazione nella modalità expert mode.
 Si raccomanda di usare almeno 32 MB di memoria o più; se non si usa X11, si possono
usare 16 MB di RAM, mentre si consiglia di usare almeno 64 MB se si pensa di usare X11 e
di eseguire diversi client contemporaneamente.
 Il supporto alle schede video è migliore per quelle rilasciate da almeno un anno. Il supporto
alle schede grafiche più recenti, con maggiori funzionalità, potrebbe essere solo parziale.
 Per facilitare la procedura di installazione è consigliabile impostare il BIOS per consentire
l’avvio da Cd-Rom.
 Drive floppy da 3,5 pollici per creare il disco di ripristino o per eseguire installazioni
speciali per mezzo di PCMCIA, PLIP, FTP, NFS o HTTPD.
 Per effettuare il multiboot è necessario creare una partizione separata o installare un disco
separato per Linux.
1.4. Macchine utilizzate per i test
 Il server Linux (Linux Red Hat 7.2) è un Pentium-II a 400 MHz, 256 MB di RAM, Hard
Disk da 9 GB, collegamento alla rete Microsoft aziendale.
 Il client Windows (Windows 98 SE) è un Pentium-S a 166 MHz con 64 MB di RAM e Hard
Disk 2 GB, collegamento alla rete Microsoft aziendale.
 Server Windows (Windows 2000 Professional Server) aziendale.
 Altri vari client Windows (Windows 2000 Professional Workstation, Windows 2000
Professional Server) appartenenti alla rete aziendale.
1.5. Prima di installare
Red Hat Linux offre cinque differenti classi di installazione:
21
Workstation
E’ la più appropriata per i nuovi utenti del mondo Linux. L’installazione workstation creerà
un sistema per l’utilizzo home. Verrà installata l’interfaccia grafica.
Server
E’ la più appropriata se si vuole creare un sistema basato su un server Linux, e se l’utente
vuole personalizzare pesantemente la configurazione del sistema.
Laptop
E’ stata progettata per essere istallata sui portatili in modo molto semplice. Installerà i
pacchetti necessari offrendo un’installazione automatica ed intuitiva.
Custom
Permette all’utente una grande flessibilità durante l’installazione. Possono essere scelti il
boot loader, i pacchetti desiderati, ecc. Questa installazione è la più appropriata per utenti
esperti di Red Hat o per chi ha paura di perdere la completa flessibilità.
Upgrade
Se è già presente una versione di Red Hat Linux (3.03 o superiore), verranno istallati solo gli
aggiornamenti del kernel e dei nuovi pacchetti.
L’installazione più appropriata per il nostro Web Server è quella Server:
Qui sotto sono riportati i minimi spazi su disco richiesti per tale tipo di installazione in una sola
lingua (ad esempio Italiano).
 Server (installazione minima, senza interfaccia grafica): 1GB
 Server (installazione completa, senza interfaccia grafica): 1.3 GB
 Server (installazione completa, con interfaccia grafica GNOME e KDE): 2 GB
Se si pensa di installare tutti i gruppi di pacchetti, oppure selezionare individualmente pacchetti
aggiuntivi, ci sarà bisogno di un minimo di 1.2 GB o più. Durante l’installazione X Window System
non sarà configurato e nessuna GUI verrà caricata per default all’avvio del sistema, a meno che
non vengano scelti manualmente i pacchetti appropriati.
 La dimensione della partizione swap è determinata dalla quantità di RAM che è presente sul
sistema e dall’ammontare dello spazio disponibile sull’hard disk. Per esempio, se il pc
dispone di 128 MB di RAM sarà creata una partizione di swap tra i 128 MB ed i 256 MB (il
doppio della RAM), che dipende dalla disponibilità di spazio libero sul disco.
 Una partizione 384 MB (montata come /).
 Una partizione di almeno 1.4 GB (montata come /usr).
 Una partizione di almeno 512 MB (montata come /home).
22
 Una partizione di 256 MB (montata come /var).
 Una partizione di 50 MB (montata come /boot) nella quale risiedono il kernel ed i relativi
file.
Questo schema di partizionamento risulta appropriata per la maggior parte dei server; in ogni caso è
possibile effettuarlo manualmente.
Per effettuare l’installazione per la prima volta, è necessario effettuare il boot da Cd-Rom oppure
avere a disposizione i dischetti di avvio nel caso in cui il pc non preveda il boot da questa periferica.
Per effettuare il boot da floppy inserire un dischetto formattato ed eseguire l’utilità rawrite inclusa
nel Cd-Rom nella directory dosutils. A questo punto digitare dalla shell Dos i seguenti comandi:
C:> d:
D:> cd dosutils
D:dosutils> rawrite
Enter disk image source file name: ..imagesboot.img
Enter target diskette into drive: a:
Please insert a formatted diskette into drive A: and press --
ENTER-- : [Enter]
D:dosutils>
Nel primo menu che compare è possibile scegliere in che modo effettuare l’installazione. Le scelte
possibili sono:
 Installazione o upgrade in modalità grafica: [Enter]
 Installazione o upgrade in modalità testo: text [Enter]
 Abilitazione modalità expert: expert [Enter]
 Abilitazione modalità rescue: rescue [Enter]
 Se si dispone di un disco driver: linux dd [Enter]
1.6. Installazione di Red Hat Linux
A seguito sono riportati i menu d’installazione e le scelte da noi effettuate.
23
Selezione della lingua
Italiano
Selezione della tastiera
Modello: Generic 102-key (INTL) PC
Layout: Italiano
Dead Key: Abilita Dead Key
24
Configurazione mouse
3 button mouse PS/2
Opzioni d’installazione
Server
Setup della partizione del disco
Partizionamento automatico
25
Rimuovere tutte le partizioni sul sistema
La scelta del partizionamento automatico ha generato sulla nostra macchina una suddivisione del
disco come in tabella:
Dispositivo Inizio Fine Dimensione (MB) Tipo Mountpoint Formattare
/dev/hda
| /dev/hda1
1 6 47 ext3 /boot Sì
| /dev/hda2 7 794 6181 ext3 /usr Sì
| /dev/hda3 795 1082 2259 ext3 /home Sì
| /dev/hda4 1083 1229 1153 estesa
| /dev/hda5 1083 1131 384 ext3 / Sì
| /dev/hda6 1132 1196 510 swap Sì
| /dev/hda7 1197 1229 259 ext3 /var Sì
26
Installazione del boot loader
GRUB
Configurazione del boot loader
Installa il record del boot loader su MBR
Configurazione della rete
No DHCP
Attiva all’avvio
Indirizzo IP: 192.9.200.211
27
Netmask: 255.255.255.0
Network: 192.9.200.0
Broadcast: 192.9.200.255
Hostname: Linux01
Gateway: 192.9.200.2
DNS primario: 192.9.200.1
DNS secondario: 192.9.200.2
Configurazione del firewall
Nessun firewall
28
Selezione lingua di sistema
Italiano
Selezione dell’ora
Ora e fuso orario locale
Configurazione degli account
Password per root
Username e password per altri utenti
29
Selezione dei gruppi di pacchetti
KDE
Sistema X Window
Files Server Windows (SMB)
Server Web (WWW)
Selezione individuale dei pacchetti
Quelli riportati sono solo i pacchetti da noi installati
30
Package Name Version Description
4Suite 0.11 Python tools and libraries for XML processing and databases.
GConf 1.0.4 The Gnome Config System.
LPRng 3.7.4 The LPRng print spooler.
MAKEDEV 3.2 A program used for creating the device files in /dev.
Mesa 3.4.2 A 3-D graphics library similar to OpenGL.
ORBit 0.5.8 A high-performance CORBA Object Request Broker.
PyXML 0.6.5 XML libraries for python.
VFlib2 2.25.1 A vector font library used for Japanese document processing.
XFree86-100dpi-fonts 4.1.0 X Window System 100dpi fonts.
XFree86 4.1.0 The basic fonts, programs and documentation for an X workstation.
XFree86-75dpi-fonts 4.1.0 A set of 75 dpi resolution fonts for the X Window System.
XFree86-ISO8859-15-100dpi-fonts 4.1.0 ISO8859-15-100dpi-fonts
XFree86-ISO8859-15-75dpi-fonts 4.1.0 ISO8859-15-75dpi-fonts
XFree86-libs 4.1.0 Shared libraries needed by the X Window System.
XFree86-tools 4.1.0 Various tools for XFree86.
XFree86-twm 4.1.0 A simple, lightweight window manager for X.
XFree86-xdm 4.1.0 The X display manager.
XFree86-xf86cfg 4.1.0 A configuration tool for XFree86.
XFree86-xfs 4.1.0 A font server for the X Window System.
Xaw3d 1.5 A version of the MIT Athena widget set for X.
Xconfigurator 4.9.39 The Red Hat Linux configuration tool for the X Window System.
alchemist 1.0.18 A multi-sourced configuration back-end.
apache 1.3.20 The most widely used web server on the Internet.
apache-manual 1.3.20 Documentation for the Apache web server.
apacheconf 0.8.1 A configuration tool for Apache.
arpwatch 2.1a11 Network monitoring tools for tracking IP addresses on a network.
arts 2.2 A modularized sound system for KDE.
ash 0.3.7 A smaller version of the Bourne shell (sh).
asp2php 0.75.17 An ASP to PHP converter.
asp2php-gtk 0.75.17 This package contains a GUI GTK+ interface for the asp2php file format converter.
audiofile 0.2.1 A library for accessing various audio file formats.
aumix 2.7 An ncurses-based audio mixer.
auth_ldap 1.4.8 An LDAP authentication module for Apache.
authconfig 4.1.19 Text-mode tool for setting up NIS and shadow passwords.
autoconf 2.13 A GNU tool for automatically configuring source code.
autofs 3.1.7 A tool for automatically mounting and unmounting filesystems.
automake 1.4p5 A GNU tool for automatically creating Makefiles.
autorun 2.7 A CD-ROM mounting utility.
basesystem 7.0 The skeleton package which defines a simple Red Hat Linux system.
bash 2.05 The GNU Bourne Again shell (bash).
bdflush 1.5 The daemon which starts the flushing of dirty buffers back to disk.
bind 9.1.3 A DNS (Domain Name System) server.
bind-utils 9.1.3 Utilities for querying DNS name servers.
bindconf 1.6.1 A Red Hat DNS configuration tool.
bonobo 1.0.7 Library for compound documents in GNOME.
31
bzip2 1.0.1 A file compression utility.
bzip2-libs 1.0.1 Libraries for applications using bzip2
chkconfig 1.2.24 A system tool for maintaining the /etc/rc*.d hierarchy.
chkfontpath 1.9.5 Simple utility for editing the font path for the X font server.
compat-libstdc++ 6.2 Standard C++ libraries for Red Hat 6.2 backwards compatibility.
console-tools 19990829 Tools for configuring the console.
cracklib 2.7 A password-checking library.
cracklib-dicts 2.7 The standard CrackLib dictionaries.
curl 7.8 A utility for getting files from remote servers.
cyrus-sasl 1.5.24 The Cyrus SASL library.
cyrus-sasl-md5 1.5.24 CRAM-MD5 and DIGEST-MD5 support for Cyrus SASL.
cyrus-sasl-plain 1.5.24 PLAIN and LOGIN support for Cyrus SASL.
db1 1.85 The BSD database library for C (version 1).
db2 2.4.14 The BSD database library for C (version 2).
db3 3.2.9 The Berkeley DB database library (version 3) for C.
dev 3.2 The most commonly-used entries in the /dev directory.
diffutils 2.7.2 A GNU collection of diff utilities.
dosfstools 2.7 Utilities for making and checking MS-DOS FAT filesystems on Linux.
e2fsprogs 1.23 Utilities for managing the second extended (ext2) filesystem.
Eel 1.0.1 Eazel Extensions Library.
efax 0.9 A program for faxing using a Class 1, 2 or 2.0 fax modem.
eject 2.0.9 A program that ejects removable media using software control.
emacs 20.7 The libraries needed to run the GNU Emacs text editor.
emacs-X11 20.7 The Emacs text editor for the X Window System.
emacs-nox 20.7 The Emacs text editor without support for the X Window System.
esound 0.2.22 Allows several audio streams to play on a single audio device.
expat 1.95.1 A library for parsing XML.
Fam 2.6.4 FAM, the File Alteration Monitor.
File 3.35 A utility for determining file types.
filesystem 2.1.6 The basic directory layout for a Linux system.
fileutils 4.1 The GNU versions of common file management utilities.
findutils 4.1.7 The GNU versions of find utilities (find and xargs).
firewall-config 0.95 A configuration tool for IP firewalls and masquerading.
foomatic 1.1 Foomatic printer database.
fortune-mod 1.0 A program which will display a fortune.
freetype 2.0.3 A free and portable TrueType font rendering engine.
ftp 0.17 The standard UNIX FTP (File Transfer Protocol) client.
gawk 3.1.0 The GNU version of the awk text processing utility.
gdbm 1.8.0 A GNU set of database routines which use extensible hashing.
gdk-pixbuf 0.11.0 An image loading library used with GNOME.
gdk-pixbuf-gnome 0.11.0 GnomeCanvas support for displaying images.
gdm 2.2.3.1 The GNOME Display Manager.
gedit 0.9.4 A text editor for GNOME.
ghostscript 6.51 A PostScript(TM) interpreter and renderer.
ghostscript-fonts 5.50 Fonts for the Ghostscript PostScript(TM) interpreter.
glib 1.2.10 A library of functions used by GDK, GTK+ and many applications.
32
glibc 2.2.4 The GNU libc libraries.
glibc-common 2.2.4 Common binaries and locale data for glibc.
gmp 3.1.1 A GNU arbitrary precision library.
gnome-core 1.4.0.4 The core programs for the GNOME GUI desktop environment.
gnome-libs 1.2.13 The main GNOME libraries.
gnome-linuxconf 0.67.1 The GNOME front-end for linuxconf.
gnome-print 0.29 Printing libraries for GNOME.
gnome-vfs 1.0.1 The GNOME virtual file-system libraries.
gnupg 1.0.6 A GNU utility for secure communication and data storage.
gpm 1.19.3 A mouse server for the Linux console.
gq 0.4.0 A GUI LDAP directory browser and editor.
grep 2.4.2 The GNU versions of grep pattern matching utilities.
groff 1.17.2 A document formatting system.
grub 0.90 GRUB - the Grand Unified Boot Loader.
gtk+ 1.2.10 The GIMP ToolKit (GTK+), a library for creating GUIs for X.
gzip 1.3 The GNU data compression program.
hdparm 4.1 A utility for displaying and/or setting hard disk parameters.
hexedit 1.2.1 A hexadecimal file viewer and editor.
hotplug 2001_04_24 A helper application which loads modules for USB devices.
htmlview 1.2.0 A script which calls an installed HTML viewer.
hwbrowser 0.3.5 A hardware browser.
im 140 Perl scripts to replace MH, for use with the Mew mail reader.
indexhtml 7.2 The web page you'll see after installing Red Hat Linux.
info 4.0b A stand-alone TTY-based reader for GNU texinfo documentation.
initscripts 6.40 The inittab file and the /etc/init.d scripts.
ipchains 1.3.10 Tools for managing Linux kernel packet filtering capabilities.
iproute 2.2.4 Advanced IP routing and network device configuration tools.
iptables 1.2.3 Tools for managing Linux kernel packet filtering capabilities.
iptables-ipv6 1.2.3 IPv6 support for iptables.
iptraf 2.4.0 A console-based network monitoring utility.
iputils 20001110 Network monitoring tools including ping.
junkbuster 2.0.2 An ad-blocking application for Web browsers.
kbdconfig 1.9.14 A text-based interface for setting and loading a keyboard map.
kde-i18n-Italian 2.2 Italian language support for KDE.
kdeaddons-kate 2.2 Plugins for the Kate text editor
kdeaddons-kicker 2.2 Plugins and additional applets for Kicker (the KDE panel)
kdeaddons-konqueror 2.2 Plugins extending the functionality of Konqueror
kdeadmin 2.2 Administrative tools for KDE.
kdebase 2.2 Basic files needed for KDE.
kdelibs 2.2 Various libraries for KDE.
kdelibs-sound 2.2 KDE libraries needed to support sound.
kdemultimedia 2.2 Multimedia applications for the K Desktop Environment (KDE).
kdemultimedia-devel 2.2 Development files for kdemultimedia.
kdenetwork 2.2 Networking applications for KDE.
kdenetwork-ppp 2.2 PPP configuration utilities for KDE.
kdepim 2.2 Personal information management tools for KDE.
33
kdepim-cellphone 2.2 KDE support for synchronizing data with cellphones.
kdepim-devel 2.2 Development files for kdepim.
kdepim-pilot 2.2 KDE support for synchronizing data with a Palm(tm) or compatible PDA.
kdesdk 2.2 KDE SDK
kdesdk-devel 2.2 Development files for kdesdk
kdeutils 2.2 KDE utilities.
kdoc 2.2 Documentation for the K Desktop Environment (KDE) 2.0.
kernel 2.4.7 The Linux kernel (the core of the Linux operating system).
krb5-libs 1.2.2 The shared libraries used by Kerberos 5.
ksconfig 1.9.8 A graphical interface for making kickstart files.
ksymoops 2.4.1 The kernel oops and error message decoder.
kudzu 0.99.23 The Red Hat Linux hardware probing tool.
less 358 A text file browser similar to more, but better.
libcap 1.10 Library for getting and setting POSIX.1e capabilities
libglade 0.16 The libglade library for loading user interfaces.
libgnomeprint15 0.29 Printing libraries for GNOME.
libjpeg 6b A library for manipulating JPEG image format files.
libmng 1.0.2 A library which supports MNG graphics.
libpcap 0.6.2 A system-independent interface for user-level packet capture.
libpng 1.0.12 A library of functions for manipulating PNG image format files.
librep 0.13.6 A shared library that implements a Lisp dialect.
librsvg 1.0.0 An SVG library based on libart.
libstdc++ 2.96 The GNU Standard C++ Library v3.
libtermcap 2.0.8 A basic system library for accessing the termcap database.
libtiff 3.5.5 A library of functions for manipulating TIFF format image files.
libtool 1.4 The GNU libtool, which simplifies the use of shared libraries.
libtool-libs 1.4 Runtime libraries for GNU libtool.
libungif 4.1.0 A library for manipulating GIF format image files.
libuser 0.32 A user account administration library.
libvorbis 1.0rc2 The Vorbis General Audio Compression Codec.
libxml 1.8.14 An XML library.
libxml2 2.4.2 Library providing XML and HTML support.
libxslt 1.0.1 Library providing the Gnome XSLT engine
links 0.96 A text-mode web browser.
linuxconf 1.25r7 A system configuration tool.
lm_sensors 2.5.5 Hardware monitoring tools.
locale_config 0.3.2 A tool for configuring your system's locale.
lockdev 1.0.0 A library for locking devices.
logrotate 3.5.9 Rotates, compresses, removes and mails system log files.
logwatch 2.1.1 A log file analysis program.
lokkit 0.50 Firewall configuration application for an average end user.
losetup 2.11g Programs for setting up and configuring loopback devices.
m4 1.4.1 The GNU macro processor.
mailcap 2.1.6 Associates helper applications with particular file types.
make 3.79.1 A GNU tool which simplifies the build process for users.
man 1.5i2 A set of documentation tools: man, apropos and whatis.
34
man-pages 1.39 Man (manual) pages from the Linux Documentation Project.
man-pages-it 0.3.0 Italian man pages from the Linux Documentation Project.
mgetty 1.1.26 A getty replacement for use with data and fax modems.
minicom 1.83.1 A text-based modem control and terminal emulation program.
mkbootdisk 1.4.2 Creates an initial ramdisk image for preloading modules.
mkinitrd 3.2.6 Creates an initial ramdisk image for preloading modules.
mktemp 1.5 A small utility for safely making /tmp files.
mm 1.1.3 A shared memory library.
mod_dav 1.0.2 A DAV module for Apache.
mod_perl 1.24_01 An embedded Perl interpreter for the Apache web server.
mod_ssl 2.8.4 Cryptography support for the Apache web server.
modutils 2.4.6 Kernel module management utilities.
mount 2.11g Programs for mounting and unmounting filesystems.
mouseconfig 4.23 The Red Hat Linux mouse configuration tool.
mozilla 0.9.2.1 A web browser.
mtools 3.9.8 Programs for accessing MS-DOS disks without mounting the disks.
nautilus 1.0.4 Nautilus is a network user environment
nautilus-mozilla 1.0.4 Nautilus component for use with Mozilla
ncompress 4.2.4 Fast compression and decompression utilities.
ncurses 5.2 A CRT screen handling and optimization package.
net-tools 1.60 Basic networking tools.
netconfig 0.8.11 A text-based tool for simple configuration of ethernet devices.
netpbm-progs 9.14 Tools for manipulating graphics files in netpbm supported formats.
netscape-common 4.78 Files shared by Netscape Navigator and Communicator.
netscape-communicator 4.78 The Netscape Communicator suite of tools.
netscape-navigator 4.78 The Netscape Navigator web browser.
newt 0.50.33 A development library for text mode user interfaces.
nfs-utils 0.3.1 NFS utilities and supporting daemons for the kernel NFS server.
nmap 2.54BETA22 A utility for port scanning large networks (or single hosts).
nmap-frontend 2.54BETA22 A GUI front end for the nmap port scanner.
nscd 2.2.4 A Name Service Caching Daemon (nscd).
nss_ldap 172 NSS library and PAM module for LDAP.
ntp 4.1.0 Synchronizes system time using the Network Time Protocol (NTP).
ntsysv 1.2.24 A tool to set the stop/start of system services in a runlevel.
nvi-m17n-nocanna 1.79 The nvi multiligualized text editor without support for Canna.
oaf 0.6.5 Object activation framework for GNOME.
openjade 1.3 A DSSSL implementation.
openldap 2.0.11 The configuration files, libraries and documentation for OpenLDAP.
openldap-clients 2.0.11 Client programs for OpenLDAP.
openldap-servers 2.0.11 OpenLDAP servers and related files.
openldap12 1.2.12 Shared libraries for OpenLDAP 1.2 applications.
openssh 2.9p2 The OpenSSH implementation of SSH.
openssh-askpass 2.9p2 A passphrase dialog for OpenSSH and X.
openssh-clients 2.9p2 OpenSSH clients.
openssh-server 2.9p2 The OpenSSH server daemon.
openssl 0.9.6b The OpenSSL toolkit.
35
openssl-perl 0.9.6b Perl scripts provided with OpenSSL.
pam 0.75 A security tool which provides authentication for applications.
pam_smb 1.1.6 A Pluggable Authentication Module (PAM) for use with SMB servers.
parted 1.4.16 The GNU disk partition manipulation program.
passwd 0.64.1 The passwd utility for setting/changing passwords using PAM.
patch 2.5.4 The GNU patch command, for modifying/upgrading files.
pciutils 2.1.8 PCI bus related utilities.
pciutils-devel 2.1.8 Linux PCI development library.
pcre 3.4 Perl-compatible regular expression library
perl 5.6.0 The Perl programming language.
perl-DateManip 5.39 DateManip module for perl
perl-Digest-MD5 2.13 A perl interface to the MD5 digest algorithm.
perl-HTML-Parser 3.25 HTML-Parser module for perl (World_Wide_Web_HTML_HTTP_CGI/HTML)
perl-HTML-Tagset 3.03 This module contains data tables useful in dealing with HTML.
perl-MIME-Base64 2.12 Perl module for MIME encoding/decoding (base64 and quoted-printable)
perl-Parse-Yapp 1.04 Parse-Yapp module for perl
perl-SGMLSpm 1.03ii A Perl library for parsing the output of nsgmls.
perl-Storable 0.6.11 Storable module for perl
perl-URI 1.12 URI module for perl (World_Wide_Web_HTML_HTTP_CGI/URI)
perl-XML-Dumper 0.4 Perl module for dumping Perl objects from/to XML
perl-XML-Encoding 1.01 XML-Encoding module for perl
perl-XML-Grove 0.46alpha XML-Grove module for perl
perl-XML-Parser 2.30 A perl module for parsing XML documents
perl-XML-Twig 2.02 XML-Twig module for perl
perl-libnet 1.0703 The libnet module for perl (../authors/id/GBARR)
perl-libwww-perl 5.53 Libwww-perl module for perl
perl-libxml-enno 1.02 libxml-enno module for perl
perl-libxml-perl 0.07 libxml-perl module for perl
php 4.0.6 The PHP HTML-embedded scripting language.
pidentd 3.0.14 An implementation of the RFC1413 identification server.
pinfo 0.6.1 An info file viewer.
pmake 1.45 The BSD 4.4 version of make.
pnm2ppa 1.04 Drivers for printing to HP PPA printers.
popt 1.6.3 A C library for parsing command line parameters.
portmap 4.0 A program which manages RPC connections.
ppp 2.4.1 The PPP (Point-to-Point Protocol) daemon.
printconf 0.3.44 A printer configuration backend/frontend combination.
printconf-gui 0.3.44 A GUI frontend for printconf.
procps 2.0.7 System and process monitoring utilities.
psmisc 20.1 Utilities for managing processes on your system.
pwdb 0.61.1 The password database library.
pygnome 1.4.1 Python bindings for the GNOME libraries.
pygnome-libglade 1.4.1 GNOME support for the libglade Python wrapper.
pygtk 0.6.8 Python bindings for the GTK+ widget set.
pygtk-libglade 0.6.8 A wrapper for the libglade library for use with PyGTK.
python 1.5.2 An interpreted, interactive object-oriented programming language.
36
python-xmlrpc 1.5.0 A set of Python modules for XML-RPC support.
qt 2.3.1 The shared library for the Qt GUI toolkit.
quota 3.01pre9 System administration tools for monitoring users' disk usage.
rarpd ss981107 The RARP daemon.
rcs 5.7 Revision Control System (RCS) file version management tools.
rdate 1.0 Tool for getting the date/time from a remote machine.
rdist 6.1.5 Maintains identical copies of files on multiple machines.
redhat-config-network 0.9 The Network Adminstration Tool for Red Hat Linux.
redhat-config-users 0.9.2 A graphical interface for administering users and groups.
redhat-logos 1.1.3 Red Hat-related icons and pictures.
redhat-release 7.2 The Red Hat Linux release file.
reiserfs-utils 3.x.0j Tools for creating, repairing and debugging ReiserFS filesystems.
rep-gtk 0.15 GTK+ bindings for librep Lisp environment.
rep-gtk-gnome 0.15 GNOME bindings for the librep Lisp interpreter.
rhn_register 2.7.2 The Red Hat Network Services registration program.
rootfiles 7.2 The basic required files for the root user's directory.
routed 0.17 The routing daemon which maintains routing tables.
rpm 4.0.3 The Red Hat package management system.
rpm-build 4.0.3 Scripts and executable programs used to build packages.
rpm-perl 4.0.3 Native bindings to the RPM API for Perl.
rpm-python 4.0.3 Python bindings for apps which will manipulate RPM packages.
rsh 0.17 Clients for remote access (rsh, rlogin, rcp).
rsh-server 0.17 Servers for remote access (rsh, rlogin, rcp).
rsync 2.4.6 A program for synchronizing files over a network.
rusers 0.17 Displays the users logged into machines on the local network.
rusers-server 0.17 Server for the rusers protocol.
rwall 0.17 Client for sending messages to a host's logged in users.
rwall-server 0.17 Server for sending messages to a host's logged in users.
rwho 0.17 Displays who is logged in to local network machines.
samba 2.2.1a The Samba SMB server.
samba-client 2.2.1a Samba (SMB) client programs.
samba-common 2.2.1a Files used by both Samba servers and clients.
samba-swat 2.2.1a The Samba SMB server configuration program.
sawfish 0.38 An extensible window manager for the X Window System.
screen 3.9.9 A screen manager that supports multiple logins on one terminal.
scrollkeeper 0.2 ScrollKeeper is a cataloging system for documentation on open systems.
sed 3.02 A GNU stream text editor.
serviceconf 0.6.6 Serviceconf is an initscript and xinetd configuration utility.
setup 2.5.7 A set of system configuration and setup files.
setuptool 1.8 A text mode system configuration tool.
sgml-common 0.5 Common SGML catalog and DTD files.
sh-utils 2.0.11 A set of GNU utilities commonly used in shell scripts.
shadow-utils 20000902 Utilities for managing accounts and shadow password files.
shapecfg 2.2.12 A configuration tool for setting traffic bandwidth parameters.
sharutils 4.2.1 The GNU shar utilities for managing shell archives.
slang 1.4.4 The shared library for the S-Lang extension language.
37
squid 2.4.STABLE1 The Squid proxy caching server.
stat 2.5 A tool for finding out information about a specified file.
sudo 1.6.3p7 Allows restricted root access for specified users.
switchdesk 3.9.7 A desktop environment switcher.
switchdesk-kde 3.9.7 A KDE interface for the Desktop Switcher.
symlinks 1.2 A utility which maintains a system's symbolic links.
sysctlconfig 0.14 A configuration tool for operating system tunable parameters.
sysklogd 1.4.1 System logging and kernel message trapping daemons.
syslinux 1.52 A simple kernel loader which boots from a FAT filesystem.
sysreport 1.2 Gathers system hardware and configuration information.
sysstat 4.0.1 The sar and iostat system monitoring commands.
talk 0.17 Talk client for one-on-one Internet chatting.
talk-server 0.17 The talk server for one-on-one Internet chatting.
tar 1.13.19 A GNU file archiving program.
tcp_wrappers 7.6 A security tool which acts as a wrapper for TCP daemons.
tcpdump 3.6.2 A network traffic monitoring tool.
tcsh 6.10 An enhanced version of csh, the C shell.
telnet 0.17 The client program for the telnet remote login protocol.
telnet-server 0.17 The server program for the telnet remote login protocol.
termcap 11.0.1 The terminal feature database used by certain applications.
textutils 2.0.14 A set of GNU text file modifying utilities.
time 1.7 A GNU utility for monitoring a program's use of system resources.
timeconfig 3.2.2 Text mode tools for setting system time parameters.
tmpwatch 2.8 A utility for removing files based on when they were last accessed.
traceroute 1.4a12 Traces the route taken by packets over a TCP/IP network.
tree 1.2 A utility which displays a tree view of the contents of directories.
ttfonts 1.0 A set of TrueType fonts.
ttfonts-ja 1.0 Free Japanese TrueType fonts
unzip 5.42 A utility for unpacking zip files.
up2date 2.7.2 Determines which system packages need to be updated via RHN.
urw-fonts 2.0 Free versions of the 35 standard PostScript fonts.
usbview 1.0 A USB topology and device viewer.
usermode 1.43 Graphical tools for certain user account management tasks.
utempter 0.5.2 A privileged helper for utmp/wtmp updates.
util-linux 2.11f A collection of basic system utilities.
vim-X11 5.8 The VIM version of the vi editor for the X Window System.
vim-common 5.8 The common files needed by any version of the VIM editor.
vim-enhanced 5.8 A version of the VIM editor which includes recent enhancements.
vim-minimal 5.8 A minimal version of the VIM editor.
vixie-cron 3.0.1 The Vixie cron daemon for executing specified programs at set times.
vlock 1.3 A program which locks one or more virtual consoles.
vnc 3.3.3r2 A remote display system.
vnc-doc 3.3.3r2 Complete documentation for VNC.
vnc-server 3.3.3r2 A VNC server.
webalizer 2.01_06 A flexible Web server log file analysis program.
which 2.12 Displays where a particular program in your path is located.
38
whois 1.0.9 An Internet whois client.
words 2 A dictionary of English words for the /usr/dict directory.
xinetd 2.3.3 A secure replacement for inetd.
xinitrc 3.20 The default startup script for the X Window System.
xloadimage 4.1 An X Window System based image viewer.
xpdf 0.92 A PDF file viewer for the X Window System
xscreensaver 3.33 A set of X Window System screensavers.
yp-tools 2.5 NIS (or YP) client programs.
Ypbind 1.8 The NIS daemon which binds NIS clients to an NIS domain.
Ypserv 1.3.12 The NIS (Network Information Service) server.
Zip 2.3 A file compression and packaging utility compatible with PKZIP.
Zlib 1.1.3 The zlib compression and decompression library.
Dipendenze non risolte:
Installa i pacchetti per soddisfare le dipendenze
39
Configurazione interfaccia grafica (X)
Intel 740 (Generic)
8 MB
Installazione dei pacchetti
40
Creazione del dischetto d’avvio
Crea dischetto d’avvio
Configurazione del monitor
Unprobed monitor
Sync orizzontale: 31.5 – 48.5
41
Sync verticale: 50 – 70
Configurazione personalizzata di X
Profondità di colore: High Color (16 bit)
Screen resolution: 1024 x 768
Login type: Graphical
42
1.7. Configurazione del sistema
Una volta effettuato il login come root, si hanno tutti i privilegi necessari per effettuare le modifiche
alla configurazione. E’ consigliabile utilizzare l’account root solo per effettuare l’amministrazione
del sistema. Creare un account non-root per un uso generale e diventare su (superuser) per
apportare veloci modifiche. Queste regole base limitano le possibilità di digitare un comando
incorretto che potrebbe danneggiare il sistema.
Uno dei maggiori vantaggi di possedere Red Hat Linux è nei numerosi strumenti (sia grafici che
testuali), inseriti nel pacchetto di distribuzione per facilitare la gestione del sistema. Questi vanno a
scrivere su diversi file di configurazione (di solito ***.conf) i quali sono editabili da qualsiasi text
editor. Un utente esperto si troverà più a suo agio modificando i file manualmente, poiché vedrà
direttamente i cambiamenti apportati. Di seguito riportiamo l’elenco dei tool che riteniamo
particolarmente utili:
linuxconf
Può essere richiamato dalla riga comandi in una finestra terminale, mentre si esegue X, da
una riga comandi dello schermo console, oppure attraverso il browser web che si preferisce.
I motivi per cui si può usare linuxconf sono:
 fornisce una comoda interfaccia grafica per l’amministrazione del sistema;
 consente di salvare configurazioni di sistema diverse, che permettono di avviare il
proprio computer come macchina desktop o server Internet con un semplice comando
dalla riga comandi;
 effettua la manutenzione e sostituisce utility d’utente, di file e di rete; il programma è
usato come strumento di configurazione e d’attivazione di servizi;
 ha la capacità di usare moduli per aggiungere nuove funzioni;
 consente di fare la manutenzione in rete, ne deriva una più efficiente gestione locale o
remota del computer e della rete.
linuxconf si trova nella directory /bin. Quando il programma viene usato senza le
librerie GNOME (gnome-linuxconf) o dalla console, risponde ai comandi da tastiera come
uno strumento d’installazione di Linux di Red Hat. Occorre spostarsi mediante un tasto Tab
e usare Invio per confermare la scelta quando il cursore è sull’argomento che interessa. Può
essere usato non solo interattivamente, ma anche dalla riga comandi. Il comando
linuxconf aiuta anche ad avviare e terminare servizi sotto Linux mentre il sistema è in
43
esecuzione. linuxconf può essere configurato anche tramite browser Web attraverso la
porta 98. Per prima cosa è necessario avviare il servizio linuxconfweb attraverso il tool
serviceconf. Da linuxconf bisogna abilitare l’accesso alla rete che è disabilitato per
default. E’ anche necessario specificare i computer o le reti che possono accedervi. Infine
basta far puntare il browser all’indirizzo http://tuo_calcolatore:98. A questo
punto viene visualizzata una pagina Web dalla quale è possibile apportare le modifiche al
sistema; comunque è necessaria la password.
dnsconf
Utilità per la configurazione del server DNS.
fsconf
Utilità che manipola la tabella di filesystem /etc/fstab.
netconf
Utilità di configurazione dei servizi TCP/IP.
netconfig
Uguale alla precedente ma in modalità testo.
userconf
Configurazione d’utenti e gruppi (per aggiungere e togliere utenti e gruppi).
serviceconf
Applicazione grafica sviluppata da Red Hat per configurare i servizi che devono partire
durante il boot, o far partire o arrestare i servizi.
44
swat
Utilità grafica che è stata aggiunta alla suite di software Samba per assistere gli
amministratori nella configurazione del file smb.conf.
apacheconf
Utilità grafica per la configurazione del Web server. Vengono modificati i file:
httpd.conf
Contiene informazioni di configurazione per il daemon del Web server (httpd), tra
cui i numeri di porta o gli indirizzi su cui stare in ascolto, quali permessi sono
necessari per l’esecuzione del daemon, il numero dei daemon e informazioni in
merito agli host virtuali.
access.conf
Contiene informazioni d’accesso su base per-directory; qui si trovano le definizioni
di ciò che è consentito con esattezza su ciascuna directory.
srm.conf
Questo file contiene direttive che definiscono le directory e i file utilizzati dal Web
server, oltre a definire risorse che determinano la gestione delle richieste da parte dei
browser Web.
xf86cfg
45
Utilità grafica per configurare le periferiche quali monitor, scheda grafica, mouse, tastiera. Il
programma va a modificare il file di testo chiamato /etc/X11/XF86config che
contiene tutte le informazioni di configurazione per X.
xf86config
Come la precedente ma in modalità testo.
Xconfigurator
Come la precedente ma in modalità testo all’interno della shell.
1.8. Creare un account utente
Ci sono due metodi per creare o aggiungere nuovi utenti: attraverso la GUI, usando il tool di
configurazione User Manager, o attraverso il prompt della shell. Per creare un nuovo account è
necessario conoscere la password di root oppure aver effettuato il log in come tale. Per creare un
account dalla shell:
 Aprire un terminale ed effettuare log in come root.
 Scrivere useradd seguito da uno spazio e il nome del nuovo utente. Premere [Enter].
 Scrivere passwd seguito da uno spazio e dal nome utente.
 La shell chiederà la password per il nuovo utente. Immetterne una e premere [Enter].
 Verrà chiesto di digitare nuovamente la password per conferma. La creazione del nuovo
utente verrà confermata dal messaggio:
passwd: all authentication tokens updated successfully
Gli account degli utenti si trovano sul server Microsoft. Ogni utente ha la possibilità di accedere, da
qualsiasi client e/o server collegato in rete, alle risorse del server Linux che sono state rese
pubbliche. Se l’account dell’utente è presente anche sul server Linux sarà possibile vedere la
propria cartella oltre alle risorse pubbliche. E’ inoltre possibile effettuare il log in direttamente sulla
macchina Linux. Dato l’elevato numero d’utenti in azienda, abbiamo preferito creare delle risorse
condivise visibili a tutti, evitando così di ricopiare tutti gli utenti sul server Linux. Inoltre abbiamo
preferito che solo l’amministratore potesse entrare direttamente sulla macchina Linux in quanto
server. Per poter inserire il nostro server nella nostra rete Microsoft abbiamo utilizzato il protocollo
Samba, uno dei progetti Open Source maggiormente riusciti.
46
2. Alcuni segreti dei tool di Linux
Spiegare in poche parole quali siano le differenze che esistono tra Windows e Linux non è un
compito semplice. Guardando il tutto dal punto di vista dell’utente medio, le due piattaforme non
sono troppo distanti: ormai esistono applicazioni simili per le due famiglie di sistemi e, come se non
bastasse, le principali interfacce grafiche per Linux prendono più di una semplice ispirazione dalla
struttura del desktop di Windows. Un aspetto differenzia però ancora i due sistemi operativi
(sempre parlando dal punto di vista dell’utente): la riga di comando. Nel mondo Windows ormai si
tende ad utilizzare soltanto applicazioni a finestra, spesso anche per amministrare il sistema, mentre
nel mondo Linux ancora oggi è quasi impossibile prescindere dagli strumenti a caratteri.
2.1. La shell
La shell è l’interprete dei comandi, il componente del sistema che legge ciò che l’utente scrive nella
finestra di terminale e lancia di conseguenza applicazioni e altri strumenti. Linux prevede diversi
tipi di shell, ciascuna con le sue peculiarità: solo per citare i nomi delle più note si può ad esempio
parlare di bash (Bourne-Again Shell, usata per default in molte distribuzioni), tcsh (TC Shell), ksh
(Korn Shell). Le differenze tra le diverse shell sono rilevanti soltanto per determinati compiti, come
l’impostazione delle variabili di sistema o l’automazione dei comandi attraverso script eseguibili.
> Completamento automatico della digitazione
Il completamento automatico permette di scrivere i comandi in modo molto più rapido di quanto
permetta la semplice digitazione. Per utilizzarla basta premere il tasto Tab sulla riga di comando: in
questo modo la shell cerca di completare la parola alla sinistra del cursore al meglio delle sue
capacità.
Il completamento funziona sia sui nomi di file sia su quelli dei comandi, a seconda della posizione
in cui si trova il cursore nel momento in cui si preme Tab.
> Ripetizione dei comandi digitati
La cronologia dei comandi è l’elenco sequenziale dei comandi digitati nella sessione corrente della
shell o in quelle precedenti. I comandi contenuti in quest’elenco cronologico sono definiti eventi. La
cronologia dei comandi è memorizzata in un file di testo all’interno della directory home chiamato
.bash_history; questo file può essere visualizzato o modificato, proprio come un qualsiasi file di
testo.
47
Due aspetti molto interessanti della cronologia dei comandi sono la possibilità di ripetere l’ultimo
comando digitato e la capacità di eseguire una ricerca incrementale a ritroso nella cronologia.
Per visualizzare la cronologia dei comandi si utilizza lo strumento history.
[root@linux01 root]# history
1who
2apropos shell>shell-commands
3apropos bash>bash-commands
4history
Questo comando mostra il contenuto del file con la cronologia dei comandi, visualizzando un
comando per riga preceduto dal relativo numero d’evento. Si può specificare un vecchio evento
dalla cronologia sulla riga di comando per eseguirlo nuovamente: il metodo più semplice consiste
nell’utilizzare i tasti freccia rivolti verso l’alto e verso il basso al prompt della shell. Per eseguire un
evento della cronologia utilizzando il numero d’evento corrispondente, basta digitare un punto
esclamativo seguito dal numero d’evento:
[root@linux01 root]# !15
E’ possibile utilizzare con la combinazione di tasti Ctrl+R la funzione di ricerca incrementale
offerta da bash, per eseguire una ricerca a ritroso nella cronologia dei comandi. Questa funzione è
utile se si ricorda di aver digitato una riga di comando contenente una determinata parola e si
desidera ripetere il comando senza doverlo ridigitare da capo. Per questo basta digitare Ctrl+R
seguito dal testo desiderato, per vedere visualizzato al prompt l’ultimo comando digitato
corrispondente al criterio dato.
> Ridirigere l’input e l’output
La shell sposta il testo in stream specificati. Lo standard output è il luogo in cui la shell invia
l’output in formato testo dei comandi e, per impostazione predefinita è costituito dallo schermo del
terminale. Lo standard input è tipicamente la tastiera. Se durante l’esecuzione di un comando viene
riscontrato un errore, il messaggio d’errore è solitamente inviato allo schermo sotto forma di flusso
separato chiamato standard error.
Questi stream vengono ridiretti ad un file o anche ad un altro comando mediante la ridirezione.
Ridirigere l’input ad un file
Per ridirigere lo standard input ad un file si utilizza l’operatore “<”. L’operazione viene eseguita
facendo seguire il comando da “<” e dal nome del file da cui il comando deve prendere l’input.
Esempio:
[root@linux01 root]# apropos < keywords
48
Ridirigere l’input ad un file
Con l’operatore “>” si ridirige lo standard output ad un file. Per utilizzarlo bisogna far seguire un
comando da “>” e dal nome del file a cui inviare l’output. Esempio:
[root@linux01 root]# apropos shell bash > commands
Lo standard output ridiretto ad un file esistente sovrascrive il file; se invece dell’operatore “>” si
utilizza il “>>” l’output del comando non viene sostituito al vecchio contenuto del file ma
semplicemente aggiunto. Esempio:
[root@linux01 root]# apropos shells >> commands
Ridirigere i messaggi d’errore ad un file
Per ridirigere lo stream di standard error ad un file l’operatore da usare è “2>”. Esempio:
[root@linux01 root]# apropos shell bash 2> command.error
Come nel caso dello standard output, si può utilizzare l’operatore “2>>” per aggiungere lo standard
error al contenuto di un file esistente. Esempio:
[root@linux01 root]# apropos shell 2>> command.error
Ridirigere l’output all’input di un altro comando
Il piping si verifica quando si connette lo standard output di un comando allo standard input di un
altro comando. Quest’operazione viene eseguita specificando i due comandi in sequenza separati
dal carattere “|” (definito per l’appunto pipe). I comandi così costruiti prendono il nome di pipeline.
Per esempio, è spesso utili ridirigere in questo modo i comandi che visualizzano un output con
molto testo a less. Esempio:
[root@linux01 root]# apropos bash shell | less
Un esempio che mette assieme le tecniche viste finora, vale a dire l’analisi dell’history, della shell e
la ridirezione d’input ed output, permette di cercare all’interno di un lungo file di comandi digitati
solo le righe che contengono una determinata stringa di testo, utilizzando lo strumento grep. grep è
uno strumento che accetta in ingresso uno stream di testo e mostra soltanto le righe contenenti un
testo specificato. Esempio:
[root@linux01 root]# history | grep apropos
> La documentazione
I sistemi Linux dispongono di numerose funzioni di guida, tra cui completi manuali in formato
elettronico. Il problema della documentazione di Linux risiede paradossalmente nella sua
abbondanza, che spesso costringe gli utenti a passare al vaglio montagne di materiale nel tentativo
di trovare le informazioni desiderate.
49
Una delle risorse principali di documentazione dei comandi e degli strumenti è il manuale che si
richiama con il comando man. Per visualizzare la pagina di manuale relativa ad uno strumento
bisogna digitare al prompt:
[root@linux01 root]# man nome_strumento
E’ possibile spostarsi nel testo ed interrompere la visualizzazione premendo il tasto “Q”
Nonostante il nome, una pagina di manuale non sempre contiene la documentazione completa di un
programma, ma assomiglia più ad una guida rapida di consultazione. Di solito, offre una
descrizione breve del programma ed elenca le opzioni e gli argomenti che quest’accetta.
Il comando man può anche servire a visualizzare un elenco di tutti gli strumenti le cui pagine nel
manuale del sistema contengono un riferimento ad un determinato termine. Per questo bisogna
usare lo switch –k: Ad esempio per conoscere tutti gli strumenti che contengono nella loro pagina di
manuale il termine “console”:
[root@linux01 root]# man –k console
In alternativa è possibile verificare se all’interno dello strumento stesso è prevista una descrizione
sommaria delle funzioni disponibili. Per questo si può provare a lanciare lo strumento con l’opzione
--help, che fornisce informazioni sull’utilizzo dello strumento, incluse le opzioni e gli argomenti
accettati dallo strumento.
Altra fondamentale risorsa è la documentazione di sistema che si trova nella directory /usr/doc:
HowTo, Faq e file di documentazione forniti insieme ai comandi ed ai programmi specifici.
Il Linux Documentation Project (LDP, www.linuxdoc.org, con filiale italiana all’indirizzo
www.pluto.linux.it/ildp) ha visto la creazione di oltre 100 file “HowTo” e di numerose Faq,
ciascuno dei quali copre un aspetto particolare dell’installazione o dell’impiego dei sistemi basati
sul Linux. Gli HowTo e le Faq oggi sono disponibili in più lingue ed in vari formati, tra cui l’Html.
2.2. File e directory
File e directory sono rappresentati in modo gerarchico, ad albero: c’è una directory radice,
rappresentata dalla “/”, da cui partono tutte le altre directory e sottodirectory, alcune della quali
hanno una precisa importanza nell’ambito del sistema operativo. Ogni directory ha al suo interno
due file speciali identificati rispettivamente da uno e due punti. Come in Ms-Dos, questi file
indicano la directory corrente e quella immediatamente superiore.
I nomi dei file possono essere costituiti da lettere maiuscole e minuscole, numeri, punti, trattini e
sottolineature. I file system di Linux sono inoltre case sensitive, cioè viene fatta distinzione tra
caratteri maiuscoli e minuscoli. Linux non obbliga ad utilizzare le estensioni di file, che risultano
50
comunque comode per identificare immediatamente tipi di file e non hanno particolare limite di
lunghezza.
Le directory di Linux
/ La capostipite di tutte le directory presenti sul sistema
/bin Strumenti essenziali ed altri programmi di sistema
/dev File che rappresentano le varie periferiche del sistema
/etc File di configurazione e d’avvio del sistema
/home Le directory home degli utenti
/lib File delle librerie utilizzate dagli strumenti in /bin
/proc File che forniscono informazioni sui processi attivi
/root La directory home del superuser, il cui nome utente è root
/sbin Strumenti essenziali per l’amministratore del computer e programmi di sistema
/tmp File temporanei
/usr Sottodirectory con file relativi agli strumenti ed alle applicazioni utente
/usr/X11R6 File relativi al sistema X Window, compresi quei programmi (in /usr/X11R6/bin)
che vengono eseguiti unicamente in X
/usr/bin Strumenti ed applicazioni per gli utenti
/usr/dict Dizionari ed elenchi di parole (che vengono lentamente superati da /usr/share/dict)
/usr/doc Documentazione varia di sistema
/usr/games Giochi e passatempi
/usr/info File per il sistema ipertestuale GNU Info
/usr/lib Librerie utilizzate dagli strumenti /usr/bin
/usr/local File locali, ossia file esclusivi dei singoli sistemi, che includono la
documentazione (in /usr/local/doc) ed i programmi (in /usr/local/bin) locali
/usr/man I manuali in linea che vengono letti con il comando man
/usr/share Dati per applicazioni installate indipendenti dall’architettura e che possono essere
condivisi dai sistemi. Questa directory comprende inoltre svariate sottodirectory
con equivalenti in /usr, comprese /usr/share/doc, /usr/share/info e /usr/share/icons
/usr/src Codice sorgente dei programmi per il software installato sul sistema
/usr/tmp Un’altra directory per i file temporanei
/var File variabili di dati come code dello spooler e file di log
> Creare un file vuoto
Può essere talvolta necessario creare un file vuoto che funzioni da “segnaposto”. Per eseguire
quest’operazione, si fornisce come argomento a touch il nome desiderato per il file. Esempio:
[root@linux01 root]# touch prova.txt
Creare una directory
Per creare una nuova directory si utilizza mkdir, utilizzando come unico argomento il nome del
percorso della nuova directory. I nomi delle directory seguono le stesse convenzioni adottate per
altri file e di conseguenza è sconsigliato l’utilizzo di spazi, barre o altri caratteri insoliti. Esempio:
[root@linux01 root]# mkdir /tmp/work
51
Cambiare la directory corrente
Come in Dos, si utilizza il comando cd per cambiare la directory di lavoro corrente fornendo come
argomento il nome della nuova directory. Esempio:
[root@linux01 root]# cd work
Per tornare alla directory superiore:
[root@linux01 root]# cd..
Ottenere il nome della directory corrente
Per determinare qual è la directory di lavoro corrente si utilizza pwd, che ne visualizza il nome di
percorso completo.
Visualizzare il contenuto delle directory
ls è lo strumento che si usa per visualizzare ciò che c’è dentro una directory. Si può utilizzare senza
argomenti, in tal caso viene visualizzato l’intero contenuto della directory corrente, oppure si può
indicare il nome di una directory (per vederne il contenuto) o di un file, per sapere se tale file è
presente nella directory attuale. ls ha molte opzioni di visualizzazione, tutte elencata all’interno
della documentazione elettronica presente nel sistema operativo. I principali switch disponibili, da
indicare al prompt appena dopo il comando ls sono:
--color Attribuisce un colore ai nomi dei file a seconda del loro tipo
-R Produce una visualizzazione ricorsiva delle sottodirectory
-a Visualizza tutti i file in una directory, compresi i file nascosti, o “dot”
-s Mostra a video la dimensione di ciascun file in KByte
-l Visualizza le dimensioni e gli attributi dei file
Midnight Commander
Le operazioni sui file che abbiamo descritto e molte altre ancora possono essere svolte molto più
comodamente con uno strumento quasi sempre fornito a corredo del sistema operativo: Midnight
Commander.
Midnight Commander (che si richiama attraverso il comando mc) visualizza contemporaneamente
due directory e permette di compiere tra le altre cose operazioni di copia e spostamento dei file,
gestione delle cartelle.
2.3. Lavorare con i file
Linux è da sempre un sistema operativo multiutente. Il sistema utilizzato per proteggere la privacy
di ciascun utente è quello dei privilegi d’accesso, che consiste nello specificare per ogni file e
directory diversi permessi per ciascun utente o gruppo d’utenti. Ogni file dispone di permessi che
specificano il tipo d’accesso degli utenti. Esistono tre tipi di permessi: lettura, scrittura ed
esecuzione.
52
Di solito gli utenti dispongono di permessi di scrittura su file contenuti nelle loro directory home.
Solo l’utente root gode del permesso di scrittura sui file contenuti in directory importanti, come /bin
ed /etc, e i normali utenti non devono in linea di massima avere timore di modificare o cancellare
per errore un importante file di sistema.
I permessi funzionano in maniera diversa per le directory rispetto ai file. Se si dispone del permesso
di lettura ma non del permesso d’esecuzione su una directory, è possibile solo leggere i nomi dei
file contenuti in detta directory, ma non leggere altri attributi, esaminarne il contenuto, modificarli o
eseguirli. Con il permesso d’esecuzione, ma senza il permesso di lettura su una directory, si può
leggere, modificare o eseguire qualsiasi file contenuto nella directory a condizione di conoscerne il
nome e di godere dei permessi appropriati su detto file.
Ogni file dispone di permessi separati per tre categorie d’utenti: l’utente che possiede il file, il
gruppo a cui appartiene l’utente che possiede il file e il resto degli utenti presenti sul sistema.
Quando si crea un nuovo file, questo ha una serie di permessi predefinita: generalmente, di lettura e
scrittura per l’utente e di lettura per il gruppo e tutti gli altri utenti.
Visualizzare i permessi di un file
Per visualizzare i permessi d’accesso ad un file si utilizza ls con l’opzione “-l”. Esempio:
[root@linux01 root]# ls –l cruise
-rwxrwx-r-- 1 captain crew 8,420 Jan 12 21:42 cruise
Il primo carattere (“-“) è il tipo di file; gli altri tre caratteri specificano I permessi per l’utente che
possiede il file(“rwx”), gli altri tre (“rw-“) specificano I permessi per tutti I membri del gruppo che
possiede il file ad esclusione dell’utente che lo possiede. Gli ultimi tre caratteri della colonna (“r--)
specificano i permessi per gli utenti sul sistema. Tutte e tre le sezioni relative ai permessi hanno lo
stesso formato ed indicano da sinistra a destra il permesso di lettura, scrittura ed esecuzione. Un
trattino (“-“) al posto di una di queste lettere indica che il permesso non è accordato.
Modificare i permessi di un file
Per modificare la modalità d’accesso di qualsiasi file si utilizza lo strumento chmod. Questo
strumento si usa specificando prima quali siano i permessi da concedere o revocare per determinati
utenti, e quindi i nomi dei file su cui lavorare. In primo luogo vanno specificate le categorie d’utenti
da includere utilizzando una combinazione dei seguenti caratteri.
Carattere Categoria
u Utente che possiede il file
g Tutti gli altri membri del gruppo che possiede il
file
o Tutti gli altri utenti presenti sul sistema
a Tutti gli altri utenti sul sistema; equivale a “ugo”
Bisogna aggiungere l’operatore che indica l’azione da eseguire.
53
Operazione Azione
+ Aggiunge permessi ai permessi esistenti
dell’utente
- Rimuove permessi dai permessi esistenti
dell’utente
Infine specificare i permessi
Carattere Permesso
r Imposta il permesso di lettura
w Imposta il permesso di scrittura
x Imposta il permesso d’esecuzione
> Trovare i file
Una volta imparato a gestire file e cartelle è opportuno dare anche qualche indicazione su
com’effettuare ricerche all’interno del file system.
Oltre al comando ls, ci sono infatti altri strumenti per la ricerca dei file su disco.
Il metodo più semplice per trovare il file è lo strumento locate di GNU. Si utilizza locate per
visualizzare tutti i file sul sistema il cui nome del percorso completo corrisponde ad un particolare
modello. locate visualizza un elenco di tutti i file sul sistema che corrispondono al modello e
fornisce il loro percorso completo. Quando si specifica un modello, è possibile utilizzare anche i
caratteri jolly “?” (che indica un carattere qualsiasi) e “*” (che indica un qualunque gruppo di
caratteri).
Un comando più elaborato per la ricerca di file e directory è find. Allo strumento find bisogna prima
indicare la directory in cui iniziare a cercare i documenti, poi i criteri di ricerca, che vanno al di là
del semplice nome del file da trovare.
Opzioni del comando find
-name abc cerca tutti i file con il teso abc all’interno del nome, senza fare distinzione
tra lettere maiuscole e minuscole
-size 123k cerca tutti i file dalle dimensioni di 123KByte; se s’inserisce un segno “+” o
un segno “-“ prima del numero vengono individuati i file di dimensioni
maggiori o minori di quella specificata
-mmin 123 cerca tutti i file modificati da esattamente 123 minuti; se s’inserisce un
segno “+” o un segno “-“ prima del numero vengono individuati i file
modificati da un periodo di tempo superiore o inferiore di quello specificato
-mtime 123 cerca tutti i file modificati da esattamente 123 giorni; se s’inserisce un segno
“+” o un segno “-“ prima del numero vengono individuati i file modificati da
un periodo di tempo superiore o inferiore di quello specificato
-empty cerca tutti i file vuoti
-newer abc cerca solo i file modificati più recentemente rispetto al file abc
-user pippo cerca tutti i file appartenenti all’utente pippo
-group pluto cerca tutti i file appartenenti ai membri del gruppo pluto
-exec cmd esegue in modo automatico l’istruzione cmd sui file individuati
54
Altro strumento rilevante nella ricerca dei file è which, che serve ad individuare con certezza la
posizione di applicazioni e strumenti.
> Analisi del testo
Tra gli strumenti disponibili in ogni distribuzione Linux ci sono alcuni piccoli tool per l’analisi del
testo. Si tratta di strumenti dalle dimensioni ridottissime e dalle funzioni ben definite, di per sé non
particolarmente potenti ma in grado di fornire, se usati in combinazione, risultati eccellenti.
Leggere un testo
[root@linux01 root]# cat articolo.txt
Questa riga di comando fa in modo che ciò che è contenuto nel file articolo.txt venga mostrato sullo
schermo. Se il testo è troppo lungo per rientrare nel video del pc, cat non prevede la possibilità di
visualizzare il testo una schermata alla volta. Per questo è spesso necessario utilizzarlo in
congiunzione con il comando less, che permette all’utente di navigare all’interno dell’output di un
comando come cat, spostandosi in avanti e all’indietro con i tasti direzionali. Oppure andando
avanti di una schermata alla volta premendo la barra spaziatrice. Altri comandi utili possono essere
q (per uscire) e la ricerca di un pattern di testo che si effettua con il simbolo “/”. Ad esempio se si
vuol cercare la parola “computer” in un testo visualizzato con less bisogna digitare:
/computer.
Contare il testo
Per contare il numero di caratteri, parole o righe presenti in un testo, sotto Linux c’è lo strumento
wc. Per visualizzare il numero di righe, parole e caratteri nel file outline.txt, basta digitare:
[root@linux01 root]# wc outline
Utilizzando wc bisogna indicare come argomento il nome del file da analizzare, di cui vengono così
riportate in tre colonne separate i conteggi per le righe, le parole ed i caratteri presenti. Le principali
opzioni di wc sono:
-c specifica che deve essere contato e visualizzato solo il numero dei caratteri del file
-w specifica che deve essere contato e visualizzato solo il numero delle parole del file
-l specifica che deve essere contato e visualizzato solo il numero delle righe del file
Cercare una stringa di testo
Per cercare ad esempio la parola “pollo” nel file ricette.doc:
[root@linux01 root]# grep pollo ricette.doc
L’output del comando consiste nelle righe in cui il testo cercato viene individuato.
55
Ancor più di altri strumenti, grep dimostra la sua potenza se utilizzato in congiunzione con più
comandi: sfruttando il già citato meccanismo della ridirezione di input ed output si può sfruttare
grep in molte situazioni.
Modificare le password
Per modificare la propria password bisogna utilizzare lo strumento passwd. Questo chiede di
indicare la password corrente (per essere sicuro di trovarsi di fronte all’utente giusto) e quindi la
nuova password che s’intende usare. Per motivi di sicurezza, né la password vecchia né quella
nuova vengono visualizzate sullo schermo. Per garantire che la nuova password sia stata scritta
correttamente, passwd chiede di immettere la nuova password due volte. Se questa non viene
digitata nello stesso modo entrambe le volte, passwd non effettua il cambiamento. Esempio:
[root@linux01 root]# passwd
Changing password for kurt
Old password: [vecchia password]
Enter the new password (minimum of 5, maximum of 8 characters)
Please use a combination of upper and lower case letters and
numbers.
New password: [nuova password]
Re-enter new password: [ridigitare nuova password]
Password changed
Le password possono comprendere caratteri sia maiuscoli sia minuscoli, le cifre da 0 a 9 e simboli
di punteggiatura; inoltre dovrebbero avere una lunghezza compresa tra cinque ed otto caratteri.
2.4. Gestione dei dischi
In un sistema Linux sono previsti due tipi di memorizzazione su disco: fissa e rimovibile. La prima
fa riferimento ad un disco permanente collegato al sistema e non prevede alcuna rimozione casuale.
La seconda categoria di dispositivi di memorizzazione su disco è quella dei dischi rimovibili, di cui
cioè si prevede l’estrazione per l’archiviazione od il trasferimento in un altro sistema.
Nei sistemi Linux, i dischi vengono impiegati dopo essere stati montati in una directory, che rende
disponibili i contenuti dell’albero delle directory del disco in quel determinato mount point. Questo
vuol dire che tutti i dischi appartengono alla medesima struttura logica di directory, e non esiste il
concetto di unità così come invece accade nel mondo Dos/Windows. I dischi possono essere
montati in qualsiasi directory del sistema, ma qualsiasi divisione tra dischi è trasparente: così, un
sistema che possiede, oltre al disco del file di sistema principale montato in /, anche diversi dischi
rigidi separati per l’albero delle sottodirectory /home, /usr e /usr/local, agli occhi dell’utente questo
non risulterà differente dai sistemi che hanno un unico disco fisso.
Gli amministratori del sistema spesso montano lettori a capacità elevata su alberi delle directory che
siano in grado di contenere molti dati e, per motivi di sicurezza, spesso si servono di diversi dischi
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.
Set up and management of an integrated information system on Linux.

Más contenido relacionado

Destacado

Ethnicity internal and external
Ethnicity internal and externalEthnicity internal and external
Ethnicity internal and externalasmedialauren
 
The Rise of Smart Operations
The Rise of Smart OperationsThe Rise of Smart Operations
The Rise of Smart OperationsUPS Longitudes
 
Xarxes-Jiatai Lu i Yunjie Liu
Xarxes-Jiatai Lu i Yunjie LiuXarxes-Jiatai Lu i Yunjie Liu
Xarxes-Jiatai Lu i Yunjie LiuInslaialarquera
 
Personal Persona Project - Jessica Thompson
Personal Persona Project - Jessica ThompsonPersonal Persona Project - Jessica Thompson
Personal Persona Project - Jessica ThompsonJessica Thompson
 
Andrew goodwin 1992 pp
Andrew goodwin 1992 ppAndrew goodwin 1992 pp
Andrew goodwin 1992 ppasmedialauren
 
2015-05-01_Conceptual Design Package
2015-05-01_Conceptual Design Package2015-05-01_Conceptual Design Package
2015-05-01_Conceptual Design PackageKen Puncerelli
 
Traveller 3 unit one no. 1+ grammar present simple+progresالدرس الاول م...
Traveller  3  unit  one  no. 1+   grammar present simple+progresالدرس الاول م...Traveller  3  unit  one  no. 1+   grammar present simple+progresالدرس الاول م...
Traveller 3 unit one no. 1+ grammar present simple+progresالدرس الاول م...rahaf006
 
курочка ряба
курочка рябакурочка ряба
курочка рябаritalyova
 
Báo động nhồi máu cơ tim trong giới văn phòng
Báo động nhồi máu cơ tim trong giới văn phòngBáo động nhồi máu cơ tim trong giới văn phòng
Báo động nhồi máu cơ tim trong giới văn phòngodis836
 

Destacado (14)

Ethnicity internal and external
Ethnicity internal and externalEthnicity internal and external
Ethnicity internal and external
 
Cv marius 2014
Cv   marius 2014Cv   marius 2014
Cv marius 2014
 
Oak Door Thresholds
Oak Door ThresholdsOak Door Thresholds
Oak Door Thresholds
 
The Rise of Smart Operations
The Rise of Smart OperationsThe Rise of Smart Operations
The Rise of Smart Operations
 
Xarxes-Jiatai Lu i Yunjie Liu
Xarxes-Jiatai Lu i Yunjie LiuXarxes-Jiatai Lu i Yunjie Liu
Xarxes-Jiatai Lu i Yunjie Liu
 
Personal Persona Project - Jessica Thompson
Personal Persona Project - Jessica ThompsonPersonal Persona Project - Jessica Thompson
Personal Persona Project - Jessica Thompson
 
Andrew goodwin 1992 pp
Andrew goodwin 1992 ppAndrew goodwin 1992 pp
Andrew goodwin 1992 pp
 
PPT
PPTPPT
PPT
 
2015-05-01_Conceptual Design Package
2015-05-01_Conceptual Design Package2015-05-01_Conceptual Design Package
2015-05-01_Conceptual Design Package
 
Traveller 3 unit one no. 1+ grammar present simple+progresالدرس الاول م...
Traveller  3  unit  one  no. 1+   grammar present simple+progresالدرس الاول م...Traveller  3  unit  one  no. 1+   grammar present simple+progresالدرس الاول م...
Traveller 3 unit one no. 1+ grammar present simple+progresالدرس الاول م...
 
курочка ряба
курочка рябакурочка ряба
курочка ряба
 
CV1
CV1CV1
CV1
 
Báo động nhồi máu cơ tim trong giới văn phòng
Báo động nhồi máu cơ tim trong giới văn phòngBáo động nhồi máu cơ tim trong giới văn phòng
Báo động nhồi máu cơ tim trong giới văn phòng
 
Budidaya Lele
Budidaya LeleBudidaya Lele
Budidaya Lele
 

Similar a Set up and management of an integrated information system on Linux.

Il Cloud Infrastrutturale
Il Cloud InfrastrutturaleIl Cloud Infrastrutturale
Il Cloud InfrastrutturaleMarco Lombardo
 
Panoramica sul progetto OpenStack
Panoramica sul progetto OpenStackPanoramica sul progetto OpenStack
Panoramica sul progetto OpenStackPar-Tec S.p.A.
 
Progettazione e sviluppo di un software applicativo su un single board computer
Progettazione e sviluppo di un software applicativo su un single board computerProgettazione e sviluppo di un software applicativo su un single board computer
Progettazione e sviluppo di un software applicativo su un single board computerAlessandro Mascherin
 
Meetup Fluent Design e Progressive Web App
Meetup Fluent Design e Progressive Web AppMeetup Fluent Design e Progressive Web App
Meetup Fluent Design e Progressive Web Appdotnetcode
 
Presentazione IBM i virtualizzazione su Power System
Presentazione IBM i virtualizzazione su Power SystemPresentazione IBM i virtualizzazione su Power System
Presentazione IBM i virtualizzazione su Power SystemPRAGMA PROGETTI
 
Meetup Progressive Web App
Meetup Progressive Web AppMeetup Progressive Web App
Meetup Progressive Web Appdotnetcode
 
Linux Nelle Aziende Installfest2007
Linux Nelle Aziende Installfest2007Linux Nelle Aziende Installfest2007
Linux Nelle Aziende Installfest2007jekil
 
Sistemi di Virtualizzazione con Gnu/Linux Xen vs VMware
Sistemi di Virtualizzazione con Gnu/Linux Xen vs VMwareSistemi di Virtualizzazione con Gnu/Linux Xen vs VMware
Sistemi di Virtualizzazione con Gnu/Linux Xen vs VMwareClaudio Cardinali
 
Intellisystem Technologies - Collezione riviste anno 2003 - Magazine Book Col...
Intellisystem Technologies - Collezione riviste anno 2003 - Magazine Book Col...Intellisystem Technologies - Collezione riviste anno 2003 - Magazine Book Col...
Intellisystem Technologies - Collezione riviste anno 2003 - Magazine Book Col...Cristian Randieri PhD
 
#LRIS2014 - MessageBus, Cluster communication and Caching on B2B
#LRIS2014 - MessageBus, Cluster communication and Caching on B2B#LRIS2014 - MessageBus, Cluster communication and Caching on B2B
#LRIS2014 - MessageBus, Cluster communication and Caching on B2Bkino2k
 
Generazione automatica diagrammi di rete con template pptx
Generazione automatica diagrammi di rete con template pptxGenerazione automatica diagrammi di rete con template pptx
Generazione automatica diagrammi di rete con template pptxGiacomoZorzin
 
La scelta di Plone per la comunicazione istituzionale dell'INAF
La scelta di Plone per la comunicazione istituzionale dell'INAFLa scelta di Plone per la comunicazione istituzionale dell'INAF
La scelta di Plone per la comunicazione istituzionale dell'INAFPlone for Research and University
 
Da Zero all'open per PA e PMI
Da Zero all'open per PA e PMIDa Zero all'open per PA e PMI
Da Zero all'open per PA e PMINaLUG
 
Babel presenta: Opsview
Babel presenta: OpsviewBabel presenta: Opsview
Babel presenta: OpsviewBabel
 
Dalla virtualizzazione al private cloud: Il Patronato INCA rinnova la fiducia...
Dalla virtualizzazione al private cloud: Il Patronato INCA rinnova la fiducia...Dalla virtualizzazione al private cloud: Il Patronato INCA rinnova la fiducia...
Dalla virtualizzazione al private cloud: Il Patronato INCA rinnova la fiducia...Babel
 

Similar a Set up and management of an integrated information system on Linux. (20)

Erlug
ErlugErlug
Erlug
 
Il Cloud Infrastrutturale
Il Cloud InfrastrutturaleIl Cloud Infrastrutturale
Il Cloud Infrastrutturale
 
Panoramica sul progetto OpenStack
Panoramica sul progetto OpenStackPanoramica sul progetto OpenStack
Panoramica sul progetto OpenStack
 
Progettazione e sviluppo di un software applicativo su un single board computer
Progettazione e sviluppo di un software applicativo su un single board computerProgettazione e sviluppo di un software applicativo su un single board computer
Progettazione e sviluppo di un software applicativo su un single board computer
 
Meetup Fluent Design e Progressive Web App
Meetup Fluent Design e Progressive Web AppMeetup Fluent Design e Progressive Web App
Meetup Fluent Design e Progressive Web App
 
Presentazione IBM i virtualizzazione su Power System
Presentazione IBM i virtualizzazione su Power SystemPresentazione IBM i virtualizzazione su Power System
Presentazione IBM i virtualizzazione su Power System
 
Linuxday2007
Linuxday2007Linuxday2007
Linuxday2007
 
Meetup Progressive Web App
Meetup Progressive Web AppMeetup Progressive Web App
Meetup Progressive Web App
 
Linux Nelle Aziende Installfest2007
Linux Nelle Aziende Installfest2007Linux Nelle Aziende Installfest2007
Linux Nelle Aziende Installfest2007
 
Sistemi di Virtualizzazione con Gnu/Linux Xen vs VMware
Sistemi di Virtualizzazione con Gnu/Linux Xen vs VMwareSistemi di Virtualizzazione con Gnu/Linux Xen vs VMware
Sistemi di Virtualizzazione con Gnu/Linux Xen vs VMware
 
Intellisystem Technologies - Collezione riviste anno 2003 - Magazine Book Col...
Intellisystem Technologies - Collezione riviste anno 2003 - Magazine Book Col...Intellisystem Technologies - Collezione riviste anno 2003 - Magazine Book Col...
Intellisystem Technologies - Collezione riviste anno 2003 - Magazine Book Col...
 
#dd12 monitorare lotus domino con nagios e centreon
#dd12 monitorare lotus domino con nagios e centreon#dd12 monitorare lotus domino con nagios e centreon
#dd12 monitorare lotus domino con nagios e centreon
 
#LRIS2014 - MessageBus, Cluster communication and Caching on B2B
#LRIS2014 - MessageBus, Cluster communication and Caching on B2B#LRIS2014 - MessageBus, Cluster communication and Caching on B2B
#LRIS2014 - MessageBus, Cluster communication and Caching on B2B
 
Generazione automatica diagrammi di rete con template pptx
Generazione automatica diagrammi di rete con template pptxGenerazione automatica diagrammi di rete con template pptx
Generazione automatica diagrammi di rete con template pptx
 
La scelta di Plone per la comunicazione istituzionale dell'INAF
La scelta di Plone per la comunicazione istituzionale dell'INAFLa scelta di Plone per la comunicazione istituzionale dell'INAF
La scelta di Plone per la comunicazione istituzionale dell'INAF
 
Da 0 all'open per PA e PMI
Da 0 all'open per PA e PMIDa 0 all'open per PA e PMI
Da 0 all'open per PA e PMI
 
Da Zero all'open per PA e PMI
Da Zero all'open per PA e PMIDa Zero all'open per PA e PMI
Da Zero all'open per PA e PMI
 
JAX-WS e JAX-RS
JAX-WS e JAX-RSJAX-WS e JAX-RS
JAX-WS e JAX-RS
 
Babel presenta: Opsview
Babel presenta: OpsviewBabel presenta: Opsview
Babel presenta: Opsview
 
Dalla virtualizzazione al private cloud: Il Patronato INCA rinnova la fiducia...
Dalla virtualizzazione al private cloud: Il Patronato INCA rinnova la fiducia...Dalla virtualizzazione al private cloud: Il Patronato INCA rinnova la fiducia...
Dalla virtualizzazione al private cloud: Il Patronato INCA rinnova la fiducia...
 

Set up and management of an integrated information system on Linux.

  • 1. UNIVERSITÀ DEGLI STUDI DI PISA - FACOLTÀ DI INGEGNERIA CORSO DI LAUREA TRIENNALE IN INGEGNERIA DELLE TELECOMUNICAZIONI Andrea Marchetti Michele Bartoli CCOONNFFIIGGUURRAAZZIIOONNEE EE GGEESSTTIIOONNEE,, SSUU PPIIAATTTTAAFFOORRMMAA LLIINNUUXX,, DDII UUNN SSIISSTTEEMMAA IINNFFOORRMMAATTIIVVOO IINNTTEEGGRRAATTOO Tutori interni: Prof. Ing. Stefano Giordano Ing. Rosario G. Garroppo Tutore esterno: Dott.ssa Ilaria Bertolucci
  • 2. 2 INDICE Profilo dell’azienda 5 Ringraziamenti 5 Introduzione 6 1. Come avvicinarsi a Linux? 10 1.1. Le distribuzioni 11 1.2. Scelta della distribuzione Linux 19 1.3. Requisiti di sistema Intel 20 1.4. Macchine utilizzate per i test 20 1.5. Prima di installare 20 1.6. Installazione di Red Hat Linux 22 1.7. Configurazione del sistema 42 1.8. Creare un account utente 45 2. Alcuni segreti dei tool di Linux 46 2.1. La shell 46 Completamento automatico della digitazione 46 Ripetizione dei comandi digitati 46 Ridirigere l’input e l’output 47 La documentazione 48 2.2. File e directory 49 Creare un file vuoto 50 2.3. Lavorare con i file 51 Trovare i file 53 Analisi del testo 54 2.4. Gestione dei dischi 55 Un solo disco più piattaforme 57 Usare i dischi rimovibili 58 2.5. L’elaborazione del testo 60 Vi 60 Emacs 60 La selezione del testo 61 3. Samba 62 3.1. File samba.conf 63 3.2. SWAT 69 3.3. Configurazione di Samba su Windows NT 70 3.4. Configurazione di Samba su Windows 95/98 71 3.5. Utilizzo di Samba 73 4. Le routine di avvio: i primi minuti dopo il lancio del sistema operativo 75 4.1. Init: il processo 1 75 4.2. L’organizzazione degli script di avvio 83 4.3. Gli script di attivazione e disattivazione dei servizi 84 5. Lan browsing 87 5.1. LAN Information Server – LISa 87
  • 3. 3 5.2. Come funziona LISa? 88 5.3. Accesso alle informazioni – client 90 5.4. resLISa 90 5.5. Installazione 91 5.6. Configurazione 92 5.7. Quattro differenti esempi di file di configurazione 95 5.8. Opzioni e segnali della riga di comando 96 6. X-Win32 v.5.5.2 98 6.1. Nuove caratteristiche 99 6.2. X-Win32 + SSH 99 6.3. Lingue 99 6.4. Altre importanti caratteristiche 100 6.5. Filosofia del prodotto 100 6.6. Font aggiuntivi 100 6.7. Configurazione di X-Win32 101 7. Web Server Linux 104 7.1. Quale Web Server scegliere: Apache, NCSA o Netscape 104 7.2. Installazione del Web Server 106 7.3. Configurazione 106 7.4. Ottimizzazione del Web Server 108 7.5. Apache Server Status 109 7.6. La sicurezza del Web Server 110 7.7. Hosting virtuale 111 7.7.1. Hosting basato su indirizzo IP 111 7.7.2. Hosting virtuale basato su nome 112 7.7.3. Hosting virtuale basato sulla porta 113 7.7.4. File httpd.conf 114 7.8. Sommario delle caratteristiche del Web Server Apache HTTP Server 1.3 125 8. TWiki 127 8.1. Introduzione 127 8.2. Requisiti di sistema di TWiki 129 8.3. Requisiti del server 129 8.4. Requisiti dei client 130 8.5. Guida di installazione di TWiki 130 8.6. Abilitare l’autenticazione degli utenti 134 8.6.1. File .htaccess 135 8.7. Aggiungere un sito web 138 8.8 TWiki Access Control 138 8.9. Nascondere i settaggi di controllo 142 8.10. Il SuperAdminGroup 142 8.11. Gestione file allegati 143 8.12. Sistema di gestione dei documenti 143 8.13. Condivisione file 143 8.14. Web Authoring 143 8.15. Upload dei file 144 8.16. Download dei file 144 8.17. Spostare i file allegati 144 8.18. Eliminare gli allegati 144
  • 4. 4 8.19. Link ai file allegati 144 8.20. Form TWiki 146 8.21. Templates TWiki 146 9. Java 2 SDK, Standard Edition Versione 1.4.0 Linux 148 9.1. Presentazione di Java 148 9.2. Java come strumento di programmazione 148 9.3. Java virtual machine 149 9.4. Struttura della Java virtual machine 150 9.5. Vantaggi di Java 151 9.6. Caratteristiche di Java 152 Appendice 159 Red Hat: disponibile la versione 7.3 159 I contenuti 159 Installazione 160 Le prime impressioni 160 L’ambiente grafico e il software multimediale 161 Il software da ufficio 162 Gli strumenti d’amministrazione 163 Conclusioni 163 Requisiti Hardware 164 Indirizzi Internet utili 164 I costi 164 Bibliografia 165
  • 5. 5 Profilo dell’azienda Gruppo Servizi progetta, sviluppa e rende operativi sistemi informativi per il management aziendale ed offre attività di consulenza nelle aree d’intervento dei software proposti, ponendosi sul mercato nazionale come sintesi efficace ed innovativa fra software house e società di consulenza. Il consolidamento civilistico e gestionale di bilanci, la pianificazione finanziaria e patrimoniale, il budgeting, forecasting e il financial report, ma anche il datawarehousing, la business intelligence e la logistica, rappresentano aree di forte competenza nelle quali sono nate soluzioni particolarmente efficaci. Gruppo Servizi è una delle poche realtà presenti sul mercato a possedere la caratteristica della “doppia competenza”: al know how tecnologico affianca skill organizzativi, al software abbina consulenza qualificata. Queste caratteristiche consentono di fornire ai clienti “soluzioni a problemi” pronte all’uso, efficaci, affidabili e facili da utilizzare. Ringraziamenti Ringraziamo la ditta che ci ha dato la possibilità di svolgere il tirocinio aziendale per completare il nostro corso di studi. Siamo grati in particolare all’Ing. Duccio Vigolo ed ai suoi collaboratori per l’aiuto che ci hanno fornito.
  • 6. 6 Introduzione Mappa di massima della rete aziendale:
  • 7. 7 L’obiettivo da raggiungere è realizzare una postazione Server Linux configurata per ospitare un Web Server in grado di interpretare applicazioni Java Based integrata in un dominio Windows 2000 (con protocolli di tipo Samba). Il Server dovrà poi poter essere amministrato da remoto (tramite Telnet, X-Win32, ecc.) da macchine Windows e dovrà vedere i Server ed i Client della rete Windows (per la condivisione di cartelle, file e stampanti). Dovrà inoltre ospitare uno spazio di sviluppo di progetti, gestione documenti e database di informazioni per facilitare lo sviluppo di gruppo, sia sulla rete intranet sia su quella internet. La funzione del Server in azienda sarà quella di offrire un banco di test per la compatibilità multipiattaforma delle applicazioni Web Java Based sviluppate da Gruppo Servizi e file sharing. Una bozza di struttura della intranet e dei relativi servizi per il file sharing è di seguito rappresentata:  Area Pubblica: l'accesso a questa parte della intranet è soggetto a Login e Password (solo i clienti abilitati potranno entrare) ed è visibile anche agli utenti interni.  Programma X (pagina accessibile a tutti gli utenti registrati): o Segnalazione Bug (per ogni programma un utente può inserire informazioni relative a presunti bug). o Segnalazione Migliorie (per ogni programma gli utenti possono inserire suggerimenti per nuove implementazioni). o FAQ (i clienti possono solo leggere). o Releases e Patches (con possibilità di download) (i clienti possono solo leggere). o History ed Elenco versioni rilasciate (i clienti possono solo leggere).  Programma Y: o ... o ... o ...  Pagina privata utente: ogni utente ha accesso a questa pagina in cui può modificare informazioni e gestire allegati (questa pagina è la candidata per sostituire l'area di scambio).  Pagina di News di Gruppo Servizi: in questa pagina potrebbero essere pubblicate informazioni che Gruppo Servizi vuol rendere disponibile a tutti gli utenti ma in forma riservata, ovvero senza pubblicarle sul sito ufficiale.  Area Privata: l'accesso a questa parte è visibile solo agli utenti interni, che tipicamente potranno accedere a tutte le pagine.  Richieste di intervento/acquisto HW
  • 8. 8  Installazioni (trasversale a tutti i prodotti dovrebbe fornire indicazioni sul cliente, prodotto, Consulente Responsabile, Tecnico Responsabile, Data Scadenza).  Gestione Documenti (potrebbe essere implementato un db di documenti reperibili via Web con possibilità di ricerca sui contenuti... ecc. ecc...)  Gestione Programmi Software: o Programma X:  Elenco lavori schedulati (con indicazione di assegnazione risorse, tempistiche, ecc...)  Elenco proposte per new release  ... o Programma Y:  ...  ...  ...  Knowledge Base (in questa sezione - correlata da funzionalità di ricerca- gli utenti inseriscono e trovano informazioni e trucchi sui vari argomenti): o Visual Basic o Power Builder o Database o Oracle o SQLServer o Java o HTML e/o JavaScript o ... Utenti e Gruppi Dovranno esistere 2 gruppi: "GruppoServizi" e "Cliente". Gli utenti del primo gruppo potranno tipicamente modificare e vedere tutte le pagine della intranet. Gli utenti del secondo gruppo vedono solo la parte pubblica e di tale parte possono modificare solo alcune pagine/sezioni. Inoltre avranno accesso ad una propria pagina personale non visibile dagli altri utenti "Cliente". Dovrà esistere un utente Amministratore in grado di creare nuovi utenti per la parte pubblica. Si potrà accedere alla parte pubblica solo se si è utenti di "GruppoServizi" o "Cliente". La parte privata (non accessibile dall'esterno) potrà consentire ai nuovi utenti di creare nuovi account (un utente può essere creato da chiunque).
  • 9. 9 Riassumendo: - installazione e configurazione di un Server Linux (versione da definire); - installazione della virtual machine Java; - installazione e configurazione di Web Server Apache; - installazione di un’architettura sistemistica in grado di integrare il Server Linux con il dominio Windows 2000 (tipo Samba); - creazione di uno spazio di sviluppo di progetti, gestione documenti e database di informazioni (ad esempio TWiki).
  • 10. 10 1. Come avvicinarsi a Linux? Dieci anni fa uno studente universitario di nome Linus Torvalds annunciava sul newsgroup comp.os.minix che aveva iniziato a lavorare su un sistema operativo per piattaforma Intel 386, leggero e ispirato a Unix. ”Semplicemente un hobby”: cosi egli stesso definiva il proprio lavoro: oggi quel sistema operativo, Linux gira su macchine di qualunque tipo, a partire dai portatili e dai dispositivi embedded per arrivare a grossi mainframe. Linux viene rilasciato sotto la Gnu General Public License (Gpl), che impone la distribuzione del codice sorgente assieme ai programmi e la distribuzione sempre sotto licenza Gpl dunque anch’esso deve essere liberamente distribuibile. Un argomento spesso portato a sostegno dell’open-source è che il software open–source sia di qualità superiore rispetto a quello commerciale perché “se ci sono abbastanza occhi aperti, tutti i bug vengono a galla”. In molti ambienti, la semplice definizione di sistema operativo è un argomento in grado di scatenare vere e proprie guerre di religione. La maggior parte degli utenti Windows potrebbe indicare con questo termine una singola applicazione che include diversi software creati per interagire con il proprio computer. Per un utente Linux, invece, il termine è sinonimo di una raccolta di molti programmi piccoli e indipendenti, ma strettamente legati fra di loro. Di questo concetto è permeato Linux (e più in generale l’intero mondo Unix), popolato da piccoli componenti ben distinti tra loro che interagiscono in modo tale da fornire un servizio complesso. Questo principio offre indubbi vantaggi in termini di flessibilità e robustezza del codice: i sostenitori di Linux, ad esempio, deridono gli utenti di altre piattaforme sulle quali è necessario riavviare il sistema dopo aver installato del software, operazione necessaria molto di rado in tale ambiente. D’altro canto, per l’utente medio, la presenza di molti tool dalle funzionalità assolutamente specifiche può rendere più complessa la gestione del sistema. Il cuore di ogni sistema operativo Unix -incluso Linux – è il kernel, che comunica direttamente con l’hardware, gestisce la memoria di sistema, distribuisce le risorse ai vari processi ed effettua lo scheduling dei processi in esecuzione. È assieme il contabile, il vigile e il buttafuori del sistema operativo. Il kernel in se, tuttavia, non fa nulla di particolarmente interessante: deve essere accompagnato da una certa quantità di tool, utilità e programmi alcuni dei quali agiscono quasi al livello del kernel stesso, che si occupano di compiti come la gestione dei file system, l’allocazione della memoria e il controllo dell’hardware. Gli utenti spesso si sorprendono quando vengono a sapere che molti dei comandi che usano, per esempio ls e cd, sono in realtà piccoli programmi indipendenti, la maggior parte dei quali non è stata nemmeno scritta dagli sviluppatori Linux, ma da quelli della Free Software
  • 11. 11 Fondation. Anche l’interfaccia utente (GUI, Grafical User Intreface), il componente maggiormente visibile del sistema operativo, non è per Linux altro che una semplice applicazione, per quanto di grosse dimensioni e molto complessa. L’interfaccia grafica si compone di un sistema a finestre, solitamente Xfree86, e di un window manager: fra questi ultimi i più diffusi sono oggi KDE e Gnome. Ciò significa che, a differenza di quanto accade per Windows, gli utenti Linux possono decidere con la massima libertà quale interfaccia grafica utilizzare per il sistema operativo. 1.1. Le distribuzioni Ogni utente abbastanza esperto può in teoria costruirsi il proprio Linux assemblando manualmente tutti i componenti, anche se il processo è decisamente complicato e piuttosto dispendioso in termini di tempo. Numerose aziende hanno fatto cosi il loro ingresso nel mondo dell’open-source creando le cosiddette “distribuzioni Linux”, che eliminano la maggior parte del lavoro noioso di acquisizione dei dati, installazione e amministrazione delle applicazioni, aggiungendo al semplice sistema operativo tool per l’installazione dei pacchetti e la gestione del sistema e di altre utilità. Per le caratteristiche della licenza Gpl, le aziende che producono le distribuzioni non modificano comunque il sistema operativo ma, al contrario, sviluppano i propri prodotti raccogliendo i tool per l’installazione e la gestione attorno al cuore di Linux, riunendoli su uno o più cd-rom e vendendo il pacchetto completo di un contratto di supporto. Data la natura estremamente personalizzabile di Linux, ciascuna azienda può dedicarsi ad una nicchia di mercato e costruire un prodotto che si adatti ad essa..Mandrake è la distribuzione più semplice da installare, oltre che quella più adatta a agli utenti non familiari con il mondo Unix. Debian invece ha fatto una scelta diversa, focalizzando la propria attenzione sull’aderenza agli standard, sulla sicurezza e del software e della sua stabilità.
  • 12. 12 TurboLinuxServer6.5 SuSeLinux7.3 RedHatProfessional7.2 MandrakeLinux ProSuiteEditino8.1 DebianGnu/Linux2.2 (potato) CalderaOpenLinux Server3.1 Distribuzione TurbolinuxInc. SuSEGmbH RedHatInc. MandrakeSoftS.A. TheDebianProject CalderaInternational Inc. Azienda DollariUSA200 Euro68 Euro211,67 Euro149 Gratuito Euro769,52 Prezzo Applicazionispecializzate edenterprisedialto livello;clustereserver database. Applicazionimidrangeper workstationeserver; simileaRedHatper l’adattabilitàacampi diversi,conalcune differenzedidesign. Qualsiasitipodiutente softwareadattoaogni situazione. L’utentefinale;Mandrake forniscepotentistrumenti diconfigurazioneperl’uso delladistribuzionesul propriodesktoposul portatile. Utentiespertiche desideranoipacchetti essenzialieuna distribuzioneprivadi fronzoli. Segmentodimercato Enterprise.OpenLinux offrepacchettiperla sicurezzadelserverper l’e-commerce. Target Pacchettiperspecifiche applicazionicomei databaseeperspecificiusi comeservizidiclustering. Installazionesemplicee completeutilitydi configurazione. Distribuzioneben bilanciata. Installazioneimpeccabilee ottimaintegrazionedegli strumentidiconfigurazione proprietari;nonrichiede troppacompetenzasu Linux. È“puroLinux”;utileagli amministratoriche desideranoavereil controllocompletosul sistema. Ottimosupportoaziendalee grandeintegrazionefra servereworkstation. Puntidiforza  1Cd-Rom;routinedi installazionenella media.  7Cd-Rom+1Dvd- Rom;YaST2èmolto semplicedautilizzare.  10Cd-Rom+1Dvd- Rom;buoneleroutinedi installazioneeiltooldi partizionamentodel disco.  9Cd-Rom+1Dvd- Rom;ottimeroutinedi installazione.  3immaginiIso disponibilion-line; l’installazionerichiede qualchecompetenza tecnica.  5Cd-Rom;routinedi installazionenella media. Mediaeistallazione
  • 13. 13  TurboToolsforniscele funzionalitàdi amministrazionedibase.  YaST2èuneccellentee completotooldi configurazione.  Setdiutilitàdi configurazionestabilee standard.  Grandequantitàdiutilità diconfigurazione proprietarie.  Pacchettopotentee privodiabbellimenti.  Volution, un’applicazionealivello enterpriseperlagestione dellarete. Utilitydiconfigurazione  On-lineinformatoPdf.  Ampia6manuali inclusi.  Ampia4manuali inclusi.  Manualiutenteedi riferimento;disponibili ancheinHtmlepdfin seilinguedifferenti.  On-line,pdfsuCD- Rom.  Sucdromeon-line;la copiacartaceadei manualidiriferimentoè disponibileconi pacchettiavanzati. Documentazione  Diversesottoscrizioniepacchettidi supportosullabasedellerichiestedi intervento;supportotramitesitoweb.  60giornidisupportopost- installazione;supportotramitemailing listesitoWeb.  Diversesottoscrizioniepacchettidi supportosullabasedellerichiestedi intervento;ampiaknowledgebasesul sitoWeb,cheincludeilsupportoper prodotti,applicazioniesviluppo.  Diversesottoscrizioniepacchettidi supportosullabasedellerichiestedi intervento.  Risorseperlaricercaon-line“tra comunitàdiutenti”;comunitàdi sviluppatorimoltoattiva.  SitoWeb;supportointernazionaleper glisviluppatoribusinessegliutenti finali;diversesottoscrizioni,contratti diassistenzaepacchettidisupporto sullabasedellerichiestediintervento. Supportotecnico  Supportogarantitoingenere attraversoapplicationesolution provider..  DopoRedHat,unadelleaziende dimaggiorpesosulmercato. Diversiprogrammiprecompilati soloperRedHateSuSe.  LaposizionediRedHatassicura ottimizzazionialivellodi configurazionihardwareela disponibilitàdiapplicazioniper questapiattaforma.  Mandrakebeneficiadella derivazionedaRedHat;gliutenti possonogoderedeivantaggidel dominiodiRedHatnelcampo delledistribuzioniLinux.  AllespallediDebianvièl’intera comunitàdisviluppatoriopen- sourcecheassicurailrilasciodi applicazionistabilieaggiornate.  Supportogarantitoingenere attraversoapplicationesolution provider. Supportodimercato       Giudizio globale  = Eccellente  = Molto buono  = Buono  = Discreto  = Scarso
  • 14. 14 La flessibilità di Linux, il suo basso costo e la capacità di girare anche su hardware non troppo recente, sono le qualità che hanno convinto coloro che per primi hanno adottato questa piattaforma a introdurla in molte reti aziendali. Un altro vantaggio di Linux è la sua spiccata propensione all’utilizzo in rete, ad esempio per condividere i file e stampanti su reti NetWare, Unix e Windows. La penetrazione di Linux nel mercato desktop, tradizionalmente riservato a Windows e Mac Os, è però ancora piuttosto limitata: mentre i fan di Unix e gli sviluppatori in genere spesso usano Linux anche sulle proprie workstation, questo sistema operativo continua a suscitare la maggior attenzione in ambito server. Occorre comunque sottolineare i passi compiuti per rendere Linux un sistema operativo utilizzabile dall’utente medio a partire dall’interfaccia dei window manager, le cui versioni più recenti iniziano a potersi confrontare, per semplicità d’uso, con Windows e Mac Os. In ogni caso la complessità del core Unix rimane immutata, anche se ben nascosta, e forse anche per questo Linux richiede qualche competenza in più da parte dell’utente. Secondo uno studio svolto da Idg, il primo impedimento all’adozione di Linux in azienda è la mancanza di personale interno competente; altri aspetti che scoraggiano l’adozione di Linux sono la mancanza di supporto da parte dal produttore e la riluttanza ad introdurre all’interno dell’azienda un sistema operativo completamente nuovo. Dunque visti questi potenziali aspetti negativi, perché un’azienda dovrebbe passare a Linux? Sicuramente perché una volta superato il primo impatto con il nuovo sistema operativo, si guadagnano notevoli benefici, il più importante dei quali e nel contempo quello più citato è la mancanza di una software house di riferimento assoluto che possano comportarsi in modo monopolistico. Si possono elencare altri vantaggi, fra i quali l’incremento del tasso di sviluppo e di supporto delle applicazioni Linux. Le ultime release del kernel, dotate di migliori capacità di multiprocessing simmetrico (Smp, Symmetrical Multi Processing), hanno permesso a Linux di occupare posti sempre più importanti sui server aziendali. I nuovi file system con funzionalità di journaling sono inoltre in grado di mantenere un log delle modifiche dei dati su disco, in modo da ripristinarli in caso di crash e rendono assai poco probabili la perdita dei dati. Inoltre diversi produttori di hardware rilasciano oggi driver per Linux oltre che per Windows, e aziende come IBM hanno addirittura a listino sistemi con una distribuzione Linux gia preinstallata. Ora il problema rimane nel decidere quale distribuzione scegliere. A differenza di Windows, Linux richiede una conoscenza di base dell’architettura del sistema. Il cuore di Linux è il kernel, che gestisce tutte le funzioni di “basso livello”. Il codice del kernel è in realtà molto ristretto: Linux carica infatti al volo molte delle funzionalità di cui necessita, lasciando libera la memoria per altri compiti. Per inciso oggi la maggior parte dei sistemi operativi carica invece la maggior parte dei propri componenti direttamente all’avvio della macchina, a prescindere
  • 15. 15 dal fatto che queste siano utilizzate o meno. Le interfacce grafiche di Linux iniziano inoltre a far competere Linux con Windows in termini di utilizzabilità nella maggior parte delle più comuni operazioni. I requisiti minimi hardware per far girare Linux sono modesti: sono sufficienti un microprocessore Pentium, 16 MByte di Ram e 50 MByte di spazio su disco, e se si vuole usare anche l’interfaccia grafica c’è bisogno di altri 100Mbyte di spazio su disco. I sistemi sui quali gira Linux possono essere utilizzati per mesi senza che un crash o un blocco di sistema ne renda necessario un riavvio. Tuttavia, così come accade sotto Windows, anche le applicazioni Linux non devono passare un test formale di qualità, e un codice colmo di bug può talvolta causare il blocco di alcuni processi o dell’interfaccia grafica. Sotto Linux, però, l’interfaccia grafica stessa è un programma come tutti gli altri e come tale può essere chiusa e rieseguita senza per questo dover riavviare la macchina. Il kernel di Linux è sicuro, ma il framework che lo circonda può aprire falle che possono permettere a un malintenzionato l’ingresso non autorizzato del sistema. Virus e worm colpiscono inoltre anche macchine Linux, ma va detto che questo sistema operativo è in genere più protetto rispetto ad altre piattaforme. Solo dopo aver provato Linux si potrà apprezzare la disponibilità di applicazioni e tool gratuiti il cui prezzo sarebbe assai elevato in un ambiente commerciale, facendo cosi emergere rapidamente le vere potenzialità di questo sistema operativo. Andando ad esaminare le varie distribuzioni sono venuti fuori i seguenti aspetti. Per Caldera Open Linux 3.1: è un supporto di ottimo livello e una grande quantità di prodotti, tra cui alcune soluzioni orientate al commercio elettronico, rendono Caldera OpenLinux Server 3.1 una scelta decisamente attraente. La decisione di caldera di fare una netta distinzione tra le piattaforme client e server sottolinea la volontà di rendere i propri prodotti appetibili al mercato aziendale. Openlinux 3.1 offre un proprio prodotto per l’installazione e la configurazione del sistema: Lizard è il nome dato da Caldera a una sofisticata routine di installazione curata nei particolari quanto DrakConf di Mandrake, con cui si possono scegliere cinque configurazioni predefinite per la piattaforma server e semplificare così il processo di installazione. Openlinux Workstation 3.1 non è certo migliore di altre distribuzioni ma è senz’altro un’ottima scelta se si progetta un’infrastruttura basata su Linux e si desidera affidarsi a un unico produttore. Distinguendosi dal resto del mondo Linux, Caldera pone un particolare risalto sul ridotto costo di possesso in ambiente corporate. Per raggiungerlo l’azienda ha sviluppato diversi tool e pacchetti, primo tra tutti Volution, un software di gestione e amministrazione del sistema basato su un’interfaccia Web. Costruito intorno a Ldap, Volution è progettato per aiutare gli amministratori
  • 16. 16 nell’implementazione di profili e policy di rete, inventari hardware e software, installazioni centralizzate, upgrade, rilevamenti di intrusioni e monitoraggio dello stato dei sistemi aziendali. Il servizio di supporto di Caldera è di ottimo livello. Esaminando ora Debian Gnu/Linux 2.2 (potato) è risultato che: è la meno commerciale fra le distribuzioni Linux, è gestita da una comunità di utenti piuttosto che da un’azienda. Date queste premesse e ricordato lo stretto legame tra Debian e Free Software Foundation è facile comprendere come Debian abbia la reputazione di essere la distribuzione scelta dai guru di Linux, fama che può rivelarsi a doppio taglio. Da un punto di vista aziendale il più grosso svantaggio di Debian è la mancanza di una casa madre che fornisca un supporto adeguato: si tratta di “free software” nel senso più puro della parola, e questo fatto potrebbe non essere gradito da alcuni amministratori e responsabili IT. I creatori di Debian hanno fatto poco per semplificare il processo di apprendimento, quindi chi si avvicina a Linux per la prima volta è meglio che si rivolga verso altre distribuzioni che offrono miglior documentazione. I servizi di rete e gli strumenti per lo sviluppo di Debian Gnu/Linux sono paragonabili a quelli delle altre distribuzioni: mantenendo fede alla natura prudente e conservatrice di coloro che l’hanno creata, Debian spesso utilizza software in versioni non troppo recenti. I responsabili di questa distribuzione infatti preferiscono utilizzare pacchetti ben collaudati e che abbiano dato prova di stabilità e assenza di bug. Per esempio Debian non include le versioni più recenti del kernel di Linux, dell’interprete Perl e del sistema X window. Ciò la rende inadatta a sistemi dotati di hardware particolarmente recente (per esempio periferiche usb e schede video appena uscite): la rivelazione e la configurazione dell’hardware può rivelarsi, in questi casi, un’operazione poco agevole anche per l’utente più esperto, se non addirittura impossibile senza adottare software più aggiornato. Uno dei motivi di vanto della maggior parte dei sostenitori di Debian è il sistema di gestione dei pacchetti, APT (Advanced Package Tool è la risposta di Debian al gestore di pacchetti di Red Hat, utilizzabile per installare, aggiornare e disinstallare software sia in locale sia da diversi Ftp remoti. Mandrake Linux ProSuite Edition 8.1: è un prodotto di qualità e decisamente stabile. Mandrake si è dimostrata nei nostri test una delle più amichevoli e intuitive distribuzioni disponibili. Basata su Red Hat, Mandrake è la miglior scelta per gli utenti alle prime armi, che non dovrebbero incontrare nessun problema nell’utilizzare le applicazioni di questa distribuzione, tuttavia non può ancora competere con caldera e Red Hat per quanto concerne la disponibilità di supporto. E’ da ritenere giusto l’utilizzo di questa distribuzione sia per desktop che per notebook. Le procedure di installazione, basate su interfacce testuali, erano spesso un primo scoglio di fronte a cui molti utenti si arenavano. Con il tool di installazioni di Mandrake non c’è questo problema: in
  • 17. 17 15 passi, illustrati in modo chiaro, l’utente viene guidato verso l’installazione e la configurazione del sistema, senza che sia necessario intervenire manualmente su alcun file di configurazione. Una delle caratteristiche più apprezzate di Mandrake è il meccanismo di selezione dei pacchetti, spesso uno dei punti più critici e macchinosi delle procedure di installazione. L’installer divide i pacchetti in due gruppi logici, rispettivamente per server e workstation. All’interno delle due categorie i software sono raggruppati in base alle funzioni e al loro utilizzo sul sistema, ed è possibile scegliere liberamente pacchetti appartenenti alle diverse categorie fino ad ottenere la selezione più adatta alle proprie esigenze. Ottime sono anche le procedure di installazione automatica della stampante, dei wizard di rete, della configurazione della connessione remota e del meccanismo di attivazione dei servizi. Distribuzione corredata da due manuali abbastanza chiari: la guida all’installazione conduce gli utenti poco esperti nel processo di installazione di Mandrake mentre gli argomenti più approfonditi come la sicurezza o la configurazione dettagliata del sistema sono trattati nel secondo manuale. Rendere sicuro il proprio sistema è ancora un compito complesso ma con l’utility Bastile risulta un po’ più semplice. Con questa utilità è possibile scegliere fra tre tipi diversi di sicurezza predefiniti. In ogni segmento del mercato del software si può trovare un prodotto considerato leader e per quanto riguarda Linux questo viene svolto da Red Hat. Questa distribuzione viene considerata come uno standard per gli sviluppatori. Con la versione 7.2, che l’azienda ha acquistato, Red Hat rimane all’altezza della sua fama. Debian può essere l’alternativa più indicata per i puristi del free software, Mandrake la più adatta per gli utenti desktop alla ricerca di un ambiente semplice da utilizzare: tuttavia in un ambiente aziendale, Red Hat è a nostro parere la scelta più sicura. La versione acquistata è corredata da una grande quantità di tool e di software: Red Hat mette a disposizione dell’utente il kernel 2.4.7 compilato in diverse versioni, compilatori per tutti i principali linguaggi di programmazione e strumenti di vario genere. L’installazione, priva di inutili fronzoli, è una delle più sicure fra quelle disponibili per Linux. A tutt’oggi i punti più critici nell’installazione dei sistemi operativi Linux sono il partizionamento dei dischi, il riconoscimento dell’hardware e l’installazione del software, ambiti in cui Red Hat 7.2 eccelle. Per il partizionamento del disco Red Hat fa ricorso all’utility Disk Druid, utility caratteristica di questa distribuzione. Il software permette di applicare in modo automatico tre schemi predefiniti per la distribuzione dello spazio su disco per configurare il computer rispettivamente come workstation, server o laptop, ma lascia liberi gli utenti più esperti di gestire in prima persona tale operazione. L’elenco delle periferiche riconosciute da Red Hat è molto ampio e cresce in maniera costante. Le distribuzioni di Linux forniscono solitamente un’enorme quantità di software. Riconoscendo che questo fatto potrebbe indurre in confusione l’utente, Red Hat effettua una selezione dei programmi
  • 18. 18 a seconda dell’utilizzo del sistema indicato durante l’installazione anche se la lista di pacchetti può essere modificata e personalizzata. La gestione dei pacchetti si basa su RPM (Red Hat Manager), tool in grado di aiutare gli amministratori nel compito di installare, aggiornare, rimuovere e gestire il software. Nonostante gli amministratori esperti solitamente mettono mano a Linux direttamente tramite la linea di comando, Red Hat offre una buona serie di strumenti basati sull’interfaccia grafica, fra cui citiamo il tool Linuxconf. La documentazione cartacea e quella elettronica sono ben bilanciate nell’offrire un certo livello di dettaglio pur mantenendosi comprensibili ai nuovi utenti. Passando alla versione SuSe Linux 7.3 Professional Edition: è corredata da un’ampia e aggiornata quantità di software free e open-source. La distribuzione include tutti i tool di sviluppo Gnu, i servizi di rete standard (Apache, Bind, Samba e così via), i principali data base server (MySql, e PostgreSql) e il supporto per la maggior parte dei linguaggi di programmazione. Durante l’installazione gli utenti hanno modo di familiarizzare con YaST2 (Yet Another Setup Tool), l’utilità di gestione del sistema fornita da SuSe. YaST2 si occupa di partizionare i dischi, configurare l’hardware, selezionare il software e completarne l’installazione. L’utility è veramente notevole: ha un aspetto curato, è semplice da utilizzare e muovendosi fra i suoi menu è abbastanza facile amministrare molti degli aspetti del sistema operativo. Ha delle ottime routine di rivelazione dell’hardware. L’installazione di SuSe Lnux Professional 7.3 è in grado di rivelare e configurare non solo le schede di rete, le schede audio e i modem, ma anche le stampanti, gli adattatori isdn e le schede Tv eventualmente presenti sul sistema. Un aspetto che può creare qualche confusione è quello legato al particolare utilizzo che la distribuzione fa del file system. SuSe tende a “personalizzare” le posizioni predefinite per diverse componenti del sistema, ad esempio installando il software applicativo nella directory /opt invece che in /usr più frequentemente utilizzata. Questo significa che gli utenti gia familiari con le altre versioni di Linux devono porre attenzione a riservare spazio sul disco durante la partizione che conterrà tale directory. L’approccio di SuSe è poco diffuso nel mondo Linux, e se anche si tratta tecnicamente di una maniera accettabile di partizionare e gestire il sistema, potrebbe essere fonte di spiacevoli sorprese a causa della sua scarsa diffusione. Passando a TurboLinux 6.5: mentre tutte le altre distribuzioni hanno posto l’accento su elementi quali la facilità d’uso e l’ampiezza dell’offerta di software, TurboLinux ha seguito una sua strada, creando differenti versioni mirate a specifici ambienti di utilizzo: in questo modo possono risparmiare molto tempo ad esempio gli utenti aziendali cui è sufficiente la soluzione pacchettizzata fornita dall’azienda, perché ogni elemento della distribuzione è preconfigurato e testato per funzionare perfettamente integrandosi con il resto del software incluso.
  • 19. 19 TurboLinux fornisce i medesimi servizi di rete delle altre distribuzioni, ma si distingue per una scelta conservatrice del kernel 2.2.18 in luogo dei più recenti kernel 2.4.x. Se così da una parte, a TurboLinux mancano alcune nuove caratteristiche, occorre però sottolineare come tale distribuzione risulti più probabilmente esente da bug. Anche per TurboLinux possiamo dire che la propensione all’uso di sistemi desktop è piuttosto scarsa. La dotazione software non proprio aggiornata rende particolarmente complesso il lavoro di configurazione delle periferiche più recenti. TurboLinux pone la sua attenzione nel garantire agli utenti la sicurezza della propria distribuzione, cercando di impedire potenziali exploit di servizi di rete come telnet e Ftp. A differenza di molti dei prodotti concorrenti, questi servizi sono tra l’altro disattivati secondo le impostazioni di default. Turbolinux è corredata da una versione sicura di Apache, dal software di controllo del server Tripwire e da OpenSsh. La routine di installazione di Turbolinux sono semplici e pratiche ma prive degli abbellimenti grafici che caratterizzano alcune delle altre distribuzioni da noi esaminate. Coloro che sono poco pratici con le procedure di installazione Unix si troveranno probabilmente più a proprio agio con i tool forniti da altre distribuzioni. Le utilità in Turbolinux, chiamate Turbo Tools, forniscono un’interfaccia grafica per la configurazione e l’amministrazione dei servizi più comuni e delle applicazioni, in modo non completo come avviene con Linuxconf o YaST2 ma comunque funzionale. Come la maggior parte delle distribuzioni, Turbolinux utilizza RPM per l’installazione, la gestione, la disinstallazione del software, vero standard nel settore anche se alcuni utenti più esperti potrebbero preferire il sistema APT (Advanced Package Tool) di Debian. Fedele alla sua natura di distribuzione orientata alla praticità, la documentazione Turbolinux è disponibile solo in formato elettronico (.pdf) e sul sito Web dell’azienda. Turbolinux offre 60 giorni di supporto via e-mail, oltre a vari tipi di contratti di supporto. 1.2. Scelta della distribuzione Linux Nell’azienda abbiamo discusso a lungo per decidere a quale distribuzione affidarci per creare una postazione Web Server sulla rete interna, ma alla fine siamo stati tutti d’accordo nello scegliere Red Hat Linux Professional 7.2. Molti fattori hanno influenzato il giudizio a favore di Red Hat: i più importanti sono la sua qualità, la semplicità d’uso e l’ottima fama di cui essa gode in ambito aziendale. Nonostante altre distribuzioni le siano superiori nello svolgere specifici compiti, nessuna è così ben bilanciata e versatile. La longevità di Rad Hat nel mercato Linux sta inoltre a testimoniare la sua compatibilità con i sistemi usati in azienda. Molto vicino a Red Hat giunge, seconda scelta possibile, SuSE, la distribuzione più diffusa sul mercato europeo.
  • 20. 20 1.3. Requisiti di sistema Intel Linux è in grado di funzionare in quasi tutti i computer moderni che usano processori intel. Se il computer può usare il sistema operativo Dos o Windows potrà generalmente eseguire Linux. Secondo Red Hat si elencano i requisiti di sistema necessari per eseguire Red Hat Linux sulle piattaforme Intel:  Processore Intel 386 o superiore.  Spazio disponibile su disco. 850 MB per l’installazione Workstation e 1.7 GB per un’installazione Server. E’ possibile ridurre la dimensione dell’installazione ed installare meno software eseguendo l’installazione nella modalità expert mode.  Si raccomanda di usare almeno 32 MB di memoria o più; se non si usa X11, si possono usare 16 MB di RAM, mentre si consiglia di usare almeno 64 MB se si pensa di usare X11 e di eseguire diversi client contemporaneamente.  Il supporto alle schede video è migliore per quelle rilasciate da almeno un anno. Il supporto alle schede grafiche più recenti, con maggiori funzionalità, potrebbe essere solo parziale.  Per facilitare la procedura di installazione è consigliabile impostare il BIOS per consentire l’avvio da Cd-Rom.  Drive floppy da 3,5 pollici per creare il disco di ripristino o per eseguire installazioni speciali per mezzo di PCMCIA, PLIP, FTP, NFS o HTTPD.  Per effettuare il multiboot è necessario creare una partizione separata o installare un disco separato per Linux. 1.4. Macchine utilizzate per i test  Il server Linux (Linux Red Hat 7.2) è un Pentium-II a 400 MHz, 256 MB di RAM, Hard Disk da 9 GB, collegamento alla rete Microsoft aziendale.  Il client Windows (Windows 98 SE) è un Pentium-S a 166 MHz con 64 MB di RAM e Hard Disk 2 GB, collegamento alla rete Microsoft aziendale.  Server Windows (Windows 2000 Professional Server) aziendale.  Altri vari client Windows (Windows 2000 Professional Workstation, Windows 2000 Professional Server) appartenenti alla rete aziendale. 1.5. Prima di installare Red Hat Linux offre cinque differenti classi di installazione:
  • 21. 21 Workstation E’ la più appropriata per i nuovi utenti del mondo Linux. L’installazione workstation creerà un sistema per l’utilizzo home. Verrà installata l’interfaccia grafica. Server E’ la più appropriata se si vuole creare un sistema basato su un server Linux, e se l’utente vuole personalizzare pesantemente la configurazione del sistema. Laptop E’ stata progettata per essere istallata sui portatili in modo molto semplice. Installerà i pacchetti necessari offrendo un’installazione automatica ed intuitiva. Custom Permette all’utente una grande flessibilità durante l’installazione. Possono essere scelti il boot loader, i pacchetti desiderati, ecc. Questa installazione è la più appropriata per utenti esperti di Red Hat o per chi ha paura di perdere la completa flessibilità. Upgrade Se è già presente una versione di Red Hat Linux (3.03 o superiore), verranno istallati solo gli aggiornamenti del kernel e dei nuovi pacchetti. L’installazione più appropriata per il nostro Web Server è quella Server: Qui sotto sono riportati i minimi spazi su disco richiesti per tale tipo di installazione in una sola lingua (ad esempio Italiano).  Server (installazione minima, senza interfaccia grafica): 1GB  Server (installazione completa, senza interfaccia grafica): 1.3 GB  Server (installazione completa, con interfaccia grafica GNOME e KDE): 2 GB Se si pensa di installare tutti i gruppi di pacchetti, oppure selezionare individualmente pacchetti aggiuntivi, ci sarà bisogno di un minimo di 1.2 GB o più. Durante l’installazione X Window System non sarà configurato e nessuna GUI verrà caricata per default all’avvio del sistema, a meno che non vengano scelti manualmente i pacchetti appropriati.  La dimensione della partizione swap è determinata dalla quantità di RAM che è presente sul sistema e dall’ammontare dello spazio disponibile sull’hard disk. Per esempio, se il pc dispone di 128 MB di RAM sarà creata una partizione di swap tra i 128 MB ed i 256 MB (il doppio della RAM), che dipende dalla disponibilità di spazio libero sul disco.  Una partizione 384 MB (montata come /).  Una partizione di almeno 1.4 GB (montata come /usr).  Una partizione di almeno 512 MB (montata come /home).
  • 22. 22  Una partizione di 256 MB (montata come /var).  Una partizione di 50 MB (montata come /boot) nella quale risiedono il kernel ed i relativi file. Questo schema di partizionamento risulta appropriata per la maggior parte dei server; in ogni caso è possibile effettuarlo manualmente. Per effettuare l’installazione per la prima volta, è necessario effettuare il boot da Cd-Rom oppure avere a disposizione i dischetti di avvio nel caso in cui il pc non preveda il boot da questa periferica. Per effettuare il boot da floppy inserire un dischetto formattato ed eseguire l’utilità rawrite inclusa nel Cd-Rom nella directory dosutils. A questo punto digitare dalla shell Dos i seguenti comandi: C:> d: D:> cd dosutils D:dosutils> rawrite Enter disk image source file name: ..imagesboot.img Enter target diskette into drive: a: Please insert a formatted diskette into drive A: and press -- ENTER-- : [Enter] D:dosutils> Nel primo menu che compare è possibile scegliere in che modo effettuare l’installazione. Le scelte possibili sono:  Installazione o upgrade in modalità grafica: [Enter]  Installazione o upgrade in modalità testo: text [Enter]  Abilitazione modalità expert: expert [Enter]  Abilitazione modalità rescue: rescue [Enter]  Se si dispone di un disco driver: linux dd [Enter] 1.6. Installazione di Red Hat Linux A seguito sono riportati i menu d’installazione e le scelte da noi effettuate.
  • 23. 23 Selezione della lingua Italiano Selezione della tastiera Modello: Generic 102-key (INTL) PC Layout: Italiano Dead Key: Abilita Dead Key
  • 24. 24 Configurazione mouse 3 button mouse PS/2 Opzioni d’installazione Server Setup della partizione del disco Partizionamento automatico
  • 25. 25 Rimuovere tutte le partizioni sul sistema La scelta del partizionamento automatico ha generato sulla nostra macchina una suddivisione del disco come in tabella: Dispositivo Inizio Fine Dimensione (MB) Tipo Mountpoint Formattare /dev/hda | /dev/hda1 1 6 47 ext3 /boot Sì | /dev/hda2 7 794 6181 ext3 /usr Sì | /dev/hda3 795 1082 2259 ext3 /home Sì | /dev/hda4 1083 1229 1153 estesa | /dev/hda5 1083 1131 384 ext3 / Sì | /dev/hda6 1132 1196 510 swap Sì | /dev/hda7 1197 1229 259 ext3 /var Sì
  • 26. 26 Installazione del boot loader GRUB Configurazione del boot loader Installa il record del boot loader su MBR Configurazione della rete No DHCP Attiva all’avvio Indirizzo IP: 192.9.200.211
  • 27. 27 Netmask: 255.255.255.0 Network: 192.9.200.0 Broadcast: 192.9.200.255 Hostname: Linux01 Gateway: 192.9.200.2 DNS primario: 192.9.200.1 DNS secondario: 192.9.200.2 Configurazione del firewall Nessun firewall
  • 28. 28 Selezione lingua di sistema Italiano Selezione dell’ora Ora e fuso orario locale Configurazione degli account Password per root Username e password per altri utenti
  • 29. 29 Selezione dei gruppi di pacchetti KDE Sistema X Window Files Server Windows (SMB) Server Web (WWW) Selezione individuale dei pacchetti Quelli riportati sono solo i pacchetti da noi installati
  • 30. 30 Package Name Version Description 4Suite 0.11 Python tools and libraries for XML processing and databases. GConf 1.0.4 The Gnome Config System. LPRng 3.7.4 The LPRng print spooler. MAKEDEV 3.2 A program used for creating the device files in /dev. Mesa 3.4.2 A 3-D graphics library similar to OpenGL. ORBit 0.5.8 A high-performance CORBA Object Request Broker. PyXML 0.6.5 XML libraries for python. VFlib2 2.25.1 A vector font library used for Japanese document processing. XFree86-100dpi-fonts 4.1.0 X Window System 100dpi fonts. XFree86 4.1.0 The basic fonts, programs and documentation for an X workstation. XFree86-75dpi-fonts 4.1.0 A set of 75 dpi resolution fonts for the X Window System. XFree86-ISO8859-15-100dpi-fonts 4.1.0 ISO8859-15-100dpi-fonts XFree86-ISO8859-15-75dpi-fonts 4.1.0 ISO8859-15-75dpi-fonts XFree86-libs 4.1.0 Shared libraries needed by the X Window System. XFree86-tools 4.1.0 Various tools for XFree86. XFree86-twm 4.1.0 A simple, lightweight window manager for X. XFree86-xdm 4.1.0 The X display manager. XFree86-xf86cfg 4.1.0 A configuration tool for XFree86. XFree86-xfs 4.1.0 A font server for the X Window System. Xaw3d 1.5 A version of the MIT Athena widget set for X. Xconfigurator 4.9.39 The Red Hat Linux configuration tool for the X Window System. alchemist 1.0.18 A multi-sourced configuration back-end. apache 1.3.20 The most widely used web server on the Internet. apache-manual 1.3.20 Documentation for the Apache web server. apacheconf 0.8.1 A configuration tool for Apache. arpwatch 2.1a11 Network monitoring tools for tracking IP addresses on a network. arts 2.2 A modularized sound system for KDE. ash 0.3.7 A smaller version of the Bourne shell (sh). asp2php 0.75.17 An ASP to PHP converter. asp2php-gtk 0.75.17 This package contains a GUI GTK+ interface for the asp2php file format converter. audiofile 0.2.1 A library for accessing various audio file formats. aumix 2.7 An ncurses-based audio mixer. auth_ldap 1.4.8 An LDAP authentication module for Apache. authconfig 4.1.19 Text-mode tool for setting up NIS and shadow passwords. autoconf 2.13 A GNU tool for automatically configuring source code. autofs 3.1.7 A tool for automatically mounting and unmounting filesystems. automake 1.4p5 A GNU tool for automatically creating Makefiles. autorun 2.7 A CD-ROM mounting utility. basesystem 7.0 The skeleton package which defines a simple Red Hat Linux system. bash 2.05 The GNU Bourne Again shell (bash). bdflush 1.5 The daemon which starts the flushing of dirty buffers back to disk. bind 9.1.3 A DNS (Domain Name System) server. bind-utils 9.1.3 Utilities for querying DNS name servers. bindconf 1.6.1 A Red Hat DNS configuration tool. bonobo 1.0.7 Library for compound documents in GNOME.
  • 31. 31 bzip2 1.0.1 A file compression utility. bzip2-libs 1.0.1 Libraries for applications using bzip2 chkconfig 1.2.24 A system tool for maintaining the /etc/rc*.d hierarchy. chkfontpath 1.9.5 Simple utility for editing the font path for the X font server. compat-libstdc++ 6.2 Standard C++ libraries for Red Hat 6.2 backwards compatibility. console-tools 19990829 Tools for configuring the console. cracklib 2.7 A password-checking library. cracklib-dicts 2.7 The standard CrackLib dictionaries. curl 7.8 A utility for getting files from remote servers. cyrus-sasl 1.5.24 The Cyrus SASL library. cyrus-sasl-md5 1.5.24 CRAM-MD5 and DIGEST-MD5 support for Cyrus SASL. cyrus-sasl-plain 1.5.24 PLAIN and LOGIN support for Cyrus SASL. db1 1.85 The BSD database library for C (version 1). db2 2.4.14 The BSD database library for C (version 2). db3 3.2.9 The Berkeley DB database library (version 3) for C. dev 3.2 The most commonly-used entries in the /dev directory. diffutils 2.7.2 A GNU collection of diff utilities. dosfstools 2.7 Utilities for making and checking MS-DOS FAT filesystems on Linux. e2fsprogs 1.23 Utilities for managing the second extended (ext2) filesystem. Eel 1.0.1 Eazel Extensions Library. efax 0.9 A program for faxing using a Class 1, 2 or 2.0 fax modem. eject 2.0.9 A program that ejects removable media using software control. emacs 20.7 The libraries needed to run the GNU Emacs text editor. emacs-X11 20.7 The Emacs text editor for the X Window System. emacs-nox 20.7 The Emacs text editor without support for the X Window System. esound 0.2.22 Allows several audio streams to play on a single audio device. expat 1.95.1 A library for parsing XML. Fam 2.6.4 FAM, the File Alteration Monitor. File 3.35 A utility for determining file types. filesystem 2.1.6 The basic directory layout for a Linux system. fileutils 4.1 The GNU versions of common file management utilities. findutils 4.1.7 The GNU versions of find utilities (find and xargs). firewall-config 0.95 A configuration tool for IP firewalls and masquerading. foomatic 1.1 Foomatic printer database. fortune-mod 1.0 A program which will display a fortune. freetype 2.0.3 A free and portable TrueType font rendering engine. ftp 0.17 The standard UNIX FTP (File Transfer Protocol) client. gawk 3.1.0 The GNU version of the awk text processing utility. gdbm 1.8.0 A GNU set of database routines which use extensible hashing. gdk-pixbuf 0.11.0 An image loading library used with GNOME. gdk-pixbuf-gnome 0.11.0 GnomeCanvas support for displaying images. gdm 2.2.3.1 The GNOME Display Manager. gedit 0.9.4 A text editor for GNOME. ghostscript 6.51 A PostScript(TM) interpreter and renderer. ghostscript-fonts 5.50 Fonts for the Ghostscript PostScript(TM) interpreter. glib 1.2.10 A library of functions used by GDK, GTK+ and many applications.
  • 32. 32 glibc 2.2.4 The GNU libc libraries. glibc-common 2.2.4 Common binaries and locale data for glibc. gmp 3.1.1 A GNU arbitrary precision library. gnome-core 1.4.0.4 The core programs for the GNOME GUI desktop environment. gnome-libs 1.2.13 The main GNOME libraries. gnome-linuxconf 0.67.1 The GNOME front-end for linuxconf. gnome-print 0.29 Printing libraries for GNOME. gnome-vfs 1.0.1 The GNOME virtual file-system libraries. gnupg 1.0.6 A GNU utility for secure communication and data storage. gpm 1.19.3 A mouse server for the Linux console. gq 0.4.0 A GUI LDAP directory browser and editor. grep 2.4.2 The GNU versions of grep pattern matching utilities. groff 1.17.2 A document formatting system. grub 0.90 GRUB - the Grand Unified Boot Loader. gtk+ 1.2.10 The GIMP ToolKit (GTK+), a library for creating GUIs for X. gzip 1.3 The GNU data compression program. hdparm 4.1 A utility for displaying and/or setting hard disk parameters. hexedit 1.2.1 A hexadecimal file viewer and editor. hotplug 2001_04_24 A helper application which loads modules for USB devices. htmlview 1.2.0 A script which calls an installed HTML viewer. hwbrowser 0.3.5 A hardware browser. im 140 Perl scripts to replace MH, for use with the Mew mail reader. indexhtml 7.2 The web page you'll see after installing Red Hat Linux. info 4.0b A stand-alone TTY-based reader for GNU texinfo documentation. initscripts 6.40 The inittab file and the /etc/init.d scripts. ipchains 1.3.10 Tools for managing Linux kernel packet filtering capabilities. iproute 2.2.4 Advanced IP routing and network device configuration tools. iptables 1.2.3 Tools for managing Linux kernel packet filtering capabilities. iptables-ipv6 1.2.3 IPv6 support for iptables. iptraf 2.4.0 A console-based network monitoring utility. iputils 20001110 Network monitoring tools including ping. junkbuster 2.0.2 An ad-blocking application for Web browsers. kbdconfig 1.9.14 A text-based interface for setting and loading a keyboard map. kde-i18n-Italian 2.2 Italian language support for KDE. kdeaddons-kate 2.2 Plugins for the Kate text editor kdeaddons-kicker 2.2 Plugins and additional applets for Kicker (the KDE panel) kdeaddons-konqueror 2.2 Plugins extending the functionality of Konqueror kdeadmin 2.2 Administrative tools for KDE. kdebase 2.2 Basic files needed for KDE. kdelibs 2.2 Various libraries for KDE. kdelibs-sound 2.2 KDE libraries needed to support sound. kdemultimedia 2.2 Multimedia applications for the K Desktop Environment (KDE). kdemultimedia-devel 2.2 Development files for kdemultimedia. kdenetwork 2.2 Networking applications for KDE. kdenetwork-ppp 2.2 PPP configuration utilities for KDE. kdepim 2.2 Personal information management tools for KDE.
  • 33. 33 kdepim-cellphone 2.2 KDE support for synchronizing data with cellphones. kdepim-devel 2.2 Development files for kdepim. kdepim-pilot 2.2 KDE support for synchronizing data with a Palm(tm) or compatible PDA. kdesdk 2.2 KDE SDK kdesdk-devel 2.2 Development files for kdesdk kdeutils 2.2 KDE utilities. kdoc 2.2 Documentation for the K Desktop Environment (KDE) 2.0. kernel 2.4.7 The Linux kernel (the core of the Linux operating system). krb5-libs 1.2.2 The shared libraries used by Kerberos 5. ksconfig 1.9.8 A graphical interface for making kickstart files. ksymoops 2.4.1 The kernel oops and error message decoder. kudzu 0.99.23 The Red Hat Linux hardware probing tool. less 358 A text file browser similar to more, but better. libcap 1.10 Library for getting and setting POSIX.1e capabilities libglade 0.16 The libglade library for loading user interfaces. libgnomeprint15 0.29 Printing libraries for GNOME. libjpeg 6b A library for manipulating JPEG image format files. libmng 1.0.2 A library which supports MNG graphics. libpcap 0.6.2 A system-independent interface for user-level packet capture. libpng 1.0.12 A library of functions for manipulating PNG image format files. librep 0.13.6 A shared library that implements a Lisp dialect. librsvg 1.0.0 An SVG library based on libart. libstdc++ 2.96 The GNU Standard C++ Library v3. libtermcap 2.0.8 A basic system library for accessing the termcap database. libtiff 3.5.5 A library of functions for manipulating TIFF format image files. libtool 1.4 The GNU libtool, which simplifies the use of shared libraries. libtool-libs 1.4 Runtime libraries for GNU libtool. libungif 4.1.0 A library for manipulating GIF format image files. libuser 0.32 A user account administration library. libvorbis 1.0rc2 The Vorbis General Audio Compression Codec. libxml 1.8.14 An XML library. libxml2 2.4.2 Library providing XML and HTML support. libxslt 1.0.1 Library providing the Gnome XSLT engine links 0.96 A text-mode web browser. linuxconf 1.25r7 A system configuration tool. lm_sensors 2.5.5 Hardware monitoring tools. locale_config 0.3.2 A tool for configuring your system's locale. lockdev 1.0.0 A library for locking devices. logrotate 3.5.9 Rotates, compresses, removes and mails system log files. logwatch 2.1.1 A log file analysis program. lokkit 0.50 Firewall configuration application for an average end user. losetup 2.11g Programs for setting up and configuring loopback devices. m4 1.4.1 The GNU macro processor. mailcap 2.1.6 Associates helper applications with particular file types. make 3.79.1 A GNU tool which simplifies the build process for users. man 1.5i2 A set of documentation tools: man, apropos and whatis.
  • 34. 34 man-pages 1.39 Man (manual) pages from the Linux Documentation Project. man-pages-it 0.3.0 Italian man pages from the Linux Documentation Project. mgetty 1.1.26 A getty replacement for use with data and fax modems. minicom 1.83.1 A text-based modem control and terminal emulation program. mkbootdisk 1.4.2 Creates an initial ramdisk image for preloading modules. mkinitrd 3.2.6 Creates an initial ramdisk image for preloading modules. mktemp 1.5 A small utility for safely making /tmp files. mm 1.1.3 A shared memory library. mod_dav 1.0.2 A DAV module for Apache. mod_perl 1.24_01 An embedded Perl interpreter for the Apache web server. mod_ssl 2.8.4 Cryptography support for the Apache web server. modutils 2.4.6 Kernel module management utilities. mount 2.11g Programs for mounting and unmounting filesystems. mouseconfig 4.23 The Red Hat Linux mouse configuration tool. mozilla 0.9.2.1 A web browser. mtools 3.9.8 Programs for accessing MS-DOS disks without mounting the disks. nautilus 1.0.4 Nautilus is a network user environment nautilus-mozilla 1.0.4 Nautilus component for use with Mozilla ncompress 4.2.4 Fast compression and decompression utilities. ncurses 5.2 A CRT screen handling and optimization package. net-tools 1.60 Basic networking tools. netconfig 0.8.11 A text-based tool for simple configuration of ethernet devices. netpbm-progs 9.14 Tools for manipulating graphics files in netpbm supported formats. netscape-common 4.78 Files shared by Netscape Navigator and Communicator. netscape-communicator 4.78 The Netscape Communicator suite of tools. netscape-navigator 4.78 The Netscape Navigator web browser. newt 0.50.33 A development library for text mode user interfaces. nfs-utils 0.3.1 NFS utilities and supporting daemons for the kernel NFS server. nmap 2.54BETA22 A utility for port scanning large networks (or single hosts). nmap-frontend 2.54BETA22 A GUI front end for the nmap port scanner. nscd 2.2.4 A Name Service Caching Daemon (nscd). nss_ldap 172 NSS library and PAM module for LDAP. ntp 4.1.0 Synchronizes system time using the Network Time Protocol (NTP). ntsysv 1.2.24 A tool to set the stop/start of system services in a runlevel. nvi-m17n-nocanna 1.79 The nvi multiligualized text editor without support for Canna. oaf 0.6.5 Object activation framework for GNOME. openjade 1.3 A DSSSL implementation. openldap 2.0.11 The configuration files, libraries and documentation for OpenLDAP. openldap-clients 2.0.11 Client programs for OpenLDAP. openldap-servers 2.0.11 OpenLDAP servers and related files. openldap12 1.2.12 Shared libraries for OpenLDAP 1.2 applications. openssh 2.9p2 The OpenSSH implementation of SSH. openssh-askpass 2.9p2 A passphrase dialog for OpenSSH and X. openssh-clients 2.9p2 OpenSSH clients. openssh-server 2.9p2 The OpenSSH server daemon. openssl 0.9.6b The OpenSSL toolkit.
  • 35. 35 openssl-perl 0.9.6b Perl scripts provided with OpenSSL. pam 0.75 A security tool which provides authentication for applications. pam_smb 1.1.6 A Pluggable Authentication Module (PAM) for use with SMB servers. parted 1.4.16 The GNU disk partition manipulation program. passwd 0.64.1 The passwd utility for setting/changing passwords using PAM. patch 2.5.4 The GNU patch command, for modifying/upgrading files. pciutils 2.1.8 PCI bus related utilities. pciutils-devel 2.1.8 Linux PCI development library. pcre 3.4 Perl-compatible regular expression library perl 5.6.0 The Perl programming language. perl-DateManip 5.39 DateManip module for perl perl-Digest-MD5 2.13 A perl interface to the MD5 digest algorithm. perl-HTML-Parser 3.25 HTML-Parser module for perl (World_Wide_Web_HTML_HTTP_CGI/HTML) perl-HTML-Tagset 3.03 This module contains data tables useful in dealing with HTML. perl-MIME-Base64 2.12 Perl module for MIME encoding/decoding (base64 and quoted-printable) perl-Parse-Yapp 1.04 Parse-Yapp module for perl perl-SGMLSpm 1.03ii A Perl library for parsing the output of nsgmls. perl-Storable 0.6.11 Storable module for perl perl-URI 1.12 URI module for perl (World_Wide_Web_HTML_HTTP_CGI/URI) perl-XML-Dumper 0.4 Perl module for dumping Perl objects from/to XML perl-XML-Encoding 1.01 XML-Encoding module for perl perl-XML-Grove 0.46alpha XML-Grove module for perl perl-XML-Parser 2.30 A perl module for parsing XML documents perl-XML-Twig 2.02 XML-Twig module for perl perl-libnet 1.0703 The libnet module for perl (../authors/id/GBARR) perl-libwww-perl 5.53 Libwww-perl module for perl perl-libxml-enno 1.02 libxml-enno module for perl perl-libxml-perl 0.07 libxml-perl module for perl php 4.0.6 The PHP HTML-embedded scripting language. pidentd 3.0.14 An implementation of the RFC1413 identification server. pinfo 0.6.1 An info file viewer. pmake 1.45 The BSD 4.4 version of make. pnm2ppa 1.04 Drivers for printing to HP PPA printers. popt 1.6.3 A C library for parsing command line parameters. portmap 4.0 A program which manages RPC connections. ppp 2.4.1 The PPP (Point-to-Point Protocol) daemon. printconf 0.3.44 A printer configuration backend/frontend combination. printconf-gui 0.3.44 A GUI frontend for printconf. procps 2.0.7 System and process monitoring utilities. psmisc 20.1 Utilities for managing processes on your system. pwdb 0.61.1 The password database library. pygnome 1.4.1 Python bindings for the GNOME libraries. pygnome-libglade 1.4.1 GNOME support for the libglade Python wrapper. pygtk 0.6.8 Python bindings for the GTK+ widget set. pygtk-libglade 0.6.8 A wrapper for the libglade library for use with PyGTK. python 1.5.2 An interpreted, interactive object-oriented programming language.
  • 36. 36 python-xmlrpc 1.5.0 A set of Python modules for XML-RPC support. qt 2.3.1 The shared library for the Qt GUI toolkit. quota 3.01pre9 System administration tools for monitoring users' disk usage. rarpd ss981107 The RARP daemon. rcs 5.7 Revision Control System (RCS) file version management tools. rdate 1.0 Tool for getting the date/time from a remote machine. rdist 6.1.5 Maintains identical copies of files on multiple machines. redhat-config-network 0.9 The Network Adminstration Tool for Red Hat Linux. redhat-config-users 0.9.2 A graphical interface for administering users and groups. redhat-logos 1.1.3 Red Hat-related icons and pictures. redhat-release 7.2 The Red Hat Linux release file. reiserfs-utils 3.x.0j Tools for creating, repairing and debugging ReiserFS filesystems. rep-gtk 0.15 GTK+ bindings for librep Lisp environment. rep-gtk-gnome 0.15 GNOME bindings for the librep Lisp interpreter. rhn_register 2.7.2 The Red Hat Network Services registration program. rootfiles 7.2 The basic required files for the root user's directory. routed 0.17 The routing daemon which maintains routing tables. rpm 4.0.3 The Red Hat package management system. rpm-build 4.0.3 Scripts and executable programs used to build packages. rpm-perl 4.0.3 Native bindings to the RPM API for Perl. rpm-python 4.0.3 Python bindings for apps which will manipulate RPM packages. rsh 0.17 Clients for remote access (rsh, rlogin, rcp). rsh-server 0.17 Servers for remote access (rsh, rlogin, rcp). rsync 2.4.6 A program for synchronizing files over a network. rusers 0.17 Displays the users logged into machines on the local network. rusers-server 0.17 Server for the rusers protocol. rwall 0.17 Client for sending messages to a host's logged in users. rwall-server 0.17 Server for sending messages to a host's logged in users. rwho 0.17 Displays who is logged in to local network machines. samba 2.2.1a The Samba SMB server. samba-client 2.2.1a Samba (SMB) client programs. samba-common 2.2.1a Files used by both Samba servers and clients. samba-swat 2.2.1a The Samba SMB server configuration program. sawfish 0.38 An extensible window manager for the X Window System. screen 3.9.9 A screen manager that supports multiple logins on one terminal. scrollkeeper 0.2 ScrollKeeper is a cataloging system for documentation on open systems. sed 3.02 A GNU stream text editor. serviceconf 0.6.6 Serviceconf is an initscript and xinetd configuration utility. setup 2.5.7 A set of system configuration and setup files. setuptool 1.8 A text mode system configuration tool. sgml-common 0.5 Common SGML catalog and DTD files. sh-utils 2.0.11 A set of GNU utilities commonly used in shell scripts. shadow-utils 20000902 Utilities for managing accounts and shadow password files. shapecfg 2.2.12 A configuration tool for setting traffic bandwidth parameters. sharutils 4.2.1 The GNU shar utilities for managing shell archives. slang 1.4.4 The shared library for the S-Lang extension language.
  • 37. 37 squid 2.4.STABLE1 The Squid proxy caching server. stat 2.5 A tool for finding out information about a specified file. sudo 1.6.3p7 Allows restricted root access for specified users. switchdesk 3.9.7 A desktop environment switcher. switchdesk-kde 3.9.7 A KDE interface for the Desktop Switcher. symlinks 1.2 A utility which maintains a system's symbolic links. sysctlconfig 0.14 A configuration tool for operating system tunable parameters. sysklogd 1.4.1 System logging and kernel message trapping daemons. syslinux 1.52 A simple kernel loader which boots from a FAT filesystem. sysreport 1.2 Gathers system hardware and configuration information. sysstat 4.0.1 The sar and iostat system monitoring commands. talk 0.17 Talk client for one-on-one Internet chatting. talk-server 0.17 The talk server for one-on-one Internet chatting. tar 1.13.19 A GNU file archiving program. tcp_wrappers 7.6 A security tool which acts as a wrapper for TCP daemons. tcpdump 3.6.2 A network traffic monitoring tool. tcsh 6.10 An enhanced version of csh, the C shell. telnet 0.17 The client program for the telnet remote login protocol. telnet-server 0.17 The server program for the telnet remote login protocol. termcap 11.0.1 The terminal feature database used by certain applications. textutils 2.0.14 A set of GNU text file modifying utilities. time 1.7 A GNU utility for monitoring a program's use of system resources. timeconfig 3.2.2 Text mode tools for setting system time parameters. tmpwatch 2.8 A utility for removing files based on when they were last accessed. traceroute 1.4a12 Traces the route taken by packets over a TCP/IP network. tree 1.2 A utility which displays a tree view of the contents of directories. ttfonts 1.0 A set of TrueType fonts. ttfonts-ja 1.0 Free Japanese TrueType fonts unzip 5.42 A utility for unpacking zip files. up2date 2.7.2 Determines which system packages need to be updated via RHN. urw-fonts 2.0 Free versions of the 35 standard PostScript fonts. usbview 1.0 A USB topology and device viewer. usermode 1.43 Graphical tools for certain user account management tasks. utempter 0.5.2 A privileged helper for utmp/wtmp updates. util-linux 2.11f A collection of basic system utilities. vim-X11 5.8 The VIM version of the vi editor for the X Window System. vim-common 5.8 The common files needed by any version of the VIM editor. vim-enhanced 5.8 A version of the VIM editor which includes recent enhancements. vim-minimal 5.8 A minimal version of the VIM editor. vixie-cron 3.0.1 The Vixie cron daemon for executing specified programs at set times. vlock 1.3 A program which locks one or more virtual consoles. vnc 3.3.3r2 A remote display system. vnc-doc 3.3.3r2 Complete documentation for VNC. vnc-server 3.3.3r2 A VNC server. webalizer 2.01_06 A flexible Web server log file analysis program. which 2.12 Displays where a particular program in your path is located.
  • 38. 38 whois 1.0.9 An Internet whois client. words 2 A dictionary of English words for the /usr/dict directory. xinetd 2.3.3 A secure replacement for inetd. xinitrc 3.20 The default startup script for the X Window System. xloadimage 4.1 An X Window System based image viewer. xpdf 0.92 A PDF file viewer for the X Window System xscreensaver 3.33 A set of X Window System screensavers. yp-tools 2.5 NIS (or YP) client programs. Ypbind 1.8 The NIS daemon which binds NIS clients to an NIS domain. Ypserv 1.3.12 The NIS (Network Information Service) server. Zip 2.3 A file compression and packaging utility compatible with PKZIP. Zlib 1.1.3 The zlib compression and decompression library. Dipendenze non risolte: Installa i pacchetti per soddisfare le dipendenze
  • 39. 39 Configurazione interfaccia grafica (X) Intel 740 (Generic) 8 MB Installazione dei pacchetti
  • 40. 40 Creazione del dischetto d’avvio Crea dischetto d’avvio Configurazione del monitor Unprobed monitor Sync orizzontale: 31.5 – 48.5
  • 41. 41 Sync verticale: 50 – 70 Configurazione personalizzata di X Profondità di colore: High Color (16 bit) Screen resolution: 1024 x 768 Login type: Graphical
  • 42. 42 1.7. Configurazione del sistema Una volta effettuato il login come root, si hanno tutti i privilegi necessari per effettuare le modifiche alla configurazione. E’ consigliabile utilizzare l’account root solo per effettuare l’amministrazione del sistema. Creare un account non-root per un uso generale e diventare su (superuser) per apportare veloci modifiche. Queste regole base limitano le possibilità di digitare un comando incorretto che potrebbe danneggiare il sistema. Uno dei maggiori vantaggi di possedere Red Hat Linux è nei numerosi strumenti (sia grafici che testuali), inseriti nel pacchetto di distribuzione per facilitare la gestione del sistema. Questi vanno a scrivere su diversi file di configurazione (di solito ***.conf) i quali sono editabili da qualsiasi text editor. Un utente esperto si troverà più a suo agio modificando i file manualmente, poiché vedrà direttamente i cambiamenti apportati. Di seguito riportiamo l’elenco dei tool che riteniamo particolarmente utili: linuxconf Può essere richiamato dalla riga comandi in una finestra terminale, mentre si esegue X, da una riga comandi dello schermo console, oppure attraverso il browser web che si preferisce. I motivi per cui si può usare linuxconf sono:  fornisce una comoda interfaccia grafica per l’amministrazione del sistema;  consente di salvare configurazioni di sistema diverse, che permettono di avviare il proprio computer come macchina desktop o server Internet con un semplice comando dalla riga comandi;  effettua la manutenzione e sostituisce utility d’utente, di file e di rete; il programma è usato come strumento di configurazione e d’attivazione di servizi;  ha la capacità di usare moduli per aggiungere nuove funzioni;  consente di fare la manutenzione in rete, ne deriva una più efficiente gestione locale o remota del computer e della rete. linuxconf si trova nella directory /bin. Quando il programma viene usato senza le librerie GNOME (gnome-linuxconf) o dalla console, risponde ai comandi da tastiera come uno strumento d’installazione di Linux di Red Hat. Occorre spostarsi mediante un tasto Tab e usare Invio per confermare la scelta quando il cursore è sull’argomento che interessa. Può essere usato non solo interattivamente, ma anche dalla riga comandi. Il comando linuxconf aiuta anche ad avviare e terminare servizi sotto Linux mentre il sistema è in
  • 43. 43 esecuzione. linuxconf può essere configurato anche tramite browser Web attraverso la porta 98. Per prima cosa è necessario avviare il servizio linuxconfweb attraverso il tool serviceconf. Da linuxconf bisogna abilitare l’accesso alla rete che è disabilitato per default. E’ anche necessario specificare i computer o le reti che possono accedervi. Infine basta far puntare il browser all’indirizzo http://tuo_calcolatore:98. A questo punto viene visualizzata una pagina Web dalla quale è possibile apportare le modifiche al sistema; comunque è necessaria la password. dnsconf Utilità per la configurazione del server DNS. fsconf Utilità che manipola la tabella di filesystem /etc/fstab. netconf Utilità di configurazione dei servizi TCP/IP. netconfig Uguale alla precedente ma in modalità testo. userconf Configurazione d’utenti e gruppi (per aggiungere e togliere utenti e gruppi). serviceconf Applicazione grafica sviluppata da Red Hat per configurare i servizi che devono partire durante il boot, o far partire o arrestare i servizi.
  • 44. 44 swat Utilità grafica che è stata aggiunta alla suite di software Samba per assistere gli amministratori nella configurazione del file smb.conf. apacheconf Utilità grafica per la configurazione del Web server. Vengono modificati i file: httpd.conf Contiene informazioni di configurazione per il daemon del Web server (httpd), tra cui i numeri di porta o gli indirizzi su cui stare in ascolto, quali permessi sono necessari per l’esecuzione del daemon, il numero dei daemon e informazioni in merito agli host virtuali. access.conf Contiene informazioni d’accesso su base per-directory; qui si trovano le definizioni di ciò che è consentito con esattezza su ciascuna directory. srm.conf Questo file contiene direttive che definiscono le directory e i file utilizzati dal Web server, oltre a definire risorse che determinano la gestione delle richieste da parte dei browser Web. xf86cfg
  • 45. 45 Utilità grafica per configurare le periferiche quali monitor, scheda grafica, mouse, tastiera. Il programma va a modificare il file di testo chiamato /etc/X11/XF86config che contiene tutte le informazioni di configurazione per X. xf86config Come la precedente ma in modalità testo. Xconfigurator Come la precedente ma in modalità testo all’interno della shell. 1.8. Creare un account utente Ci sono due metodi per creare o aggiungere nuovi utenti: attraverso la GUI, usando il tool di configurazione User Manager, o attraverso il prompt della shell. Per creare un nuovo account è necessario conoscere la password di root oppure aver effettuato il log in come tale. Per creare un account dalla shell:  Aprire un terminale ed effettuare log in come root.  Scrivere useradd seguito da uno spazio e il nome del nuovo utente. Premere [Enter].  Scrivere passwd seguito da uno spazio e dal nome utente.  La shell chiederà la password per il nuovo utente. Immetterne una e premere [Enter].  Verrà chiesto di digitare nuovamente la password per conferma. La creazione del nuovo utente verrà confermata dal messaggio: passwd: all authentication tokens updated successfully Gli account degli utenti si trovano sul server Microsoft. Ogni utente ha la possibilità di accedere, da qualsiasi client e/o server collegato in rete, alle risorse del server Linux che sono state rese pubbliche. Se l’account dell’utente è presente anche sul server Linux sarà possibile vedere la propria cartella oltre alle risorse pubbliche. E’ inoltre possibile effettuare il log in direttamente sulla macchina Linux. Dato l’elevato numero d’utenti in azienda, abbiamo preferito creare delle risorse condivise visibili a tutti, evitando così di ricopiare tutti gli utenti sul server Linux. Inoltre abbiamo preferito che solo l’amministratore potesse entrare direttamente sulla macchina Linux in quanto server. Per poter inserire il nostro server nella nostra rete Microsoft abbiamo utilizzato il protocollo Samba, uno dei progetti Open Source maggiormente riusciti.
  • 46. 46 2. Alcuni segreti dei tool di Linux Spiegare in poche parole quali siano le differenze che esistono tra Windows e Linux non è un compito semplice. Guardando il tutto dal punto di vista dell’utente medio, le due piattaforme non sono troppo distanti: ormai esistono applicazioni simili per le due famiglie di sistemi e, come se non bastasse, le principali interfacce grafiche per Linux prendono più di una semplice ispirazione dalla struttura del desktop di Windows. Un aspetto differenzia però ancora i due sistemi operativi (sempre parlando dal punto di vista dell’utente): la riga di comando. Nel mondo Windows ormai si tende ad utilizzare soltanto applicazioni a finestra, spesso anche per amministrare il sistema, mentre nel mondo Linux ancora oggi è quasi impossibile prescindere dagli strumenti a caratteri. 2.1. La shell La shell è l’interprete dei comandi, il componente del sistema che legge ciò che l’utente scrive nella finestra di terminale e lancia di conseguenza applicazioni e altri strumenti. Linux prevede diversi tipi di shell, ciascuna con le sue peculiarità: solo per citare i nomi delle più note si può ad esempio parlare di bash (Bourne-Again Shell, usata per default in molte distribuzioni), tcsh (TC Shell), ksh (Korn Shell). Le differenze tra le diverse shell sono rilevanti soltanto per determinati compiti, come l’impostazione delle variabili di sistema o l’automazione dei comandi attraverso script eseguibili. > Completamento automatico della digitazione Il completamento automatico permette di scrivere i comandi in modo molto più rapido di quanto permetta la semplice digitazione. Per utilizzarla basta premere il tasto Tab sulla riga di comando: in questo modo la shell cerca di completare la parola alla sinistra del cursore al meglio delle sue capacità. Il completamento funziona sia sui nomi di file sia su quelli dei comandi, a seconda della posizione in cui si trova il cursore nel momento in cui si preme Tab. > Ripetizione dei comandi digitati La cronologia dei comandi è l’elenco sequenziale dei comandi digitati nella sessione corrente della shell o in quelle precedenti. I comandi contenuti in quest’elenco cronologico sono definiti eventi. La cronologia dei comandi è memorizzata in un file di testo all’interno della directory home chiamato .bash_history; questo file può essere visualizzato o modificato, proprio come un qualsiasi file di testo.
  • 47. 47 Due aspetti molto interessanti della cronologia dei comandi sono la possibilità di ripetere l’ultimo comando digitato e la capacità di eseguire una ricerca incrementale a ritroso nella cronologia. Per visualizzare la cronologia dei comandi si utilizza lo strumento history. [root@linux01 root]# history 1who 2apropos shell>shell-commands 3apropos bash>bash-commands 4history Questo comando mostra il contenuto del file con la cronologia dei comandi, visualizzando un comando per riga preceduto dal relativo numero d’evento. Si può specificare un vecchio evento dalla cronologia sulla riga di comando per eseguirlo nuovamente: il metodo più semplice consiste nell’utilizzare i tasti freccia rivolti verso l’alto e verso il basso al prompt della shell. Per eseguire un evento della cronologia utilizzando il numero d’evento corrispondente, basta digitare un punto esclamativo seguito dal numero d’evento: [root@linux01 root]# !15 E’ possibile utilizzare con la combinazione di tasti Ctrl+R la funzione di ricerca incrementale offerta da bash, per eseguire una ricerca a ritroso nella cronologia dei comandi. Questa funzione è utile se si ricorda di aver digitato una riga di comando contenente una determinata parola e si desidera ripetere il comando senza doverlo ridigitare da capo. Per questo basta digitare Ctrl+R seguito dal testo desiderato, per vedere visualizzato al prompt l’ultimo comando digitato corrispondente al criterio dato. > Ridirigere l’input e l’output La shell sposta il testo in stream specificati. Lo standard output è il luogo in cui la shell invia l’output in formato testo dei comandi e, per impostazione predefinita è costituito dallo schermo del terminale. Lo standard input è tipicamente la tastiera. Se durante l’esecuzione di un comando viene riscontrato un errore, il messaggio d’errore è solitamente inviato allo schermo sotto forma di flusso separato chiamato standard error. Questi stream vengono ridiretti ad un file o anche ad un altro comando mediante la ridirezione. Ridirigere l’input ad un file Per ridirigere lo standard input ad un file si utilizza l’operatore “<”. L’operazione viene eseguita facendo seguire il comando da “<” e dal nome del file da cui il comando deve prendere l’input. Esempio: [root@linux01 root]# apropos < keywords
  • 48. 48 Ridirigere l’input ad un file Con l’operatore “>” si ridirige lo standard output ad un file. Per utilizzarlo bisogna far seguire un comando da “>” e dal nome del file a cui inviare l’output. Esempio: [root@linux01 root]# apropos shell bash > commands Lo standard output ridiretto ad un file esistente sovrascrive il file; se invece dell’operatore “>” si utilizza il “>>” l’output del comando non viene sostituito al vecchio contenuto del file ma semplicemente aggiunto. Esempio: [root@linux01 root]# apropos shells >> commands Ridirigere i messaggi d’errore ad un file Per ridirigere lo stream di standard error ad un file l’operatore da usare è “2>”. Esempio: [root@linux01 root]# apropos shell bash 2> command.error Come nel caso dello standard output, si può utilizzare l’operatore “2>>” per aggiungere lo standard error al contenuto di un file esistente. Esempio: [root@linux01 root]# apropos shell 2>> command.error Ridirigere l’output all’input di un altro comando Il piping si verifica quando si connette lo standard output di un comando allo standard input di un altro comando. Quest’operazione viene eseguita specificando i due comandi in sequenza separati dal carattere “|” (definito per l’appunto pipe). I comandi così costruiti prendono il nome di pipeline. Per esempio, è spesso utili ridirigere in questo modo i comandi che visualizzano un output con molto testo a less. Esempio: [root@linux01 root]# apropos bash shell | less Un esempio che mette assieme le tecniche viste finora, vale a dire l’analisi dell’history, della shell e la ridirezione d’input ed output, permette di cercare all’interno di un lungo file di comandi digitati solo le righe che contengono una determinata stringa di testo, utilizzando lo strumento grep. grep è uno strumento che accetta in ingresso uno stream di testo e mostra soltanto le righe contenenti un testo specificato. Esempio: [root@linux01 root]# history | grep apropos > La documentazione I sistemi Linux dispongono di numerose funzioni di guida, tra cui completi manuali in formato elettronico. Il problema della documentazione di Linux risiede paradossalmente nella sua abbondanza, che spesso costringe gli utenti a passare al vaglio montagne di materiale nel tentativo di trovare le informazioni desiderate.
  • 49. 49 Una delle risorse principali di documentazione dei comandi e degli strumenti è il manuale che si richiama con il comando man. Per visualizzare la pagina di manuale relativa ad uno strumento bisogna digitare al prompt: [root@linux01 root]# man nome_strumento E’ possibile spostarsi nel testo ed interrompere la visualizzazione premendo il tasto “Q” Nonostante il nome, una pagina di manuale non sempre contiene la documentazione completa di un programma, ma assomiglia più ad una guida rapida di consultazione. Di solito, offre una descrizione breve del programma ed elenca le opzioni e gli argomenti che quest’accetta. Il comando man può anche servire a visualizzare un elenco di tutti gli strumenti le cui pagine nel manuale del sistema contengono un riferimento ad un determinato termine. Per questo bisogna usare lo switch –k: Ad esempio per conoscere tutti gli strumenti che contengono nella loro pagina di manuale il termine “console”: [root@linux01 root]# man –k console In alternativa è possibile verificare se all’interno dello strumento stesso è prevista una descrizione sommaria delle funzioni disponibili. Per questo si può provare a lanciare lo strumento con l’opzione --help, che fornisce informazioni sull’utilizzo dello strumento, incluse le opzioni e gli argomenti accettati dallo strumento. Altra fondamentale risorsa è la documentazione di sistema che si trova nella directory /usr/doc: HowTo, Faq e file di documentazione forniti insieme ai comandi ed ai programmi specifici. Il Linux Documentation Project (LDP, www.linuxdoc.org, con filiale italiana all’indirizzo www.pluto.linux.it/ildp) ha visto la creazione di oltre 100 file “HowTo” e di numerose Faq, ciascuno dei quali copre un aspetto particolare dell’installazione o dell’impiego dei sistemi basati sul Linux. Gli HowTo e le Faq oggi sono disponibili in più lingue ed in vari formati, tra cui l’Html. 2.2. File e directory File e directory sono rappresentati in modo gerarchico, ad albero: c’è una directory radice, rappresentata dalla “/”, da cui partono tutte le altre directory e sottodirectory, alcune della quali hanno una precisa importanza nell’ambito del sistema operativo. Ogni directory ha al suo interno due file speciali identificati rispettivamente da uno e due punti. Come in Ms-Dos, questi file indicano la directory corrente e quella immediatamente superiore. I nomi dei file possono essere costituiti da lettere maiuscole e minuscole, numeri, punti, trattini e sottolineature. I file system di Linux sono inoltre case sensitive, cioè viene fatta distinzione tra caratteri maiuscoli e minuscoli. Linux non obbliga ad utilizzare le estensioni di file, che risultano
  • 50. 50 comunque comode per identificare immediatamente tipi di file e non hanno particolare limite di lunghezza. Le directory di Linux / La capostipite di tutte le directory presenti sul sistema /bin Strumenti essenziali ed altri programmi di sistema /dev File che rappresentano le varie periferiche del sistema /etc File di configurazione e d’avvio del sistema /home Le directory home degli utenti /lib File delle librerie utilizzate dagli strumenti in /bin /proc File che forniscono informazioni sui processi attivi /root La directory home del superuser, il cui nome utente è root /sbin Strumenti essenziali per l’amministratore del computer e programmi di sistema /tmp File temporanei /usr Sottodirectory con file relativi agli strumenti ed alle applicazioni utente /usr/X11R6 File relativi al sistema X Window, compresi quei programmi (in /usr/X11R6/bin) che vengono eseguiti unicamente in X /usr/bin Strumenti ed applicazioni per gli utenti /usr/dict Dizionari ed elenchi di parole (che vengono lentamente superati da /usr/share/dict) /usr/doc Documentazione varia di sistema /usr/games Giochi e passatempi /usr/info File per il sistema ipertestuale GNU Info /usr/lib Librerie utilizzate dagli strumenti /usr/bin /usr/local File locali, ossia file esclusivi dei singoli sistemi, che includono la documentazione (in /usr/local/doc) ed i programmi (in /usr/local/bin) locali /usr/man I manuali in linea che vengono letti con il comando man /usr/share Dati per applicazioni installate indipendenti dall’architettura e che possono essere condivisi dai sistemi. Questa directory comprende inoltre svariate sottodirectory con equivalenti in /usr, comprese /usr/share/doc, /usr/share/info e /usr/share/icons /usr/src Codice sorgente dei programmi per il software installato sul sistema /usr/tmp Un’altra directory per i file temporanei /var File variabili di dati come code dello spooler e file di log > Creare un file vuoto Può essere talvolta necessario creare un file vuoto che funzioni da “segnaposto”. Per eseguire quest’operazione, si fornisce come argomento a touch il nome desiderato per il file. Esempio: [root@linux01 root]# touch prova.txt Creare una directory Per creare una nuova directory si utilizza mkdir, utilizzando come unico argomento il nome del percorso della nuova directory. I nomi delle directory seguono le stesse convenzioni adottate per altri file e di conseguenza è sconsigliato l’utilizzo di spazi, barre o altri caratteri insoliti. Esempio: [root@linux01 root]# mkdir /tmp/work
  • 51. 51 Cambiare la directory corrente Come in Dos, si utilizza il comando cd per cambiare la directory di lavoro corrente fornendo come argomento il nome della nuova directory. Esempio: [root@linux01 root]# cd work Per tornare alla directory superiore: [root@linux01 root]# cd.. Ottenere il nome della directory corrente Per determinare qual è la directory di lavoro corrente si utilizza pwd, che ne visualizza il nome di percorso completo. Visualizzare il contenuto delle directory ls è lo strumento che si usa per visualizzare ciò che c’è dentro una directory. Si può utilizzare senza argomenti, in tal caso viene visualizzato l’intero contenuto della directory corrente, oppure si può indicare il nome di una directory (per vederne il contenuto) o di un file, per sapere se tale file è presente nella directory attuale. ls ha molte opzioni di visualizzazione, tutte elencata all’interno della documentazione elettronica presente nel sistema operativo. I principali switch disponibili, da indicare al prompt appena dopo il comando ls sono: --color Attribuisce un colore ai nomi dei file a seconda del loro tipo -R Produce una visualizzazione ricorsiva delle sottodirectory -a Visualizza tutti i file in una directory, compresi i file nascosti, o “dot” -s Mostra a video la dimensione di ciascun file in KByte -l Visualizza le dimensioni e gli attributi dei file Midnight Commander Le operazioni sui file che abbiamo descritto e molte altre ancora possono essere svolte molto più comodamente con uno strumento quasi sempre fornito a corredo del sistema operativo: Midnight Commander. Midnight Commander (che si richiama attraverso il comando mc) visualizza contemporaneamente due directory e permette di compiere tra le altre cose operazioni di copia e spostamento dei file, gestione delle cartelle. 2.3. Lavorare con i file Linux è da sempre un sistema operativo multiutente. Il sistema utilizzato per proteggere la privacy di ciascun utente è quello dei privilegi d’accesso, che consiste nello specificare per ogni file e directory diversi permessi per ciascun utente o gruppo d’utenti. Ogni file dispone di permessi che specificano il tipo d’accesso degli utenti. Esistono tre tipi di permessi: lettura, scrittura ed esecuzione.
  • 52. 52 Di solito gli utenti dispongono di permessi di scrittura su file contenuti nelle loro directory home. Solo l’utente root gode del permesso di scrittura sui file contenuti in directory importanti, come /bin ed /etc, e i normali utenti non devono in linea di massima avere timore di modificare o cancellare per errore un importante file di sistema. I permessi funzionano in maniera diversa per le directory rispetto ai file. Se si dispone del permesso di lettura ma non del permesso d’esecuzione su una directory, è possibile solo leggere i nomi dei file contenuti in detta directory, ma non leggere altri attributi, esaminarne il contenuto, modificarli o eseguirli. Con il permesso d’esecuzione, ma senza il permesso di lettura su una directory, si può leggere, modificare o eseguire qualsiasi file contenuto nella directory a condizione di conoscerne il nome e di godere dei permessi appropriati su detto file. Ogni file dispone di permessi separati per tre categorie d’utenti: l’utente che possiede il file, il gruppo a cui appartiene l’utente che possiede il file e il resto degli utenti presenti sul sistema. Quando si crea un nuovo file, questo ha una serie di permessi predefinita: generalmente, di lettura e scrittura per l’utente e di lettura per il gruppo e tutti gli altri utenti. Visualizzare i permessi di un file Per visualizzare i permessi d’accesso ad un file si utilizza ls con l’opzione “-l”. Esempio: [root@linux01 root]# ls –l cruise -rwxrwx-r-- 1 captain crew 8,420 Jan 12 21:42 cruise Il primo carattere (“-“) è il tipo di file; gli altri tre caratteri specificano I permessi per l’utente che possiede il file(“rwx”), gli altri tre (“rw-“) specificano I permessi per tutti I membri del gruppo che possiede il file ad esclusione dell’utente che lo possiede. Gli ultimi tre caratteri della colonna (“r--) specificano i permessi per gli utenti sul sistema. Tutte e tre le sezioni relative ai permessi hanno lo stesso formato ed indicano da sinistra a destra il permesso di lettura, scrittura ed esecuzione. Un trattino (“-“) al posto di una di queste lettere indica che il permesso non è accordato. Modificare i permessi di un file Per modificare la modalità d’accesso di qualsiasi file si utilizza lo strumento chmod. Questo strumento si usa specificando prima quali siano i permessi da concedere o revocare per determinati utenti, e quindi i nomi dei file su cui lavorare. In primo luogo vanno specificate le categorie d’utenti da includere utilizzando una combinazione dei seguenti caratteri. Carattere Categoria u Utente che possiede il file g Tutti gli altri membri del gruppo che possiede il file o Tutti gli altri utenti presenti sul sistema a Tutti gli altri utenti sul sistema; equivale a “ugo” Bisogna aggiungere l’operatore che indica l’azione da eseguire.
  • 53. 53 Operazione Azione + Aggiunge permessi ai permessi esistenti dell’utente - Rimuove permessi dai permessi esistenti dell’utente Infine specificare i permessi Carattere Permesso r Imposta il permesso di lettura w Imposta il permesso di scrittura x Imposta il permesso d’esecuzione > Trovare i file Una volta imparato a gestire file e cartelle è opportuno dare anche qualche indicazione su com’effettuare ricerche all’interno del file system. Oltre al comando ls, ci sono infatti altri strumenti per la ricerca dei file su disco. Il metodo più semplice per trovare il file è lo strumento locate di GNU. Si utilizza locate per visualizzare tutti i file sul sistema il cui nome del percorso completo corrisponde ad un particolare modello. locate visualizza un elenco di tutti i file sul sistema che corrispondono al modello e fornisce il loro percorso completo. Quando si specifica un modello, è possibile utilizzare anche i caratteri jolly “?” (che indica un carattere qualsiasi) e “*” (che indica un qualunque gruppo di caratteri). Un comando più elaborato per la ricerca di file e directory è find. Allo strumento find bisogna prima indicare la directory in cui iniziare a cercare i documenti, poi i criteri di ricerca, che vanno al di là del semplice nome del file da trovare. Opzioni del comando find -name abc cerca tutti i file con il teso abc all’interno del nome, senza fare distinzione tra lettere maiuscole e minuscole -size 123k cerca tutti i file dalle dimensioni di 123KByte; se s’inserisce un segno “+” o un segno “-“ prima del numero vengono individuati i file di dimensioni maggiori o minori di quella specificata -mmin 123 cerca tutti i file modificati da esattamente 123 minuti; se s’inserisce un segno “+” o un segno “-“ prima del numero vengono individuati i file modificati da un periodo di tempo superiore o inferiore di quello specificato -mtime 123 cerca tutti i file modificati da esattamente 123 giorni; se s’inserisce un segno “+” o un segno “-“ prima del numero vengono individuati i file modificati da un periodo di tempo superiore o inferiore di quello specificato -empty cerca tutti i file vuoti -newer abc cerca solo i file modificati più recentemente rispetto al file abc -user pippo cerca tutti i file appartenenti all’utente pippo -group pluto cerca tutti i file appartenenti ai membri del gruppo pluto -exec cmd esegue in modo automatico l’istruzione cmd sui file individuati
  • 54. 54 Altro strumento rilevante nella ricerca dei file è which, che serve ad individuare con certezza la posizione di applicazioni e strumenti. > Analisi del testo Tra gli strumenti disponibili in ogni distribuzione Linux ci sono alcuni piccoli tool per l’analisi del testo. Si tratta di strumenti dalle dimensioni ridottissime e dalle funzioni ben definite, di per sé non particolarmente potenti ma in grado di fornire, se usati in combinazione, risultati eccellenti. Leggere un testo [root@linux01 root]# cat articolo.txt Questa riga di comando fa in modo che ciò che è contenuto nel file articolo.txt venga mostrato sullo schermo. Se il testo è troppo lungo per rientrare nel video del pc, cat non prevede la possibilità di visualizzare il testo una schermata alla volta. Per questo è spesso necessario utilizzarlo in congiunzione con il comando less, che permette all’utente di navigare all’interno dell’output di un comando come cat, spostandosi in avanti e all’indietro con i tasti direzionali. Oppure andando avanti di una schermata alla volta premendo la barra spaziatrice. Altri comandi utili possono essere q (per uscire) e la ricerca di un pattern di testo che si effettua con il simbolo “/”. Ad esempio se si vuol cercare la parola “computer” in un testo visualizzato con less bisogna digitare: /computer. Contare il testo Per contare il numero di caratteri, parole o righe presenti in un testo, sotto Linux c’è lo strumento wc. Per visualizzare il numero di righe, parole e caratteri nel file outline.txt, basta digitare: [root@linux01 root]# wc outline Utilizzando wc bisogna indicare come argomento il nome del file da analizzare, di cui vengono così riportate in tre colonne separate i conteggi per le righe, le parole ed i caratteri presenti. Le principali opzioni di wc sono: -c specifica che deve essere contato e visualizzato solo il numero dei caratteri del file -w specifica che deve essere contato e visualizzato solo il numero delle parole del file -l specifica che deve essere contato e visualizzato solo il numero delle righe del file Cercare una stringa di testo Per cercare ad esempio la parola “pollo” nel file ricette.doc: [root@linux01 root]# grep pollo ricette.doc L’output del comando consiste nelle righe in cui il testo cercato viene individuato.
  • 55. 55 Ancor più di altri strumenti, grep dimostra la sua potenza se utilizzato in congiunzione con più comandi: sfruttando il già citato meccanismo della ridirezione di input ed output si può sfruttare grep in molte situazioni. Modificare le password Per modificare la propria password bisogna utilizzare lo strumento passwd. Questo chiede di indicare la password corrente (per essere sicuro di trovarsi di fronte all’utente giusto) e quindi la nuova password che s’intende usare. Per motivi di sicurezza, né la password vecchia né quella nuova vengono visualizzate sullo schermo. Per garantire che la nuova password sia stata scritta correttamente, passwd chiede di immettere la nuova password due volte. Se questa non viene digitata nello stesso modo entrambe le volte, passwd non effettua il cambiamento. Esempio: [root@linux01 root]# passwd Changing password for kurt Old password: [vecchia password] Enter the new password (minimum of 5, maximum of 8 characters) Please use a combination of upper and lower case letters and numbers. New password: [nuova password] Re-enter new password: [ridigitare nuova password] Password changed Le password possono comprendere caratteri sia maiuscoli sia minuscoli, le cifre da 0 a 9 e simboli di punteggiatura; inoltre dovrebbero avere una lunghezza compresa tra cinque ed otto caratteri. 2.4. Gestione dei dischi In un sistema Linux sono previsti due tipi di memorizzazione su disco: fissa e rimovibile. La prima fa riferimento ad un disco permanente collegato al sistema e non prevede alcuna rimozione casuale. La seconda categoria di dispositivi di memorizzazione su disco è quella dei dischi rimovibili, di cui cioè si prevede l’estrazione per l’archiviazione od il trasferimento in un altro sistema. Nei sistemi Linux, i dischi vengono impiegati dopo essere stati montati in una directory, che rende disponibili i contenuti dell’albero delle directory del disco in quel determinato mount point. Questo vuol dire che tutti i dischi appartengono alla medesima struttura logica di directory, e non esiste il concetto di unità così come invece accade nel mondo Dos/Windows. I dischi possono essere montati in qualsiasi directory del sistema, ma qualsiasi divisione tra dischi è trasparente: così, un sistema che possiede, oltre al disco del file di sistema principale montato in /, anche diversi dischi rigidi separati per l’albero delle sottodirectory /home, /usr e /usr/local, agli occhi dell’utente questo non risulterà differente dai sistemi che hanno un unico disco fisso. Gli amministratori del sistema spesso montano lettori a capacità elevata su alberi delle directory che siano in grado di contenere molti dati e, per motivi di sicurezza, spesso si servono di diversi dischi