Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
I testi seguenti sono di proprietà dei rispettivi autori che ringraziamo per l'opportunità che ci danno di far conoscere gratuitamente a studenti , docenti e agli utenti del
web i loro testi per sole finalità illustrative didattiche e scientifiche.
di Alessandro De Rinaldis
Prefazione
Lo ragione principale per cui mi sono deciso a scrivere un manuale del “perfetto” sistemista LINUX e’ quella di mettere un poco di ordine nella mia mente contorta. Il
problema è noto e comune alla maggior parte dei sistemisti di ogni parte del mondo: quando si affronta un problema e, dopo una dura lotta, si riesce a risolvere,
subentra nel sistemista “vincente” una sorta di beatitudine e di autoincensazione che porta a rilassarsi ed a dimenticare di appuntarsi da qualche parte le modalità che
hanno portato alla risoluzione del problema, fidandosi della propria “memoria di elefante”. Pertanto dopo qualche tempo, il problema e la relativaa soluzione vengono
completamente digeriti e dimenticati, e questo porta, alla successiva riproposizione dello stesso problema ad un nuovo “sputamento di sangue”.
Per fare un esempio a dir poco banale, ogni volta che ho dovuto installare una distribuzione LINUX RED HAT, mi sono trovato di fronte al solito problema di non poter
fare TELNET al sistema LINUX da un pc in rete con esso: ogni volta ho dovuto penare per mezza giornata a “ritrovare la soluzione” (che banalmente consiste
nell’aggiungere gli PSEUDOTTY al file /etc/securettys oppure nel cancellare il file /etc/securettys per avere la massima connettività remota), ed ogni volta non mi sono
appuntato da qualche parte la medesima soluzione.
Pertanto in questo libro, troverete oltre a tutto quanto serve ad installare e configurare un sistema LINUX, anche una corposa documentazione riguardante gli eventuali
problemi di installazione del sistema e dei prodotti.
Questo libro, comunque è rivolto oltre a chi ha già dimestichezza con questo ottimo sistema operativo, anche a chi desidera avvicinarsi a Linux senza conoscerlo
assolutamente. Pertanto il linguaggio che userò nel prosieguo del manuale sarà il più possibile semplice, e le descrizioni cercheranno di essere particolarmente esaustive.
Se siete pronti, allacciate le cinture e buona lettura !!!
1 di 21 30/08/2013 12:17
Manuale del sistemista Linux http://www.larapedia.com/informatica_linux/manuale_del_sistemista_...
gratuito ???
Nel prossimo capitolo vedremo in dettaglio le differenze sostanziali tra un sistema Linux ed il mondo Microsoft, mentre nel capitolo 4 analizzeremo la disponibilità di
pacchetti applicativi, utility etc... presenti su piattaforma Linux.
Linux è un sistema UNIX, e come tale presenta in generale i pregi ed i difetti tipici di tali sistemi; a fronte di una proverbiale robustezza e sicurezza, presenta una
gestione non propriamente “user friendly” (rivolta in maniera “amichevole” all’utente); pertanto di norma effettuare delle operazioni di configurazione del sistema
operativo o di alcune sue parti (p.es. la configurazione di rete) non è sicuramente semplicissimo, come può essere nel mondo Microsoft, ma necessita di una conoscenza
abbastanza dettagliata del sistema operativo e dei vari file di configurazione.
A dire il vero, con le attuali distribuzioni di Linux, il gap di semplicità che separava tale sistema operativo dal mondo Microsoft si è notevolmente ridotto, poichè adesso le
distribuzioni Linux arrivano “guarnite” con una montagna di utility grafiche (le cosiddette applicazioni “X”) che aiutano non poco l’utente inesperto nella configurazione
del sistema operativo, a partire dalla definizione degli utenti, della rete, dell’accesso remoto, etc.). E’ indubbio però che, nonostante tali sforzi, un utente inesperto si
trovi disorientato di fronte ad un sistema che parte con una interfaccia a carattere, e che deve essere configurato in maniera opportuna affinchè, per esempio, possa far
partire l’X Server (la cosiddetta interfaccia grafica X-Windows).
D’altro canto Linux presenta tutta una serie di enormi vantaggi rispetto ai sistemi operativi di casa Microsoft, che giustificano l’attuale boom di installazioni nel mondo e
l’enorme interesse che esso attualmente sta destando anche in compagnie notoriamente “conservatrici”, come per esempio i colossi IBM, Oracle ed Informix.
Vediamo allora più in dettaglio le differenze ed i vantaggi che un sistema Linux possiede rispetto ad un sistema Windows NT.
Il confronto è fatto con un sistema Windows NT, poichè ambedue i sistemi operativi si collocano nella cosiddetta fascia dei “sistemi operativi dipartimentali” con spiccate
funzionalità di rete. Il confronto non viene quindi fatto con il sistema più popolare di casa Microsoft, Windows 95 (adesso diventato il “famigerato” Windows 98, o come
lo chiamano i denigratori, Winbug 98, a causa dei suoi numerosi “buchi”), poichè tale sistema non offre alcuna funzionalità di sicurezza o di multiutenza, come di server
di rete o di multitasking “reale”, e d’altrocanto offre, proprio per le sue limitate caratteristiche una velocità maggiore (a parità di hardware) rispetto a Linux o a maggior
ragione a Windows NT.
Come si vede ad occhio, la tabella, lungi dall'essere esaustiva, mette in luce gli aspetti peculiari dei due sistemi operativi; da un lato Linux, gratuito, efficiente, stabile,
molto completo per quanto riguarda la parte di sviluppo e quella di server rivolto al mondo Internet, con una ottima disponibilità di applicazioni, sia gratuite che a
pagamento, ma che non supporta completamente l'hardware presente oggi sul mercato (specialmente le ultime novità) con una configurabilità ed una interfaccia
amichevole buone ma non ottime: dall'altro lato Windows NT, sicuramente più facile da configurare e con un approccio "user friendly" che è di fatto il punto di forza dei
sistemi operativi di casa Microsoft, ma nello stesso tempo molto più "mangiatore di risorse" con scarse attitudini alla rete in generale ed a Internet in particolare (a meno
di integrare il sistema operativo base con option pack, BackOffice e via dicendo) e con nessun tool di sviluppo disponibile di base.
2 di 21 30/08/2013 12:17
Manuale del sistemista Linux http://www.larapedia.com/informatica_linux/manuale_del_sistemista_...
Tutto il software non commerciale che viene sviluppato per Linux è normalmente proposto con licenza Open Source: tale licenza permette di modificare a piacere il
codice sorgente (sempre allegato all'applicazione) con l'unica limitazione che una volta modificato esso debba essere reso disponibile su Internet alla comunità
internazionale.
A tale tipo di licenza hanno cominciato ad aderire anche grosse “Corporations”, come per esempio Netscape, la quale alla mezzanotte del 31 marzo 1998 ha reso
disponibile il codice sorgente del suo famosissimo browser internet “Communicator”. In questo modo chiunque può modificare a proprio piacimento le applicazioni Open
Source contribuendo in definitiva a migliorare i prodotti e determinando anche una notevole cooperazione tra gruppi differenti per lo sviluppo di una certa applicazione.
Tornando alle applicazioni disponibili per Linux, nella seguente tabella riassumiamo quelle più importanti rimandando per un elenco esaustivo ad alcuni siti internet
come il bellissimo http://www.linuxapps.com oppure come http://www.conecta.it o http://www.boutell.com
Una volta creato il dischetto di boot, è opportuno (ma non necessario) effettuare il boot da dischetto ed eseguire l'utility fips; tale utility come prima cosa chiede di
effettuare un salvataggio della tabella delle partizioni (partition table) onde preservarsi da eventuali problemi: infatti la presenza sul dischetto del programma restorrb è
fondamentale proprio per effettuare, in caso di problemi, il ripristino della partition table allo stato originario.
Dopo che la partition table è stata salvata, fips propone la suddivisione dell'hard disk in due partizioni: la dimensione delle due partizioni può essere modificata in modo
da arrivare ad un dimensionamento sufficiente. Nel nostro caso agiremo sulle freccette della tastiera in maniera da impostare la nuova partizione ad una dimensione di
1.3 GB.
Fips mostrerà un messaggio di questo tipo:
<old partition> : 3GB <new partition> : 1.3GB
Una volta dimensionata in maniera opportuna la nuova partizione faremo scrivere a fips la nuova partition table.
A questo punto facendo ripartire la macchina ed eseguendo fdisk dovremmo notare, se tutto è andato bene, due partizioni:
3 di 21 30/08/2013 12:17
Manuale del sistemista Linux http://www.larapedia.com/informatica_linux/manuale_del_sistemista_...
Normalmente da un paio d'anni a questa parte i bios dei p.c. Permettono di specificare tra i dispositivi di boot anche il lettore cd-rom; se questo fosse il caso del vostro
p.c., tutto quello che dovete fare per effettuare il boot Linux necessario ad iniziare l'installazione, è inserire il cd-rom nel lettore ed accendere il computer.
In questa trattazione, comunque, partiremo dall'ipotesi che il bios del nostro p.c. non sia così evoluto da permettere il boot da cd-rom; in questo caso si renderà
necessario creare il set di dischetti di boot di Linux.
Ho parlato di set di dischetti di boot: in realtà per installare Linux su una macchina che dispone di lettore cd non bootable è necessario solo un dischetto; comunque è
utile sapere che l'installazione di Linux è possibile anche da hard-disk (partizione Dos-Windows) da rete, tramite protocollo FTP, protocollo NFS, oppure collegandosi ad
un server SAMBA (in pratica qualunque macchina con sistema operativo Microsoft) . Tali modalità di installazione richiedono la creazione di un secondo dischetto,
chiamato Supplementary Disk; esiste inoltre anche un terzo dischetto chiamato Rescue Disk (letteralmente disco di sopravvivenza) che permette in caso di grossi
problemi, la ripartenza del sistema operativo in una modalità simile alla modalità provvisoria di Windows 98.
Pertanto è opportuno creare il set di dischetti completo: per fare ciò esiste nella directory \Redhat\dosutils (per intenderci la stessa che contiene i moduli fips e
restorrb) l'utility rawrite.
Per creare i dischetti di boot, supplementary e rescue procedere come segue:
1. eseguire rawrite.exe
2. alla richiesta del file di cui fare l'immagine sul dischetto digitare nei singoli tre casi: d:\redhat\images\boot.img,
d:\redhat\images\supp.img, d:\redhat\images\rescue.img dove d:\ abbiamo supposto essere l'unità logica del
cd-rom
In questo modo l'utility rawrite creerà il set di tre dischetti di Linux Red Hat.
Bene, siamo finalmente pronti per iniziare la installazione vera e propria di Linux.
4 di 21 30/08/2013 12:17
Manuale del sistemista Linux http://www.larapedia.com/informatica_linux/manuale_del_sistemista_...
1. digitare t;
2. alla risposta Partition number (1-4): digitare nel nostro caso "3";
3. fdisk risponde con il seguente messaggio: Hex code (type L to list codes): digitare "L";
4. fdisk ci mostra a questo punto l'elenco dei filesystem supportati con i codici esadecimali corrispondenti:
0 Empty a OS/2 Boot Manag 65 Novell Netware a6 OpenBSD
1 DOS 12-bit FAT b Win95 FAT32 75 PC/IX a7 NEXTSTEP
2 XENIX root c Win95 FAT32 (LB 80 Old MINIX b7 BSDI fs
3 XENIX usr e Win95 FAT16 (LB 81 Linux/MINIX b8 BSDI swap
4 DOS 16-bit <32M f Win95 Extended 82 Linux swap c7 Syrinx
5 Extended 40 Venix 80286 83 Linux native db CP/M
6 DOS 16-bit >=32 51 Novell? 85 Linux extended e1 DOS access
7 OS/2 HPFS 52 Microport 93 Amoeba e3 DOS R/O
8 AIX 63 GNU HURD 94 Amoeba BBT f2 DOS secondary
9 AIX bootable 64 Novell Netware a5 BSD/386 ff BBT
1. Come si può notare la partizione Linux di swap (l'area di swap) ha un codice esadecimale "82": pertanto alla domanda
di fdisk Hex code (type L to list codes): si deve rispondere con "82";
Bene a questo punto la nostra partition table dovrebbe essere più o meno così:
Device Boot Start End Blocks Id System
/dev/hda1 * 1 305 614848+ 6 DOS 16-bit >=32M
/dev/hda2 306 750 1200000 83 Linux native
/dev/hda3 751 782 100000 82 Linux swap
1. Possiamo a questo punto arrivare all'atto conclusivo dell'operazione di creazione del filesystem e dell'area di swap: la
scrittura effettiva su disco della nuova partition table: pertanto digitiamo "w" e fdisk scriverà sul disco la nuova partition
table.
Dopo di ciò il controllo ritorna al programma di installazione di RedHat: esso ci chiederà in rapida successione di formattare l'area di swap, di formattare lo spazio disco
riservato al nuovo filesystem Linux, nonché di specificare i punti di mount dei filesystems. E qui arriviamo ad un concetto del tutto nuovo per i neofiti di Unix in generale
e di Linux in particolare: quello del punto di mount.
Il punto di mount in Unix rappresenta il collegamento tra una directory ed un dispositivo fisico: per esempio un disco rigido, una unità floppy, oppure anche un
filesystem di un'altra macchina (Unix e non). I dispositivi fisici in Unix vengono rappresentati dai cosiddetti special files: essi sono, per l'appunto dei file speciali non
editabili, che vengono utilizzati dal sistema operativo per identificare i componenti hardware della macchina. Per esempio le unità disco IDE vengono normalmente
identificate con gli special files /dev/hda1, /dev/hda2, etc mentre per quanto riguarda le unità floppy gli special files normalmente sono del tipo /dev/fd0,
5 di 21 30/08/2013 12:17
Manuale del sistemista Linux http://www.larapedia.com/informatica_linux/manuale_del_sistemista_...
Inoltre tutto ciò che riguarda lo sviluppo e la compilazione di applicazioni (in modo particolare tutto ciò che riguarda il "c/c++ language"), deve per forza essere
installato anche se la macchina non sarà destinata come macchina di sviluppo di applicazioni; ciò si rende necessario poiché la maggior parte delle applicazioni Linux
disponibili su Internet come nei CD-ROM allegati nelle riviste di informatica vengono distribuite in forma di codice sorgente (per assicurare la portabilità sulla maggior
parte delle piattaforme Unix presenti). Inoltre anche la ricompilazione del kernel di Linux (operazione che, come vedremo nel seguito, si rende necessaria nella maggior
parte delle installazioni per far funzionare alcuni dispositivi hardware come schede audio, schede scsi, schede radio/tv) necessita dell'ambiente di sviluppo e di
compilazione del "c", poiché Linux come tutti gli altri sistemi Unix, è scritto quasi completamente in "c".
Nel precedente capoverso abbiamo introdotto alcune parole misteriose per i neofiti dei sistemi operativi Unix: Samba, NFS, kernel... Non ci preoccupiamo per il momento
di questi concetti, questi come tanti altri verranno ampiamente sviluppati nel prosieguo del libro. D'altronde l'idea di scrivere un libro del genere mi è venuto anche allo
scopo di far avvicinare il maggior numero di persone a questo bellissimo sistema operativo ed insegnare loro ad utilizzarlo.
Pertanto una volta finita l'installazione di Red Hat, prima di cominciare ad usare, configurare ed ottimizare Linux, e prima di iniziare ad installare le applicazioni di punta,
nel manuale verrà fatto un minicorso Unix con cenni all'architettura del sistema operativo, alla gestione dei file, degli utenti, nonché una descrizione dei comandi
fondamentali e un mini-mini corso sul "vi", l'editor Unix per definizione, particolarmente ostico per chi inizia ad utilizzarlo, ma particolarmente potente una volta
appreso.
Tornando ai pacchetti da installare, se il nostro p.c. dispone di scheda audio e di cd-rom è opportuno installare il set di applicazioni che nella installazione Linux viene
definita come "multimedia machine"; inoltre sono pacchetti importanti quella che riguardano lo sviluppo di applicazioni "X" (l'ambiente grafico).
In ambito Unix, normalmente si lavora per la maggior parte del tempo in modalità "linea di comando" esattamente la stessa modalità del DOS nativo.
Con questa modalità si sfruttano comunque tutte le caratteristiche di interattività, multitasking, robustezza e velocità di questo sistema operativo.
Comunque lavorando in modalità linea di comando, vi sono anche degli aspetti negativi che si acuiscono particolarmente per coloro che sono meno esperti di Unix.
Tanto per fare un esempio ormai inflazionato anche all'interno di questo libro, l'editor principe di Unix è il vi; esso è molto più potente, per esempio, del comando edit
del DOS, oppure del Notepad di Windows, ma presente una enorme difficoltà iniziale per digerirne i comandi, anche quelli principali e più semplici (una volta installato
Linux, provate a fare il comando "man vi"; vi verranno sparate una cinquantina di pagine di manuale Unix su questo editor.
Ecco quindi che dopo alcuni anni è sorta la necessità di creare un ambiente operativo con una interfaccia più amichevole: è quindi nato l'ambiente "X Windows", o più
semplicemente "X" che propone una interfaccia grafica simile a quella di sistema operativi come MAC-OS, OS/2 e MS-Windows (l'ordine di declamazione è
rigorosamente cronologico, poiché come molti non sanno e come succede sempre per ogni prodotto, la Microsoft non crea i suoi prodotti, ma li copia rigorosamente
dalle idee delle altre società !
I giochi li possiamo anche installare, ma non aspettatevi molto di più dei classici Tetris, Pacman Majhong e Minesweeper, oltre ai solitari: come già detto in precedenza,
Linux è un sistema operativo che ancora non presenta, una offerta di giochi simile a quella presente su altri sistemi operativi, Microsoft su tutti: comunque qualcosa si
sta iniziando a muovere.
Avrete sicuramente notato che molte categorie di applicazioni sono presenti sia in ambiente console (quindi essenzialmente in modalità testo) che in ambiente "X": io vi
consiglio di installare entrambi, poiché se è vero che le applicazioni in ambiente grafico sono più facili da usare, è anche vero che alcune di esse si appoggiano
comunque sulle loro equivalenti in modalità testo, che tra l'altro offrono una maggiore velocità di esecuzione ed un maggior controllo di tutti i parametri opzionali.
Bene, ricapitolando, installeremo i seguenti tools:
1. printer support
2. X Windows System
3. Mail/WWW/News tools
4. DOS/Win Connectivity
5. File Managers
6. Graphics manipulations
7. X Games
6 di 21 30/08/2013 12:17
Manuale del sistemista Linux http://www.larapedia.com/informatica_linux/manuale_del_sistemista_...
8. X Multimedia Support
9. Console Multimedia
10. Networked Workstation
11. Dialup Workstation
12. Nfs Server
13. SMB Connectivity
14. Anonymous FTP
15. Web Server
16. Networked management Workstation
17. C Development
18. Development Libraries
19. X Development
20. C++ Development
A questo punto comincia finalmente l'installazione vera e propria della distribuzione.
Non pensate che il processo di installazione dei pacchetti sia una cosa terribilmente lunga: niente a che vedere con le installazioni di Windows 95/98 o NT ! Con i
pacchetti scelti vengono installati più o meno 300MB di software che vengono letteralmente "sparati" sul vostro hard disk alla velocità della luce ! L'intero processo di
installazione dei pacchetti dura, su una macchina pentium 166MHz (quindi neanche tanto veloce !) meno di 10 minuti.
Si vedono comparire sul monitor tutti i pacchetti che vengono installati: comunque, per non farsi venire il mal di testa alla fine della installazione è possibile conoscere
con dettaglio la lista dell applicazioni installate, poiché durante l'installazione viene creato un file di log chiamato guarda caso install.log nella directory /tmp.
Finita l'installazione dei pacchetti il sistema riconosce automaticamente la presenza del mouse, e chiede se si voglionio emulare i 3 bottoni: rispondiamo di si, poiché tale
opzione a volte è utile.
Successivamente arriviamo ad un altro punto spinoso: quello della configurazione della scheda video. Tale configurazione è di fondamentale importanza, poiché senza di
essa non sarà possibile far partire l'interfaccia grafica (l'X Server, come già accennato), oppure tale interfaccia partirà con funzionalità limitate (per esempio in VGA a 16
colori).
Nella maggior parte dei casi la scheda grafica viene riconosciuta correttamente da RedHat e di conseguenza viene installato il pacchetto di X Server corrispondente. Per
esempio, sul mio glorioso P.C. (Cyirix 166+, 32 MB RAM etc... praticamente già superato da due anni !) è presente una scheda grafica S3 Trio 64V+, immediatamente
riconosciuta e automaticamente configurata. Comunque in alcuni casi, specialmente per schede grafiche recentissime, può succedere che l'installazione non riesca ad
effettuare il riconoscimento, oppure riconosca la vostra scheda come fosse un'altra: in questo caso, onde evitare un probabile crash del sistema con conseguente fine
anormale della procedura di installazione del sistema operativo e buttata a mare di almeno un'ora di lavoro (poiché in questo caso bisogna ricominciare tutto da capo !)
è opportuno "skippare" l'installazione dell'X Server e studiare successivamente il problema. Nel libro viene dedicato un capitolo intero alla risoluzione di questo problema.
Nel nostro caso ipotizziamo di essere tra i fortunati la cui scheda grafica viene immediatamente riconosciuta in maniera corretta dalla procedura di installazione.
In questo caso, viene installato l'X server corrispondente, dopodichè vengono proposte delle configurazioni automatiche (la cosiddetta modalità "probe") relativamente
alla frequenza del monitor ed alla risoluzione/risoluzioni proposte. In questa fase decidiamo di far fare tutto in maniera automatica; eventualmente se, in un secondo
tempo non siamo soddisfatti del risultato ottenuto, potremo sempre modificare a piacere la configurazione grafica del sistema utilizzando la apposita utility chiamata
Xconfigurator.
Dopo la configurazione della scheda grafica, arriva il momento di configurare la rete (il "network" per dirla all'inglese): tale operazione nella maggior parte delle
installazioni per così dire "casalinghe" non è ovviamente necessaria, ma risulta essere fondamentale quando la nostra nuova macchina Linux debba essere inserita in
una relatà di rete locale/geografica. Questa realtà è quella che normalmente si trova in qualunque ufficio di piccole/medie/grandi dimensioni in qualunque angolo del
pianeta, ed è anche quella che abbiamo ipotizzato nel nostro esempio di partenza; pertanto anche nel nostro esempio configureremo la rete.
Quando si parla di configurare la rete durante una installazione Linux, quello che in realtà viene configurato è il protocollo noto come TCP/IP: questa sigla dovrebbe
ormai essere conosciuta alla stragrande maggioranza dei lettori, anche quelli quasi completamente a digiuno di nozioni di informatica, poiché con essa viene identificato
il protocollo di comunicazione della madre di tuttel le reti, cioè INTERNET. Senza entrare nel dettaglio di comprendere il meccanismo di funzionamento di tale
protocollo, ed i pro ed i contro che lo contraddistinguono, possiamo dire che esso è oramai lo standard di fatto delle reti geografiche (intendendo per rete geografica
una serie di reti locali distanti interconnesse tra di loro tramite opportune apparecchiature ed opportune linee di trasmissione). Configurando il protocollo TCP/IP sulla
nostra macchina, potremmo quindi connettere essa sia alla nostra rete locale aziendale che alle reti geografiche in generale ed ad INTERNET in particolare.
Ovviamente nel caso di una macchina colegata ad INTERNET solamente tramite un modem, la configurazione di rete non deve essere fatta, ma deve comunque essere
configurata la componente su linea seriale del protocollo TCP/IP, il cosiddetto PPP (Point to Point Protocol). La configurazione del modem e del protocollo PPP sarà
argomento di un successivo capitolo in cui verrà spiegato il meccanismo di connessione ad INTERNET tramite un provider.
L'installazione di Red Hat ci chiede a questo punto informazioni relative al nostro I.P. Address (statico o tramite DHCP o BOOTP), e, nel caso di indirizzo statico al
Netmask (la maschera di sottorete) al default Gateway, ai DNS (Domain Name Server) primari e secondari etc. Tutte queste informazioni normalmente in una
azienda devono essere richieste all'amministratore della rete. Per quanto rigurada la scheda di rete, essa normalmente viene riconosciuta in modo automatico una volta
che essa sia stata selezionata da quelle supportate di base dalla installazione di Red Hat; nel caso in cui la vostra scheda di rete non sia tra quelle supportate, oppure
pur essendo supportata non venga riconosciuta per qualche misterioso motivo, il problema può comunque essere risolto successivamente tramite ricompilazione del
kernel di Linux inglobando gli eventuali driver della scheda.
Proprio ultimamente, per lavoro, ho installato una macchina Linux con funzionalità di firewall (cioè con funzionalità di connessione controllata tra due reti) che aveva
due schede di rete che di default non venivano riconosciute dalla installazione di Red Hat. Una volta installato il sistema operativo, è bastato ricompilare in maniera
opportuna il kernel, includendo in esso i driver delle due schede di rete, è tutto è andato a posto.
Per inciso, la macchina che ho installata come firewall, è un vecchissimo 486 DX 50 con soli 8 MB di RAM e 370 MB di hard-disk; i firewall utilizzati sono TIS e
IPFWADM, che tra l'altro è una funzionalità integrabile nel Kernel di Linux. Il tutto ovviamente a costo zero, visto anche la vetustà dell'hardware.
Per ottenere la stessa funzionalità in ambiente Microsoft avrei dovuto spendere oltre 10 milioni di lire (più o meno 5000 EURO) per l'acquisto di una hardware adeguato,
del sistema operativo WINDOWS NT SERVER, nonché di un prodotto Firewall opportuno (i quali sono carissimi).
Un'altra dimostrazione della enorme superiorità di Linux rispetto a WINDOWS NT !!
Bene, siamo arrivati quasi alla fine della nostra installazione: ci restano da impostare poche altre cose tra cui l'orologio sul nostro fuso orario (selezionate "Europe/Rome"
senza selezionare il settaggio dell'orologio hardware del p.c. !). Subito dopo ci vengono proposti i processi di sistema da far partire al boot della macchina.
Tali processi sono delle applicazioni di servizio tipicamente UNIX che permettono al sistema operativo di fornire tutta una serie di servizi all'utente: per esempio i
processi atd e crond permettono agli utenti di schedulare delle attività a tempo per così dire unattended cioè senza la necessità di presenza umana. Tipico esempio di
attività unattended è per esempio l'esecuzione di un File Transfer notturno, oppure un salvataggio automatico di una base dati.
7 di 21 30/08/2013 12:17
Manuale del sistemista Linux http://www.larapedia.com/informatica_linux/manuale_del_sistemista_...
Altri processi tipici sono i servizi di rete, i servizi NFS l'FTP Server, il SAMBA, il TELNET, la partenza di un Data Base Server, etc
Senza descrivere in dettaglio tutti processi possiamo dire che per il nostro esempio è opportuno fa partire tutti i processi proposti dalla installazione esclusi i seguenti:
1. atd (basta nella maggior parte delle installazioni avere solo il crond attivo)
2. pcmcia (se il p.c. È però un portatile, è necessario farlo partire)
3. sendmail (a meno che non si voglia usare la macchina come server di posta elettronica)
4. httpd (questo processo fa partire Apache il WEB Server più diffuso su INTERNET; fatelo partire se la vostra macchina
deve diventare un server INTERNET/INTRANET)
E' rimasto solo da configurare la stampante: anche qui la installazione di Red Hat dimostra una grande versatilità, poiche ci permette di configurare sia una stampante
locale (cioè fisicamente connessa al nostro p.c.) che stampanti di rete. In questo secondo ci viene offerta la possibilità di installare una stampante remota UNIX, oppure
una stampante NOVELL, o ancora una stampante SAMBA (cioè una stampante connessa ad una macchina WINDOWS con protocollo di comunicazione NETBEUI, che è
il protocollo Microsoft per eccellenza in ambito reti locali). Qui supponiamo di installare una stampante locale, e tale operazione risulta particolarmente semplice. Ci viene
richiesto anche quale driver usare; se la nostra stampante non fosse tra quelle proposte dalla installazione, è comunque possibile selezionare driver generici sia in
modalità testo che in modalità Postscript (la modalità grafica che viene usata negli ambienti UNIX).
N.B.: l'Installazione di una stampante di rete verrà trattata successivamente
Coraggio siamo arrivati agli ultimi due passi: il primo è banale poiché l'installazione ci richiede la password dell'utenza root: l'utenza root nei sistemi UNIX è l'equivalente
dell'utenza Administrator in ambiente Windows NT. In partica root è il superutente con potere di "vita e di morte" su tutto ciò che accade nel sistema e su tutti gli
utenti, per così dire "mortali" che usano il sistema.
Root è di norma l'unico utente che può effettuare lo shutdown o il reboot della macchina, oppure montare e smontare i file system.
Pertanto si capisce l'importanza di tale utenza, che di norma viene assegnata al cosidetto "amministratore del sistema", cioè il "guru" che lo ha installato e configurato.
Vista la potenza di tale utenza, è opportuno che la password di accesso non venga divulgata a tante persone, e soprattutto ad utenti non molto esperti od alle prime
armi: il rischio è quello di non vedere ripartire più la macchina Linux !!.
La password che useremo nel nostro esempio è: charlie
Dopo la password viene richiesto di creare un bootdisk, utilissimo per pararsi il fondoschiena da improvvisi malfunzionamenti della procedura di Boot (per esempio
record di boot rovinato o kernel cancellato inavverititamente).
L'utimo passo è quello della creazione del Boot Loader LILO: LILO sta per Linux Loader, ed in pratica è un piccolo programmino che faremo scrivere sul Master Boot
Record del disco rigido.
Il Master Boot Record (MBR) è un particolare settore del disco rigido che permette l'avviamento dei sistemi operativi. In esso normalmente viene scritto un
programmino che punta all partizione del disco su cui vi è il sistema operativo da caricare (p.es Windows 95/98). Tale programmino viene di norma chiamato Boot
Loader: tipico esempio di Boot Loader è il menù di partenza di Windows NT
Abbiamo visto che Linux è in grado di riconsocere sul disco rigido precedenti installazioni di DOS/Windows 95/98. Pertanto nel LILO troveremo anche una sezione
necessaria all'avviamento di tale sistema operativo. L'instazione ci propone come nomi simbolici per la partenza dei due sistemi "Linux" e "Dos". E' possibile comunque
modificare tali nomi simbolici. Durante tale fase non è possibile invece modificare il sistema operativo di default all'accensione della macchina. Pertanto al prossimo
reboot, se non verrà fatta alcuna operazione, partirà Linux e non Windows. Comunque imapareremo immediatamente nel prossimo capitolo a far partire anche Windows
ed anche a modificare l'ordine di partenza dei sistemi operativi modificando il file di configurazione di LILO.
Complimenti ! L'installazione è finita !! Possiamo adesso rimuovere il floppy e riavviare la macchina (attenzione: rimuovete il cdrom non appena la macchina ha
effettuato il reboot !!!)
Incrociate le dita e vediamo che succede !!! (Scherzo naturalmente, che volete che succeda, se siamo arrivati alla fine della installazione la partenza di Linux è garantita
"spero" !)
8 di 21 30/08/2013 12:17
Manuale del sistemista Linux http://www.larapedia.com/informatica_linux/manuale_del_sistemista_...
Come già accennato, questa sezione ha lo scopo di introdurre il neofita (il cosiddetto "newbie") nel mondo dei sistemi operativi UNIX. Chi ha dimestichezza con il DOS,
non potrà notare, andando avanti nella lettura, le somiglianze tra quest'ultimo sistema operativo e UNIX. In effetti DOS può essere considerata una copia ridotta (e mal
riuscita) di UNIX. Da esso ha ereditato la struttura a directory, la linea di comando, alcuni comandi (anche se la sintassi, come vedremo è differente) e poc'altro.
Comunque in questa sezione del libro daremo solamente dei concetti molto superficiali sul funzionamento di UNIX, nonché faremo una rapida carrellata sui comandi di
uso più comune: per eventuali approfndimenti, esistono centinaia di pubblicazioni in libreria, ed inoltre un ottimo inizio di apprendimento può essere quello di leggere le
bellissime "guide" del progetto LPD ("Linux Documentation Project"). Tali guide sono reperibili su Internet sul sito del progetto (se non ricordo male la URL è
http://www.lpd.org); inoltre esse normalmente fanno parte delle distribuzioni Linux più comuni, come la RedHat. Sono normalmente memorizzate in formato "PS" cioè
in formato "postscript": pertanto necessitano di appositi programma, il più famoso dei quali è senza dubbio ghostview, anch'esso presente su tutte le distribuzioni
Linux.
UNIX, a differenza del DOS, è un sistema operativo di tipo multiutente: ciò significa che contemporaneamente possono lavorare sulla stessa macchina un numero
praticamente illimitato di utenti (come vedremo la limitazione in effetti esiste, ed è dovuto ad alcuni parametri sia fisici della macchina, come per esempio la RAM a
disposizione, sia di configurazione, come il numero massimo di sessioni e di processi contemporaneamente aperti).
Inoltre UNIX è un sistema operativo multitasking, cioè esso permette contemporaneamente (anche se in relatà non è così) di eseguire più applicazioni (o per dirla nel
linguaggio UNIX, più processi).
La filosofia di base di Unix è quella del'utente e dei privilegi: tale filosofia, ripresa dai sistemi mainframe (tipo IBM MVS) e a sua volta ripresa da Microsoft Windows
NT, concettualmente dice che ogni "cliente" di un sistema UNIX deve essere identificato da una utenza e da una password: ad ogni utenza è associato un particolare
gruppo, il quale come dice la parola stessa è un raggruppamento di utenze simili. Ad ogni gruppo vengono infine assegnati più o meno privilegi. Più un utente ha
privilegi e più esso è potente all'interno del sistema (insomma una vera e propria scala gerarchica). Un utente debole può pertanto effettuate all'interno di un sistema
UNIX solo alcune operazioni: per esempio esso potrà solo vedere i file e le directory di sua proprietà od al massimo apparteneti al proprio gruppo, ma non potrà mai
cancellare file non suoi, oppure chiudere e riavviare il sistema, montare filesystems di sistema, etc.
In cima a questa vera e propria gerarchia " piramidale" c'è il cosiddetto "Superutente", cioè l'utenza root: questa utenza è la assoluta padrona del sistema; essa può
fare qualunque cosa, anche cancellare completamente il sistema operativo, oppure spegnere la macchina. Si capisce bene che l'utenza di root è pericolosissima, e di
norma debba essere usata solamente dall'amministrazione del sistema e dai suoi collaboratori più stretti: i danni che ne possono derivare da un uso improprio da parte
di utenti inesperti potrebbero essere incalcolabili.
Strettamente collegato al concetto di utente e di privilegio è il concetto di permesso di un file: ogni file presente sul sistema operativo è fornito di tutta una serie di
attributi, i cosiddetti permessi: tali permessi identificano il proprietario del file, il gruppo a cui esso appartiene, la possibilità da parte di altri utenti di leggere, scrivere
cancellare ed eseguire il file (nel caso quest'ultimo sia non un file di dati ma un modulo eseguibile di una qualsiasi applicazione. Esistono inoltre alcuni attributi accessori,
non meno importanti, ma che esulano da questa elementare trattazione del sistema, in quanto coinvolgono solamente file particolari come i "deamon" e i "file
speciali".
Come conseguenza a questa disanima su utenti, privilegi, file e permessi, cominciamo a vedere alcuni comandi UNIX:
ricordiamo comunque che per una descrizione ultra dettagliata di tutte le opzioni dei vari comandi UNIX, esiste un comando, che io definisco "fondamentale", che è il
comando man nomecomando. Il man non è, come accade nel DOS un help dei comandi, ma molto di più: in pratica esso è proprio il manuale di descrizione dle
comando in questione. In alcuni casi per alcuni comandi usare il man vuol dire prepararsi a scorrere qualcosa come 40 o più pagine ! Provate , per esempio, a dare il
comando "man vi" e contate le pagine che vi verranno visualizzate in sequenza ! ( a proposito: per andare avanti di pagina in pagina, è necessario premere la barra
spaziatrice).
ls: tale comando è l'equivalente DOS del "dir"; esso fa vedere l'elenco dei file presenti in una directory senza nessun'altra informazione. Inoltre con tale comando no si
vedono i cosiddetti file di sistema, quelli cioè il cui nome comincia con il carattere ".".
ls -la: come sopra, ma con in più la visualizzazione degli attributi dei file, della data e ora di ultimo aggiornamento, nonché la visualizzazione anche dei file di sistema.
Per fare un esempio, una volta entrati in Linux con l'utenza e la password di root, ci troviamo automaticamente nella directory root: digitando il comando "ls -la" ci
troveremo di fronte ad una schermata di questo genere:
-rw-r--r-- 1 root root 65 mar 22 21:37 .TWM-errors
-rw------- 1 root root 0 mar 22 21:29 .Xauthority
-rw-r--r-- 1 root root 1126 ago 23 1995 .Xdefaults
-rw------- 1 root root 10404 mar 30 22:57 .bash_history
-rw-r--r-- 1 root root 24 lug 14 1994 .bash_logout
-rw-r--r-- 1 root root 347 mar 10 11:35 .bash_profile
-rw-r--r-- 1 root root 176 ago 23 1995 .bashrc
-rw-r--r-- 1 root root 182 ott 8 01:56 .cshrc
drwx------ 4 root root 1024 gen 27 17:52 .dosemu
Gli attributi che si notano sopra sono così descrivibili: il 1° può essere "-", "l", "d" che indicano rispettivamente nessuno attributo, link oppure directory. Dal 2° al 4°
indicano i permessi di lettura, scrittura ed esecuzione ("r,w,x") relativi al proprietario del file. Dal 5° al 7° indicano i permessi di lettura, scrittura ed esecuzione per gli
appartenenti allo stesso gruppo del proprietario. Dall 8° al 10° indicano i permessi di lettura, scrittura ed esecuzione per tutti gli altri utenti. Ovviamente, come già
accennato, l'utente root può fare qualunque cosa su qualunque file. Per modificare i permessi ad un file, nonché la sua apparteneza ad un utente o ad un gruppo,
valgono come sempre le regole ed i privilegi descritti sopra. Comunque, supponendo di essere l'utente root, i comandi di manipolazione degli attributi di un file sono i
seguenti:
chmod: cambia i permessi al file. Si possono usare le lettere viste prima, oppure i numeri (massimo il numero 7"). Per esempio per dare i permessi di lettura e scrittura
di un file a tutti gli utenti, il comando è: "chmod 666 nomefile". Per dare tutti i permessi ad un file il comando è in questo caso "chmod 777 nomefile".
chown: cambia il proprietario del file: chown nuovoproprietario nomefile
chgrp: cambia il gruppo di appartenenza al file: chgrp nuovogruppo nomefile
pwd:indica la directory in cui si staziona
cd: cambio directory, assolutamente identico al DOS
mkdir: crea una directory; mkdir /appoggio
rmdir: cancella una directory; rmdir /appoggio (attenzione: la directory deve essere vuota come nel DOS)
cp: serve a copiare file; cp pippo topolino. Utilizzando il parametro -R funziona come il comando xcopy di DOS (cp -R /appoggio/* /appoggio1/*)
mv: serve a muovere file; mv /appoggio/pippo /appoggio1/topolino. Si utilizza anche solamente per rinominare i file (infatti è l'equivalente dei comandi DOS
move e ren)
rm: serve a cancellare file: rm pippo. Usato senza parametri viene chiesta la conferma della cancellazione del file. Usato con i parametri -r -f contemporaneamente,
9 di 21 30/08/2013 12:17
Manuale del sistemista Linux http://www.larapedia.com/informatica_linux/manuale_del_sistemista_...
diventa una bomba ad orologeria per la sua pericolosità: infatti equivale al deltree di DOS con l'aggravante che sui sistemi UNIX non è possibile utilizzare, a fronte di file
cancellati erroneamente, programmi di undelete. Io stesso, pochi mesi fa, nonostante l'esperienza ultradecennnale che mi ritrovo, ho effettuato il comando "rm -rf *"
stando inavvertitamente sulla directory "/" (root directory) del mio sistema Linux in ufficio. Il risultato di ciò è stata la cancellazione sia di Linux che di Windows95
(poiché da Linux vedevo il filesystem di Windows95), con la conseguenza di imprecazioni ampiamente sopra i limiti della decenza e due giorni di lavoro buttati a
re-installare il tutto (e meno male che avevo i backup dei dati più importanti !!)
more: serve a visualizzare il contenuto di un file; more pippo. La visualizzazione avviene una schermata per volta e può essere interrotta con il comando "q". Sulle
piattaforme UNIX in generale, ma non su Linux, esiste anche il comando "pg" che è praticamente equivalente. Anche il comando cat serve più o meno alla stessa
funzione, anche se normalmente si utilizza per altri scopi.
Dopo avere visto i comandi di base di un sistema UNIX, possiamo passare ad una rapida elencazione di altri comandi utili ma di uso più strettamente di sistema. Di essi
viene data solo una sommaria descrizione rimandando il lettore al man del comando per avere ragguagli ulteriori (per utilizzare il manuale, basta digitare man
nomecomando).
ln: serve a creare dei link (simbolici o fisici) tra due file. Si usa anche per spostare una directory, dove vi sono dei file non spostabili, su un altro file system senza dover
reinstallare alcunchè.
tar,cpio: servono ad effettuare backup/restore di dati
dd: si usa per effettuare copie di file, di filesystem o di dispositivi; per esempio per effettuare una "diskcopy" di un dischetto si usa proprio questo comando, inserendolo
in uno script (lo script UNIX si può paragonare ad un file batch del DOS)
vi: l'editor da linea comando per eccellenza sui sistemi UNIX. Potentissimo ma anche particolarmente ostico (specialmente all'inizio: mi ricordo di averlo odiato per oltre
un anno, prima di iniziare ad apprezzarne le capacità !)
ps,top: servono a monitorare i processi in esecuzione in macchina, nonché il loro utilizzo di memoria e cpu
kill: serve a cancellare processi che non ne vogliono sapere di essere chiusi in maniera normale
find: serve a trovare file all'interno delle directory; per esempio è utile quando si cerca all'interno del sistema un file di cui non si conosce esattamente il nome e la
directory
grep: serve a cercare parole e frasi all'interno di files. Usato in uno script in congiunzione al comando "find" ed al comando "ls" diventa un potentissimo strumento di
ricerca all'interno dei files e delle directory. In ambiente Linux esiste su alcune distribuzioni il comando rgrep che in pratica è la sintesi dello script descritto in
precedenza.
mount,umount: questo comando serve a montare filesystem. Ricordo che con il concetto di filesystem UNIX identifica i vari dispositivi: cdrom, floppy, filesystem NFS
(cioè filesystems condivisibili appartenenti ad altre macchine UNIX presenti sulla rete). Pertanto con il comando mount si "montano" questi dispositivi. Per esempio per
montare un cdrom sulla directory /mnt/cdrom basta dare il comando mount /dev/cdrom /mnt/cdrom (supponendo che, come accade per Linux, il dispositivo cdrom
venga identificato dal sistema operativo come /dev/cdrom); per montare un floppy disk il comando sarà mount /dev/fd0 /mnt/floppy.
Con ciò abbiamo terminato questa velocissima carrellata sul sistema UNIX e sui suoi comandi in generale. Ovviamente avendo appena letto queste poche pagine ne
saprete praticamente come prima (cioè nulla o quasi !) di UNIX, ma spero comunque che tali appunti così succinti possano esservi di un qualche aiuto, e, se non altro, vi
possano avere incuriosito su UNIX a tal punto da spingervi a correre in libreria a comprare qualche libro sull'argomento ! Scherzi a parte, esistono anche sulla "Madre
di tutte le reti" una miriade di pubblicazioni su UNIX. Basta cercarle con un po' di pazienza !
Bene passiamo finalmente al nostro amato Linux: iniziamo a configurarlo !!
CAPITOLO 10 - Effettuare TELNET ed FTP da macchine in rete
Problema facile facile da risolvere (la prima volta che l'ho affrontato ci ho messo mezza giornata !!!).
Le funzionalità di TELNET e di FTP sono fondamentali per il nostro server Linux, poiché è solo grazie ad esse che il nostro sistema può essere sfruttato come macchina
multiutente. Inoltre è sempre comodo poter accedere con Telnet da remoto ad un server UNIX, poiché in questo modo qualunque attività di amministrazione del sistema
(anche il riavvio !) può essere fatta senza la necessità della presenza fisica dell'amministratore del sistema sulla console. Inoltre è anche possibile eseguire applicazioni
grafiche da remoto (il cosiddetto X-Terminal)
Per fare come al solito un paragone con Windows NT, per avere funzionalità simili su tale sistema è necessario disporre di un software di controllo remoto tipo Pc
Anywhere, Remotely possible, VNC o simili.
Con le distribuzioni RED HAT e derivate (come la distribuzione Mandrake) una volta installato il sistema non è possibile effettuare da una qualsiasi macchina in rete nè
FTP con l'utenza root nè TELNET con qualsiasi utente (messaggio di “Access Denied” per FTP e di “Invalid Login” per TELNET).
Analizziamo per primo il problema del Telnet: esso si presenta poiché non sono state ancora abilitate le cosiddette pseudotty: esse sono in pratica le sessioni telnet che
è possibile effettuare da remoto. Per l'abilitazione basta inserire tali pseudotty nel file /etc/securetty:
tty1
tty2
tty3
tty4
tty5
tty6
tty7
tty8
ttyp0
ttyp1
ttyp2
ttyp3
ttyp4
ttyp5
ttyp6
ttyp7
ttyp8
ttyS0
ttyS1
In neretto sono evidenziate le ttys che abbiamo aggiunto (da ttyp0 a ttyp8): si nota che in questo modo sarà possibile avere fino a 9 sessioni contemporaneamente
aperte in rete (più ovviamente le sei sessioni sulla console più eventualmente quella grafica.
10 di 21 30/08/2013 12:17
Manuale del sistemista Linux http://www.larapedia.com/informatica_linux/manuale_del_sistemista_...
Per passare da una sessione all'altra sulla console del sistema basta tenere premuta la combinazione di tasti <ALT> e <Fx> con Fx uguale a F1 F2 F3...F7.
Con questa modifica il login in rete viene consentito, ma il processo di login stesso a volte è un pò lento: se questo fosse il caso conviene eliminare il file securetty.
ATTENZIONE !!!!: se invece di eliminare il file lo si svuota solamente (cioè resta il file vuoto) è finita così !!poichè non è più possibile accedere da nessuno dei ttys
esistenti (nemmeno dalla console !!!!!). In questa sciagurata ipotesi, si può comunque risolvere il problema utilizzando i rescue disk del set dei dischetti di installazione,
ma le operazioni da fare sono comunque destinate ad utente esperto.
Avrete certamente notato che abbiamo aggiunto nel file securetty anche altre due entrate: ttyS0 e ttyS1. Tali pseudotty rappresentano le connessioni Telnet tramite
porta seriale: in parole povere, abilitando tali pseudotty si permette di accedere al sistema con il Telnet anche utilizzando un modem (infatti ttyS0 e ttyS1
rappresentano le due porte seriali COM1 e COM2 che normalmente sono presenti su tutti i p.c.).
Parlando invece del secondo problema, quello dell'FTP, per poter effettuare FTP con qualunque utenza definita nel sistema, basta eliminare il file /etc/ftpusers. Se
comunque si desidera avere un certo controllo sull'accesso ftp degli utenti, ma permettere a root di accedere, basta eliminare la riga root dal file.
In questo modo digitando nuovamente il comando startx, il nostro ambiente grafico partirà sicuramente, ma in modalità 640x480 a 16 colori.
Parliamo adesso della seconda soluzione, cioè quella di cercare altri X-Server. Sfortunatamente, per quanto ne so, non esistono altri X-server gratuiti per Linux, mentre
ne esistono di commerciali: i più famosi e completi sono Accellerated-X (http://www.xig.com ) e Metro-X (http://www.redhat.com). Il primo è molto buono, copre
praticamente tutte le schede grafiche esistenti, ma costa parecchio; in compenso è possibile scaricare dal sito una demo funzionante solo 10 minuti e per giunta, se non
ricordo male, un solo giorno, ma che comunque dà una certa idea del suo funzionamento. Il secondo invece è leggermente meno veloce del primo, ha una copertura di
schede un poco più limitata ma ha il pregio di costare molto poco (addirittura mi pare che acquistando la versione ufficiale di Linux RedHat, contenente 4 CD, Metro-X
sia compreso). Vi consiglio comunque di informarvi sulla compatibilità della vostra scheda grafica prima visitando i rispettivi siti.
11 di 21 30/08/2013 12:17
Manuale del sistemista Linux http://www.larapedia.com/informatica_linux/manuale_del_sistemista_...
1. KDE (assolutamente completo, poiché fa parte di un progetto mondiale di standardizzazione dei prodotti grafici in
ambiente Linux)
2. Enlightenment (molto grazioso, pieno di suoni)
3. Gnome (non è un vero e proprio Window Manager, ma raggruppa vari programmi per realizzare una vera suite grafica).
4. Qvwm (per i nostalgici di Windows 95 - è praticamente identico, anche nella grafica delle icone)
Tuuti questi Window Manager, ed altri ancora, sono scaricabili collegandosi ai siti canonici, http://www.linuxberg.com oppure http://www.linuxapps.com . Noi nel
prosieguo del libro ci occuperemo essenzialmente di KDE, poiché pur essendo il più pesante in termini di risorse macchina (anche se per girare in maniera
soddisfacentegli basta un pentium I di fascia bassa, tipo P75 o P90 e 24 o 32 MB di RAM), è quello più completo, più facile da configurare, nonché l'unico in italiano.
Comunque quello di cui voglio adesso parlare è il progranmma di configurazione per eccellenza di Red-Hat: il Control-Panel. Attraverso questa utility grafica,
andremmo a configurare al meglio il nostro Linux, ed al tempo stesso ci addentreremo in alcuni concetti propri di questo sistema operativo.
1. 12.1 Il Control-Panel
2. Il Control-Panel è l'utility grafica della distribuzione Red-Hat che aiuta l'utente finale nella operazione di configurazione
del proprio sistema. In realtà questa utility non fa altro che richiamare tutta una serie di moduli di configurazione del
sistema. Per richiamare tale utility, una volta fatto partire l'X-Server con il Window Manager Another Level (o fvw95 che
dir si voglia), basta digitare nella finestra terminale in cui si vede la linea di comando di Linux il comando "control-
panel".
1. A tale proposito, ricordiamo ( anche se probabilmente non è stato ancora detto in precedenza) che sui sistemi operativi
UNIX, per eseguire un programma che è situato in una directory non compresa nel PATH di partenza dell'utente, è
necessario essere nella directory in cui è situato il programma e digitare il seguente comando: ./nome_programma dove
nome_programma è il nome del programma che vogliamo eseguire. In precedenza abbiamo scritto, per eseguire il
Control-Panel, il comando "control-panel" e non "./control-panel": questo poiché tale programma è situato normalmente
nella directory /usr/X11R6/bin, la quale è la directory standard in cui sono situati tutti i moduli eseguibili dell'ambiente
grafico, e come tale questa directory è presente nel PATH di partenza dell'utente. A proposito, ogni utenza quando viene
avviata con la procedura di login, punta alla sua cosiddetta home directory, alla sua shell di comandi (l'equivalente del
command.com del DOS) ed al suo profile. Tale file può essere considerato una specie di "autoexec.bat" proprio
dell'utente. In ambiente Linux il nome del profiel dell'utente cambia a seconda del tipo di shell che viene usata: per
default ogni utente che viene creato su un sistema Linux useà come shell la bash shell. Pertanto il profile relativo alla
bash shell si chiamerà .bash_profile. A livello puramente informativo esistono sotto Linux (ed ovviamente sotto UNIX in
generale) molte altre shell: la csh (c-shell), la ksh (Korn-shell), la sh (bourne-shell, di cui la bash è una derivazione) e
così via.
1.
2. Vediamo adesso in dettaglio i singoli moduli di configurazione:
1. Run-Level Editor
2. Time & Date
3. Printer Configuration
4. Network Configuration
5. Modem Configuration
6. Kernel Daemon Configuration
7. Search Help Systems
8. System Configuration
9. Package Management
In realtà nel caso di una installazione completa di RedHat compare sulla barra del Control-Panel un'altra icona, quella relativa alla configurazione del Web Server
APACHE: nel nostro caso, avendo effettuato una installazione parziale, tale utility non viene installata, anche se comunque è possibile configurare a mano il nostro Web
Server, che tra l'altro è già installato e funzionante di default.
1. Run-Level Editor
Il Run-Level Editor permette di configurare quale servizi far partire all'atto del boot di Linux.
Come si può notare la schermata del programma è suddivisa in varie colonne: quella più a sinistra, intitolata "avalaible", cioè disponibile, indica tutti iservizi che è
possibile far partire su un sistema Linux. Le altre colonne, invece, rappresentano i livelli secondo una rappresentazione gerarchica propria dei sistemi UNIX: ogni livello
rappresenta un benm preciso stato del sistema, accessibile a più o meno utenti ed a più o meno servizi. Come si può notare, per esempio, manca il livello 1, accessibile
solo dall'utente root, che rappresenta il livello di maintenance cioè di manutenzione del sistema: in tale livello tutti i servizi cosiddetti "accessori" sono disabilitati. Per
12 di 21 30/08/2013 12:17
Manuale del sistemista Linux http://www.larapedia.com/informatica_linux/manuale_del_sistemista_...
esempio a tale livello sono disabilitati i servizi di rete, quelli di stampa, il suono etc.
A differenza degli altri sistemi UNIX, nei quali il livello standard di funzionamento del sistema è il livello 2, in Linux il livello di default è il livello 3. Analizziamo perciò i
servizi che possono essere attivati o rimossi dal livello 3.
Analizzando le liste dei servizi partiti, di quelli fermi e di quelli disponibili, rimaniamo sicuramente sconcertati e confusi: sicuramente dal numero dei servizi presenti in un
sistema UNIX, ci possiamo rendere conto, da un lato della difficoltà di funzionamento e di gestione di tali sistemi operativi, dall'altro però delle loro enormi potenzialità,
di gran lunga superiori ai sistemi Microsoft (anche se ad onor del vero Windows NT può raggiungere le funzionalità dei server UNIX, ma a costo di parecchi options pack,
BackOffice e software di terze parti).
Prendiamo in considerazione il nostro esempio canonico, quello cioè di un server Linux inserito in una rete locale mista con altre macchine Linux ed altre Windos 95/98,
e cerchiamo di vedere quali possono essere i servizi a cui rinunciare e quelli invece indispendabili.
Ovviamente a questo punto qualcuno potrebbe obiettare dicendo: ma perchè nel dubbio non facciamo partire tutti i servizi ed i processi disponibili ? Teoricamente
questsoluzione è la più comoda ed è anche praticabile, ma ovviamente costa ! Certo, se la nostra macchina dispone di un precessore veloce ed un ammontare di RAM
considerevole (p.es. 128MB o addirittura 256 MB di RAM) potremmo far partire tutto quello che vogliamo (anche se pure in tal caso, di fronte a macchine
particolaremente stressate, come per esempio WEB Server super-accessati o DataBase Server, un tale ammontare di RAM può in alcuni casi diventare insufficiente), ma
comunque è buona norma dell'amministratore di un sistema Linux, quella di evitare la partenza di processi inutili per il contesto in cui la macchina opera, che danno
come risultato un inutile spreco di risorse di sistema.
Se, per esempio, il nostro server non deve fare da Web Server o da Proxy Server , possiamo evitare di far partire il daemon httpd: analogamente se sulla nostra
macchina non viene installato un data base Postgres, possiamo evitare di far partire il daemon apposito.
A proposito, con il termine daemon, cioè demone, incontrato nelle righe precedenti, si intende un processo UNIX che resta in ascolto in attesa di eventuali richieste da
parte delle componenti hardware, di programmi o di client: tipico esempio di daemon è proprio quello relativo al Web Server APACHE, denominato httpd: questo
"demone" utilizza una particolare "porta" del protocollo di rete TCP/IP (normalmente la porta 80) per restare in ascolto in attesa di eventuali richieste da parte di client:
quando un client, mediante il proprio browser chiede di accedere ad una pagina web presente all'indirizzo del nostro server, l'httpd si occupa di effettuare il
collegamento tra il client e la pagina, restituendo al browser del client la visualizzazione della pagina HTML stessa.
Qui di seguito diamo una rapida carrellata dei servizi e dei demoni più importanti presenti al level 3: sta all'esperienza od alla scelta dell'amministratore del sistema il far
partire un demone al posto dell'altro.
1. kerneld: permette al kernel di Linux di caricare e scaricare dinamicamente i moduli relativi a dispositivi hardware od a
tipi di file system (p.es. si può decidere di caricare il modulo relativo ad una scheda audio solamente quando si vuole
eseguire un file musicale; in questo modo, con la tecnica della modularità il kernel di Linux diventa molto più snello ed in
definitiva più veloce ed efficiente). Tale demone è assolutamente indispensabile ! La sua eliminazione
potrebbe comportare l'impossibilità a far ripartire il sistema al successivo boot !
2. Network, nfsfs, inet: sono tutti servizi di rete, che attivano la scheda di rete, il protocollo TCP/IP e la possibilità di
montare file system NFS o di fare montare da client NFS i propri file systems.
Il protocollo di colloquio NFS, fa parte della suite di protocolli TCP/IP: esso permette a dei client su cui sia presente appunto la componente client di tale protocollo, di
montare filesystem UNIX in modo da avere dei dischi "virtuali" sulla propria macchina. Il concetto è molto simile a quello della condivisione presente sulle reti Microsoft.
La differenza sta nella impossibilità di usufruire di tale servizio senza una componente client a parte (come accade per le macchine con sistema operativo Microsoft, le
quali sono sprovviste dei default della componenete client NFS e devono rivolgersi a software prodotto da terze parti). Il vantaggio che ne deriva comunque è
soprattutto in termini di sicurezza a livello di directory ed a livello di file, poiché anche ai filesystems NFS si applicano le stesse regole e le stesse autorizzazioni presenti
sui filesystem standard di UNIX. Le risorse "condivisibili" NFS devono essere dichiarate nel file /etc/exports. Invece per montare da Linux risorse NFS presenti su un
altro server UNIX, basta digitare il comando "mount nomehostNFS:nomefilesystemNFS /nomedirectory_di_mount dove nome hostNFS è il nome del server su
cui risiede la risorsa condivisa, nomefilesystemNFS è la risorsa condivisa ed infine nomedirectory_di_mount è il punto di mount sulla nostra macchina Linux in cui
intendiamo montare il filesystem NFS. Per fare un esempio pratico, se sul server Andromeda esiste un filesystem NFS di nome Orione, e noi abbiamo creato un punto di
mount sul nostro server (sotto la directory /) che abbiamo chiamato Rigel, il comando di mount sarà:
mount Andromeda:/Orione /Rigel
Per smontare il filesystem NFS appena montato, basta digitare invece il seguente comando:
umount /Rigel
lpd: serve a far partire i servizi di stampante sia la stampa in locale sia per la stampa da e per remoto;
1. syslog: serve a monitorare, attraverso dei log che vengono scritti nella directory /var/log tutta l'attività che viene svolta
sul sistema;
2. keytable: questo processo carica la tastiera corrspondente alla lingua desiderata (in pratica è molto simile al keyb it del
DOS);
3. gpm: fa partire il mouse sulle console testuali (ricordo che ve ne sono 6 di default). E' un servizio molto utile in modalità
testo, perchè permette il taglia ed incolla tra sessioni di console. Inoltre è indispensabile anche al funzionamento dell'X-
Server;
4. sound: servizio tipico della distribuzione RedHat, permette di impostare i parametri come il volume alla scheda audio
(che comunque, come vedremo, deve essere impostata con altri strumenti, come la creazione di un modulo, la
ricompilazione del kernel o strumenti di plug&play);
5. linuxconf: questo servizio permette di far partire l'utility "System Configuration", facente parte del Control-Panel;
6. sendmail: questo è il demone del più diffuso server di posta elettronica presente su Linux. SendMail è potentissimo, ma
anche piuttosto "tosto" da configurare; di solito si raggiunge un buon compromesso utilizzando come server di posta
altri prodotti meno potenti ma più facili da configurare;
7. smb: questo servizio è il famoso SAMBA (ovviamente niente a che vedere con la danza brasiliana ! Per chi non lo
conosce SAMBA è un protocoll di rete che permette di trasformare un qualsiasi server UNIX in una macchina Netbeui
Microsoft). Una volta che SAMBA è installato e configurato, la macchina UNIX può essere vista tranquillamente tramite la
funzione "Risorse di Rete" dei sistemi Microsoft ! E non solo, da una macchina UNIX con SAMBA, si può utilizzare la
13 di 21 30/08/2013 12:17
Manuale del sistemista Linux http://www.larapedia.com/informatica_linux/manuale_del_sistemista_...
componente client del protocollo per montare risorse condivise di una macchina Microsoft ! Come si può capire questo
servizio (in realtà i demoni attivati sono due, smbd e nmbd, client e server) è fondamentale quando la macchina Linux
è inserita in un contesto di rete mista in cui siano presenti anche macchine con sistema operativo Windows. Del SAMBA
parleremo in modo dettagliato nel prosieguo del libro, dedicandogli un capitolo a parte.
A proposito, c'è da dire che la vastissima schiera di sostenitori/utilizzatori di Linux (i cosiddetti "pinguini") non sono molto entusiasti di Bill Gates e dei suoi sistemi
operativi, tanto e vero che il nome Windows vien storpiato di proposito durante le discussioni sui newsgroup o sulle mailing list. Ecco qui di seguito un campionario delle
varie storpiature:
1. winzozzo
2. windoze
3. findus 95
4. finestropoli
5. wincrash (con riferimento ai continui blocchi dei sistemi Microsoft)
6. winboh?
1. routed: questo demone è indispensabile per utilizzare la tecnica del "routing" dei pacchetti i.p., allo scopo di ottimizzare
i percorsi dei pacchetti. Nel caso in cui la macchina Linux abbia una connessione diretta ad Internet (cioè tramite una
rete locale/geografica) questo servizio diventa fondamentale
2. crond,atd: questi sono i demoni di scheduler di Linux come di qualsiasi altro sistema operativo UNIX. Attraverso essi è
possibile schedaulare in maniera automatica delle attività a tempo: per esempio si può pensare che tutte le notti venga
affettuato un backup dei dati vitali presenti sul sistema, oppure una volta alla settimana ad una determinata ora venga
effettuato il controllo dei filesystems attraverso l'utility fschk.
1. Time and Date
Questa utility serve a configurare ovviamente la data ed ora di sistema, dando la possibilità di scegliere il fuso orario, la visualizzazione in 12 o 24 ore, e la possibilità di
settare a livello hardware anche il clock del systema.
12.1.3PrinterConfiguration
L'utility di configurazione della stampante ci mostra un'altro aspetto della enorme versatilità di Linux relativamente alla connettività di rete: infatti tramite questa utility è
possibile configurare stampanti locali ed anche stampanti remote, sia UNIX che Windows che Netware (in quest'ultimo caso deve essere installato l'apposito servizio
ncpfs). Proviamo allora ad aggiungere una stampante locale (cioè direttamente collegata alla porta parallela del p.c.) ed una stampante Windows (chiamata LAN
Manager Printer o anche Samba Printer). Premendo il pulsante <ADD> e selezionando <Local Printer>, ci viene mostrata una schermata in cui Linux mostra di avere
riconosciuto la presenza della porta parallela; premendo il pulsante <OK> ci viene prospettata una schermata in cui vengono richieste le informazioni sulla stampante. E'
buona norma modificare solamente il nome con cui Linux chiamerà la nostra stampante senza toccare gli altri parametri di sistema, poiché essi sono normalmente già
ottimali. Resta da scegliere il tipo di stampante che più si avvicina al nostro modello: selezionando il pulsante <Select> del campo Input filter vediamo che anche sotto
Linux esistono tutta una serie di "driver" specifici per i vari tipi di stampante. Selezioniamo quello adatto per la nostra stampante, ricordando che normalmente se la
stampante non è presente nell'elenco, è comunque possibile farla funzionare in emulazione HP (Deskjet per le stampanti a getto di inchiostro e Laserjet per le
stampanti laser). Se comunque anche con questi settaggi la nostra stampante non ne vuole sapere di stampare in maniera umana, non bisogna perdersi d'animo, poiché
normalmente su Internet sono disponibili i driver per quasi tutte le stampanti esistenti: basta avere un po' di pazienza e cercarli sui motori di ricerca standard (come
http://www.yahoo.com o http://www.altavista.com ) o meglio ancora sul motore di ricerca dei newsgroup (http://www.dejanews.com) . A proposito di quest'ultimo,
tenetelo sempre a portata di mano, poiché rappresenta la biblioteca più vasta dell'universo relativamente alla documentazione ed alla risoluzione di problemi in ambiente
Linux.
Analogamente, proviamo ad installare una stampante Windows (LAN Manager o samba che sia): Ovviamente tale stampante deve essere stata condivisa sul p.c. Al
quale essa è collegata.
Dopo un messaggio in cui si avverte che per poter stampare è necessario avere una username ed una password (normalmente basta indicare le stesse username e
password che si danno alla macchina Windows95 alla quale è collegata la stampante per entrare in rete Microsoft), ci viene prospettato un pannello molto simile a quello
relativo alla installazione di un astampante locale: le uniche differenze sono i campi relativi al pc Windows al quale è collegata la stampante. Pertanto dovremo
nell'ordine indicare:
Resta poi, come già fatto in precedenza, da configurare il "filtro" opportuno per la stampante in questione.
Una volta terminata la configurazione, è possibile fare dei test utilizzando l'apposito cartella del menù di Printer Configuration.
1. Network Configuration
Se non avete avuto l'opportunità di configurare prima (durante la installazione di RedHat) la rete, questa è l'utility che fa per voi: infatti vi permette di installare la
scheda di rete, una scheda PPP (l'analogo della scheda di Accesso Remoto di Windows 95) oppure effettuare modifiche ai settaggi precedentemente effettuati. I menù
sono molto intuitivi anche per utenti con solo minime cognizioni di rete (come può essere un normale utente Windows): pertanto la descrizione dei menù non verrà
trattata in questo contesto.
Comunque è necessario dire alcune cose nel caso in cui si disponga di un modem: in questo caso è opportuno aggiungere una scheda ppp (che verrà chiamata dal
sistema ppp0) ma essa deve essere lasciata inactive e non deve essere configurata a livello di i.p. Address e tutto il resto. Questo perchè tali settaggi verranno fatti in
seguito all'atto della creazione delle procedure di connessione remote, per esempio ad un provider Internet. Di tale argomento parleremo diffusamente in seguito nel
capitolo riguardante la bellissima interfaccia grafica (Window Manager) chiamata KDE, attualmente la migliore esistente in ambiente UNIX/Linux.
14 di 21 30/08/2013 12:17
Manuale del sistemista Linux http://www.larapedia.com/informatica_linux/manuale_del_sistemista_...
1. Modem Configuration
Questa utility serve solo a creare un link tra /dev/modem e la porta seriale sulla quale è presente l'eventuale modem. Si può notare come in ambiente Linux le porte
seriali vengano chiamate cua1, cua2.... C'è comunque da puntualizzare il fatto che dalla versione di kernel 2.2.x (attualmente la più recente, di cui parleremo in
seguito) i dispositivi "cua" sono stati completamente sostituiti dai ttySx, che tra l'altro sono i device a cui puntare quando si utilizza il server Linux come server di
Accesso Remoto.
12.1.6Kernel Daemon Configuration
Questo modulo del Control-Panel, serve in pratica ad editare in maniera controllata il file /etc/conf.modules. In questo file vengono scritte (o a mano o in maniera
automatica all'atto del boot del sistema, se vengono riconosciute in maniera automatica le periferiche plug&play) le opzioni di caricamento/settaggio dei vari dispositivi
che vengono caricati come moduli. Come abbiamo già descritto in precedenza, la tecnica modulare con cui vengono costruiti i kernel Linux, permette in qualunque
momento di scaricare o caricare dinamicamente dal kernel i moduli necessari al corretto funzionamento di una particolare periferica, ottimizzando in questo modo le
prestazioni del kernel che resta molto snello.
12.1.7Search Help Systems
Utility molto comoda per effettuare ricerche di documentazione su Linux. A partire da una parola chiave è vengono visualizzati sia i file di documentazione che le pagine
del Manuale (man) in cui la parola chiave viene trattata.
12.1.8System Configuration
Questa è l'utility più importante di tutta la distribuzione Linux RedHat: infatti attraverso la Gnome Linuxconf (così si chiama realmente il System Configuration) è
possibile configurare con facilità tutti gli aspetti fondamentali di un sistema Linux:
Vediamo adesso un po' più in dettaglio i singoli componenti principali del Linuxconf.
1. la rete
Come abbiamo già accennato, la rete si configura normalmente attraverso il modulo di network configuration del Control-Panel. Comunque attraverso quel modulo è
possibile configurare in maniera semplice solamente il prtocollo TCP/IP e la sue varianti su linea seriale (come p.es. Un modem) SLIP e PPP.
Invece, come si può notare, attraveso il Linuxconf vi è la possibilità di gestire ed impostare anche altri protocolli di comunicazione come l'IPX, che è il protocollo delle
reti Novell e l'UUCP che è un protocollo di comunicazione tipico delle architetture UNIX.
Inoltre viene dedicata una intera sezione al protocollo NFS di cui abbiamo già accennato in precedenza.
Avendo un minimo di conoscenze di rete (p.es. quelle che normalmente ha un utente appena smaliziato di Windows 95), grazie a questa utility è possibile configurare
senza sforzi particolari ogni aspetto di rete di una macchian Linux.
L'unico protocollo che resta fuori dalla possibilità di essere configurato tramite Linuxconf è SAMBA, che, come già detto, è il protocollo che permette ad una macchina
Linux di condividere risorse condivise (come directory e stampanti) di una macchina Windows collegata in rete o tramite l'Accesso Remoto, nonché di essere a sua volta
vista dalle macchine con sistema operativo Microsoft, alla stessa stregua di un server Windows NT, condividendo le sue risorse. Il prossimo capitolo spiegherà nei singoli
dettagli il funzionamento di Samba. Comunque, per configurare Samba in maniera semplice, senza dover editare a mano i suoi file di configurazione, esisteono su
Internet parecchie utility grafiche che raggiungono lo scopo. Personalemente preferisco tuttora editare a mano il file di configurazione di Samba, comunque una volta ho
usato l'utility Ksamba, facente parte del tool di applicazioni presenti nel progetto KDE, e devo dire che la semplicità d'uso di tale utility è notevole.
12.1.8.2Gli utenti
Questa utility permette una gestione completa ed esaustiva degli utenti di un sistema Linux. Come si può notare dai vari menù, è possibile creare nuovi utenti,
modificare le proprietà di un utente già esistente, etc.
Come già accennato in precedenza, uno dei punti di forza dei sistemi UNIX è quello di avere la possibilità di creare una "gerarchia" di utenti che possano accedere al
sistema. Mi si potrà obiettare il fatto che anche un server Windows NT dispone di tali funzionalità: ERRORE ! Windows NT ha sì il concetto di utente e privilegi come
UNIX, ma solo per quanto riguarda la condivisione delle risorse di sistema. Invece un sistema UNIX, essendo realmente un sistema fruibile da più utenti, sia a livello di
linea di comando (tramite collegamento Telnet) sia a livello di esecuzione di applicazioni grafiche (tramite programma di X-Windows remoto), deve necessariamente
essere configurato in maniera ottimale utente per utente, in maniera che tutti possano lavorare al meglio senza avere la possibilità di creare danni agli altri come al
sistema stesso. Ecco perchè diventano importatnti, coma abbiamo già visto, i concetti di gruppo e permessi.
1. I file systems
La gestione dei filesystems permette di gestire sia i file systems locali che quelli NFS da montare da un server remoto. Inoltre è possibile gestire in maniera ottimale la
partizione di swap, aggiungendone un'altra o rimuovendo quella attuale per modificarne le dimensioni.
1. Lilo
Il LILO, come già accennato è il LInux Loader è il programma di boot che permette di far partire Linux. Ma, come tutti i programmi cosiddetti di "boot loading", LILO
permette al bott della macchina di caricare qualunque sistema operativo sia presente sul p.c.. Se, per esempio (e normalmente è la situazione standard di tutti i p.c. con
Linux) oltre a Linux sulla macchina è installato anche Windows 95/98, tramite il LILO è possibile far partire anche Windows 95.
L'utility Linuxconf permette quindi una gestione semplificata del LILO: infatti è possibile modificare il default del sistema operativo da caricare, aggiungere boot differenti
di Linux (per esempio nel caso in cui sia stato compilato un nuovo kernel), modificare le opzioni di partenza del LILO, (p.es. Il tempo di attesa del prompt prima che
venga lanciato il sistema operativo di default).
Per chi preferisce controllare direttamente il file di configurazione del LILO, diciamo che tale file si chiama /etc/lilo.conf. Di seguito vi è un esempio del file:
boot=/dev/hda
map=/boot/map
install=/boot/boot.b
15 di 21 30/08/2013 12:17
Manuale del sistemista Linux http://www.larapedia.com/informatica_linux/manuale_del_sistemista_...
prompt
timeout=50
other=/dev/hda1
label=dos
table=/dev/hda
image=/boot/vmlinuz-2.0.36-0.7
label=linuxold
root=/dev/hda3
read-only
image=/boot/bzImage
label=linux
root=/dev/hda3
read-only
Possiamo notare alcune cose: come si vede, nel parametro timeout vi è indicato il valore 50; tale valore è espresso in millisecondi.
I boot dei kernel linux sono indicati con l'etichetta image mentre il boot relativo a Windows viene descritto con l'etichetta other. Poiché, inoltre, è il primo della lista,
esso sarà caricato di default all'atto del boot se non vengono intraprese altre azioni (ricordiamo che al prompt di LILO: premendo il pulsante <tab> vengono visualizzati
tutti i possibili sistemi da caricare. Dall'etichetta label si può notare come Windows 95 venga denominato sotto LILO con il nome di dos: ovviamente l'etichette label
possono essere chiamate come uno meglio crede.
Nell'etichetta root viene descritto il dispositivo fisico da cui fare il boot.
Infine nell'etichette image, che servono al caricamento dei vari kernel, vengono descritte le directory ed il file di kernel.
IMPORTANTE: qualunque modifica al file /etc/lilo.conf deve essere successivamente validata eseguendo il comando lilo: solo in questo modo le modifiche effettuate
verranno effettivamente scritte nel settore di boot del disco primario.
Per una descrizione dettagliata del LILO e dei suoi parametri, esiste nella directory /usr/doc il manuale di configurazione del LILO (una quarantina di pagine).
Oltre alle componenti già descritte in precedenza, Linuxconf permette anche un controllo sulle procedure di accensione/spegnimento del sistema, sui file di
configurazione che vengono gestiti da esso, nonché sui file di logs (i quali sono normalmente nella directory /var/log. Comunque questa preziosissima utility deve
essere studiata in maniera approfondita per apprezzarne fino in fondo le potenzialità.
1. Package Management
Questa utility dimostra come anche sui sistemi UNIX sia possibile gestire in maniera efficace la installazione/disinstallazione di prodotti. Basata sull'utilizzo del
programma rpm (RedHat Package Management) Package Management permette di aggiungere e rimuovere prodotti con pochi click del mouse. Ovviamente i
pacchetti software devono essere stati all'origine confezionati secondo lo standard rpm. Tale standard, comunque, è ormai largamente diffuso nella comunità Linux,
anche perchè, oltre alla distribuzione RedHat, viene utilizzato anche dalla Debian ed ultimamente anche dalla Slackware.
Tra l'altro RPM è utile anche per vedere, a fronte dell'installazione di una applicazione, quale siano le "dipendenze" di quella applicazione. In ambiente UNIX le
dipendenze sono in pratica altri "pezzi" di software che servono in maniera propedeutica al pacchetto che andiamo ad installare. Può infatti succedere che installando
un'applicazione, specialmente quelle di grafica o quelle in ambiente X-Windows, sia necessario avere già installate delle librerie. Con RPM, quindi, si evita di installare del
software che comunque non potrà funzionare fino a quando non siano state installate correttamente le librerie richieste.
Bene il Control-Panel è tutto qui: in realtà ci sarebbe un altro modulo chiamato Comanche che permette di configurare graficamente il WEB Server Apache (siamo in
pieno territorio indiano. Di Apache, comunque parleremo in uno degli ultimi capitoli del libro, e quindi sarà in quel momento che parleremo di Comache.
CAPITOLO 13 - I WINDOW-MANAGER
Sotto Linux, a differenza dell'ambiente Microsoft, vi è libertà anche nella scelta dell'interfaccia grafica (il cosiddetto "Window Manager") più gradita dall'utente. Questa
libertà di scelta ha fatto sì che siano reperibili su Internt come sulle riviste specializzate oltre una ventina di Window Manager, dalle caratteristiche più disparate, a
partire dal semplicissimo FVW fino ad arrivare al sofisticato KDE.
Se avete seguito in precedenza la descrizione del Control-Panel e lo avete sperimentato con mano sulla vostra installazione RedHat, vuol dire che avete già fatto partire
un Window Manager: più precisamente, una volta configurato l'X-Server in maniera corretta, digitando il fatidico comando startx, avete fatto partire il Window Manager
di default di Linux RedHat, cioè fvwm95. Avrete sicuramente notato come questo Window Manager, pur essendo particolarmente semplice, ricorda abbastanza il
desktop di Windows 95. Ma questo è niente ! Sotto Linux bisogna imparare a non stupirsi di niente ! Soprattutto riguardo ai Window Manager: infatti tra la ventina e
passa di Window Manager disponibili, c'è di tutto, dalla copia spudorata del desktop di Windows 95 (qvwm) a quello che sembra un videogioco, per quanto rumore fa
con i suoni ad ogni operazione che viene effettuata (Enlightenment), a quello che replica in maniera praticamente identica le workstation UNIX SUN e HP, il cui
Window manager si chiama CDE mentre il suo clone Linux è xfce: accenniamo anche ad un altro manager simil-Windows, icewm, e continuiamo con Afterstep, molto
elegante e di cui esiste anche una versione per Windows 95, fino ad arrivare all'ormai famoso KDE, sicuramente il più sofisticato e completo di tutti, ma ovviamente
anche il più oneroso in termini di risorse.
Comunque qualunque sia il Window Manager che desiderate installare, ricordiamo alcune semplici operazioni che vanno effettuate allo scopo di far partire il nostro
prescelto. Supponiamo di lavorare con l'utenza root (per non avere problemi di permessi): posizioniamoci nella directory /root con il comando ls -la | more
verifichiamo se esistono due file:
1. .xinitrc
2. .xsession
Se non esistono li creiamo con il comando vi .xinitrc e vi .xsession: in tutti e due i file va inserito il nome del Window Manager prescelto. Se i file esistono, è
necessario commentare utilizzando il simbolo # (l'equivalente del rem dei file bat del DOS o del simbolo ; dei file ini di Windows) come primo carattere di ogni riga
presente nel file.
Prima abbiamo visto una combinazione di comandi "ls -la" unito al comando "more". Questa possibilità di unire i comandi in una sorta di concatenazione nella quale
l'output del primo comando diventa l'input del secondo è uno dei punti di forza della linea comando di UNIX. In pratica per ottenere lo stesso risultato senza poter unire i
due comandi, avremmo dovuto fare due comandi separati utilizzando un file:
16 di 21 30/08/2013 12:17
Manuale del sistemista Linux http://www.larapedia.com/informatica_linux/manuale_del_sistemista_...
In ambiente Linux esistono tutte una serie di utility per archiviare e restorare file: a partire dagli ormai noti tar cpio, fino ad arrivare alle utility come gzip,gunzip ed
addirittura a zip,unzip: le ultime due sono le versioni Linux dei famosissimi pkzip e pkunzip del DOS, e pertanto sono assolutamente compatibili con questi ultimi.
Comunque, a prescindere da quale set di comandi decidiate di utilizzare, il risultato finale che vi troverete davanti sarà la creazione di una sottodirectory chiamata
qvwm.... qualche cosa, al cui interno troverete alcuni script e parecchie directory.
E qui veniamo al punto cruciale della filosofia dei sistemi GNU, OPEN SOURCE o che dir si voglia, di cui Linux è il maggiore portabandiera.
La maggior parte del software per Linux che si trova in rete Internet, o sulle riviste, è assolutamente freeware, cioè gratuito: solamente alcuni prodotti commerciali
sono a pagamento, ma anche in questo casi, molte volte la società che vende il prodotto ha previsto la possibilità dell'utilizzo gratuito di esso per scopi no-profits o
personali: è il caso di prodotti molto importanti come la suite Office StarOffice o il famosissimo word processor WordPerfect.
Ma non è tutto: il software freeware in ambiente Linux, oltre ad essere completamente gratuito, viene normalmente distribuito in formato sorgente. Questo vuol dire
che chiunque ne abbia le capacità può modificarselo a suo piacimento, magari migliorandolo od adattandolo alle sue esigenze personali. Ciò è assolutamente legale, ma
comunque tale pratica è regolata da una licenza particolare, la cosiddetta licenza GNU: il softwareregistrato sotto questo tipo di licenza è sì modificabile, ma colui che
ne apporta modifiche deve a sua volta rendere disponibile su Internet sia il prodotto modificato che i relativi sorgenti.
La domanda sorge spontanea: chi ci guadagna a rendere disponibili il codice sorgente dei propri prodotti ? La risposta è abbastanza logica: Tutti ! A cominciare
dall'utente finale che avrà a disposizione migliaia di prodotti assolutamente gratuiti e via via sempre più stabili, poiché gli eventuali bachi presenti sono molto più
facilmente correggibili da altre persone che non da suo creatore; inoltre esistono vantaggi ancge per il creatore del prodotto, perchè in questo modo si trova ad avere la
collaborazione di decine di altri programmatori e cosiddetti beta tester (cioè coloro che effettuano i test sul software, prima che esso sia rilasciato nella versione
definitiva) a costo assolutamente gratuito. Inoltre i software rilasciati sotto GNU, se sono di buona fattura, possono essere inseriti in applicazioni commerciali a
pagamento, o comunque essere soggetti a supporto tecnico da parte sia dello stesso creatore che di altri società di supporto. Ad ogni modo, per concludere il discorso,
17 di 21 30/08/2013 12:17
Manuale del sistemista Linux http://www.larapedia.com/informatica_linux/manuale_del_sistemista_...
sviluppare software sotto licensa GNU, favorisce in prima battuta gli utenti finali, ma anche chi il software lo produce e chi lo distribuisce.
E' questo il motivo fondamentale che comincia a spingere anche colossi dell'informatica come per esempio NETSCAPE, a rilasciare i sorgenti di Mozilla (Netscape
Communicator 5), mentre altri giganti dai piedi d'argilla, come la Microsoft, se non cambieranno atteggiamento nei prossimi anni relativamente al free source
software, rischieranno di trovarsi completamente isolati nel mondo dell'informatica. Pensate solo se la Microsoft avesse reso disponibili i sorgenti di Windows 95/98: in
breve tempo, tali prodotti avrebbero potuto essere resi molto più affidabili e stabili di quello che sono, a costo assolutamente nullo per la casa di Redmond ! Comunque
da voci di corridoi non confermate, che mi sono arrivate proprio mentre mi accingevo a scrivere queste righe, pare che la Microsoft, renderà disponibili alla comunità
Internet i codici sorgenti del prossimo nascituro Windows 2000 !
Torniamo adesso alla installazione del nostro Windows Manager qvwm: se desiderate cimentarvi nella ebbrezza di compilare voi stessi il prodotto, è buona norma
leggere i file di help presenti nella directory principale del prodotto stesso: normalmente, da standard Linux, tali file vengono denominati REDAME, INSTALL, etc.
Comunque la compilazione di un prodotto in ambiente Linux, normalmente si riduce alla banale esecuzione di alcuni script già preparati dal creatore del prodotto stesso;
normalmente si utilizzano dei procedimenti standard:
Comunque, ripeto, è sempre opportuno leggere prima i file di documentazione allegati al prodotto, anche perchè in questi file viene sempre riportato quello che
eventualmente è necessario, in termini di librerie o di utility già installate nel sistema, al fine di effettuare una compilazione esente da errori.
Comunque, se non è vostra intenzione provare l'ebbrezza della compilazione di qvwm, potete sempre installare il pacchetto binario utilizzando l'utility di RedHat rpm: se
già siete in ambiente grafico, potete usare l'utility del Control-Panel Package Management, configurandola in maniera che punti alla directory in cui avete scaricato il
pacchetto in formato rpm.
Se, altrimenti siete in modalità linea di comando (detta anche modalità console) basta posizionarsi nella directory in cui è presente il pacchetto e digitare il
comando:
1. rpm -i qvwmnumeroversione.rpm
A questo punto il pacchetto di qvwm viene installato. Per verificare che l'installazione sia andata a buon fine, editiamo con il vi il file /root/.xinitrc:
vi /root/.xinitrc
avendo eseguito il comando vi ne approfitto per darvi qualche rapido suggerimento sui comandi fondamentali di questo ostico, ma completo editor:
Bene, tenendo bene a mente i comandi del vi sopra descritti, inseriamo la seguente riga nel file .xinitrc:
qvwm -f /usr/local/share/qvwm/system.qvwmrc
Il paramentro -f indica che il file di configurazione del qvwm si trova nella directory /usr/local/share/qvwm, e si chiama system.qvwmrc.
Nel caso in cui nel file .xinitrc esistano già altre righe che puntano ad altri Window Manager, occorre commentarle inserendo al primo carattere di ogni riga il simbolo #.
In UNIX, infatti, è questo il simbolo che indica il commento di una riga nei file di shell (i cosiddetti script).
Bene, a questo punto non ci resta che dare il mitico comando startx, e dopo pochi secondi apparirà un desktop in tutto e per tutto uguale a Windows 95.
Come detto in precedenza, qvwm è ottimo in termini di facilità di utilizzo e di "leggerezza" di risorse, mentre la sua configurabilità lascia molto a desiderare: infatti non è
possibile modificare interattivamente i menù (per intenderci con qualche aggeggio tipo "Gestione Risorse" di Windows 95) ma bisogna rassegnarsi ad editare i due file di
configurazione presenti nella directory /usr/local/share/qvwm:
1. system.qvwmrc
2. sample.qvwm-theme
A proposito di posizionarsi in una directory, probabilmente non sapete che Linux permette di utilizzare caratteri jolly come il * e ? per abbreviare i path dei comandi o il
nome di una applicazione da eseguire: per esempio per posizionarci nella directory precedente, dobbiamo dare il comando cd /usr/local/share/qvwm, ma possiamo
anche abbreviare lo stesso in un più comodo cd /usr/lo*/sh*/q*. l'importante è che non si creino ambiguità nel comando: per esempio se avessimo avuto come
sottodirectory si qvwm che qpippo, non avrei potuto abbreviare qvwm con q* ma avrei perlomeno dovuto digitare qv*.
Un'altra "facility" della line di comando Linux è la funzione di retrieve dei comandi, equivalente in tutto e per tutto alla doskey del DOS.
Il primo, come abbiamo visto è il vero e proprio file di configurazione, con il quale si possono modificare i menù cambiandogli il nome, oppure inserendo il link a nuove
applicazioni, etc. Sicuramente questo procedimento non è molto "user friendly", ma comunque il file è ben documentato, e la sintassi usata è piuttosto semplice: inoltre
la personalizzazione può essere spinta addirittura al livello di modificare le message box o il pulsante di start, che personalmente preferisco rinominare in un più
italiano Avvio.
Il secondo file in realtà è un esempio di file di configurazione dei temi del desktop: in esso si può settare un wallpaper, i colori delle finestre, eventuali suoni, etc. C'è da
notare comunque che relativamente al wallpaper (lo sfondo) è possibile inserire solo immagini in formato .xpm (formato UNIX). Tale formato è riconosciuto dalla
maggior parte dei programmi di fotoritocco, ma generando file di dimensioni elevate, non permette di utilizzare come sfondo immagini molto grandi. Anche questo file
comunque è ben commentato: inoltre su Internet si possono trovare relativamente a questo ottimo Window Manager, alcuni temi del dektop già pronti, risparmiando al
18 di 21 30/08/2013 12:17
Manuale del sistemista Linux http://www.larapedia.com/informatica_linux/manuale_del_sistemista_...
Oltre a tutto quello già descritto in precedenza, è possibile integrare enormemente il patrimonio di applicazioni KDE, andando a curiosare sul sito ufficiale
dell'organizzazione; scopriamo così che sono già state rilasciate applicazioni di ogni genere, da quelle per masterizzare CD a quelle per creare file mp3, dal lettore di
filmati AVI,MOVe MPEG, fino ad arrivare al vero fiore all'occhiello del progetto: Koffice. Tale prodotto, attualmente in fase di sviluppo, ma già scaricabile da Internet ed
usabile (seppure con un poco di cautela - i crash alla Windows sono sempre in agguato con un prodotto in via di sviluppo !) dovrebbe, secondo l'intenzione dei suoi
creatori, essere l'equivalente Linux di Office 97 della Microsoft. Il progetto è ambizioso e se riesce potrebbe dare un ulteriore enorme spunto alla già incredibile crescita
di interesse intorno a Linux. Ovviamente anche Koffice sarà completamente gratuito !
Comunque, come vedremo, già oggi esiste la suite Staroffice della Star Division, che pur essendo un prodotto a pagamento, può essere usato "free of charge" cioè
gratuitamente per un uso non commerciale: chi vi scrive, infatti, sta usando proprio StarOffice per la stesura di questo libro !
Torniamo all'installazione di KDE: dopo avere scaricato dal sito dell'organizzazione tutti i file della distribuzione (circa una trentina di MB), oppure avendo acquisito il
prodotto da una rivista o da una distribuzione ufficiale di Linux (SUSE 6.0, Caldera e probabilmente anche la prossima RedHat 6.0) apriamo una finestra terminale dal
nostro Window Manager attuale se siamo nell'ambiente grafico (oppure usciamo dall'ambiente grafico ed andiamo in modalità console) e posizioniamoci nella directory
in cui è presente la distribuzione: se la distribuzione è presente su un cd, ricordiamoci di montare prima lo stesso con il solito comando:
mount /dev/cdrom /mnt/cdrom
Partiamo dal presupposto di utilizzare una distribuzione in formato RedHat: a questo punto ci troviamo di fronte a tutta una serie di file con estensione .rpm: come
sicuramente ricorderemo, tale estensione indica il tipo di file che viene utilizzato dalla RedHat per le installazioni guidate dei vari prodotti. Come ricorderete,
normalmente le installazioni di tali pacchetti vengono effettuate attraverso l'utility grafica richiamabile dal Control-Panel: In questo caso, però, non useremo tale
utility, perchè l'installazione di KDE viene fornita con un comodo script di installazione, che lanciato dalla linea di comando, esegue l'installazione automatica ed ordinata
delle varie componenti di KDE, provvedendo anche ad eseguire automaticamente i vari settaggi delle variabili d'ambiente presenti nel file .bash_profile dell'utente che
sta eseguendo l'installazione.
Lo script di installazione di KDE si chiama install-kde-1.1.1. Comunque, prima di eseguire tale script, è necessario installare le QT Libraries, che sono delle librerie di
sistema necessarie al funzionamento di KDE come di molte altre applicazioni grafiche. Niente paura, comunque: tali librerie sono presenti nella distribuzione di KDE di cui
siamo in possesso: bastrà lanciare quindi il comando seguente
rmp -i qt*.rpm
In questo modo il sistema installerà le due librerie QT presenti nella distribuzione; come avrete certamente notato, ho usato il carattere jolly * per dire al sistema di
installare tutti i pacchetti che iniziavano per qt: questa caratteristica di Linux è veramente comoda, poiché permette di scrivere comandi in maniera abbreviata
risparmiando tempo e limitando gli errori di digitazione.
19 di 21 30/08/2013 12:17
Manuale del sistemista Linux http://www.larapedia.com/informatica_linux/manuale_del_sistemista_...
Fonte: http://web.tiscali.it/AlessandroDeRinaldis/aree/linux/linux.doc
Autore: Alessandro De Rinaldis
Home
Top
Disclaimer
20 di 21 30/08/2013 12:17
Manuale del sistemista Linux http://www.larapedia.com/informatica_linux/manuale_del_sistemista_...
Questo sito non rappresenta una testata giornalistica e viene aggiornato senza alcuna periodicità, esclusivamente sulla base della disponibilità del materiale, pertanto
non è un prodotto editoriale sottoposto alla disciplina di cui all'art. 1, comma III della Legge n. 62 del 7.03.2001. I riassunti , gli appunti i testi e le citazioni contenuti nel
nostro sito sono messi a disposizione gratuitamente a studenti, ricercatori, professori, tecnici con scopi illustrativi didattici e scientifici con il concetto del fair use e con
obiettivo del rispetto della direttiva europea 2001/29/CE e della legge n. 633 art. 70 e dlg 68. Il sito è curato e coordinato dall’autore al solo scopo informativo e
didattico. Pur ritenendo le fonti utilizzate affidabili, l'autore di questo sito non garantisce l'accuratezza e l'integrità delle informazioni contenute e pertanto declina ogni
responsabilità per eventuali problemi o danni causati da errori o omissioni, nel caso tali errori o omissioni risultino da negligenza, caso fortuito o altra causa. Tutti gli
appunti, le citazioni i testi e le immagini , sono proprietà dei rispettivi autori o case di produzione che ne detengono i diritti, qualora gli aventi diritto si ritenessero
danneggiati dall'inserimento in questo sito dei predetti files o fossero stati inavvertitamente inseriti immagini, informazioni, testi od altro materiale coperto da Copyright
saranno immediatamente rimossi e/o ne saranno citate le fonti su semplice segnalazione all' indirizzo e-mail indicato nella pagina contatti .
Gli obiettivi di questo sito sono il progresso delle scienze e delle arti utili in quanto pensiamo che siano molto importanti per il nostro paese i benefici sociali e culturali
della libera diffusione di informazioni utili. Tutte le informazioni e le immagini contenute in questo sito vengono qui utilizzate esclusivamente a scopi didattici, conoscitivi
e divulgativi. Le informazioni di medicina e salute contenute nel sito sono di natura generale ed a scopo puramente divulgativo e per questo motivo non possono
sostituire in alcun caso il consiglio di un medico (ovvero un soggetto abilitato legalmente alla professione). In questo sito abbiamo fatto ogni sforzo per garantire
l'accuratezza dei tools, calcolatori e delle informazioni, non possiamo dare una garanzia o essere ritenuti responsabili per eventuali errori che sono stati fatti, i testi
utilizzati sono stati prelevati da siti che li hanno messi a disposizione gratuitamente per farli conoscere nel web con scopi didattici. Se trovate un errore su questo sito o
se trovate un testo o tool che possa violare le leggi vigenti in materia di diritti di autore, comunicatecelo via e-mail e noi provvederemo tempestivamente a rimuoverlo.
21 di 21 30/08/2013 12:17