^^La cartella /etc

sostanzialmente in essa vengono posti tutti quei file di configurazione necessari al sistema e ai diversi programmi.
Spostandoci in questa cartella possiamo notare la quantità di files presenti, tra cui molti con estensioni .conf o .config; la quantità e la disposizione dei files all'interno di questa cartella dipende chiaramente da quanti programmi  installati e dal tipo di distribuzione usata..

La struttura della cartella /etc varia leggermente a seconda della distribuzione.
I files contenuti quindi in questa directory, quindi, rivestono una grandissima importanza per il sistema operativo a differenza dalle altre cartelle /etc che è possibile trovare anche in /usr/local, ad esempio, che contenono le impostazioni di programmi installati solo in quel determinato path e che quindi non sono essenziali al corretto funzionamento del sistema.

Ricordo che tutti i files di configurazione hanno una propria sintassi;

in generale i programmi leggono i diversi campi (separati quasi sempre da un TAB) contenuti in essi; è bene quindi prestare molta attenzione a come vengono modificati.

lilo.conf

contiene le impostazioni del bootloader Lilo; grazie a questo file, infatti, Lilo è in grado di installarsi secondo le impostazioni contenute in esso; va ricordato che ogni modifica a questo file richiede la reinstallazione del boot leader {basta digitare da shell un semplice <lilo>). E' comunque sempre possibile avere la manualistica dei parametri di lilo, e quindi di come è strutturato il file di configurazione con un semplice:

man lilo.conf

hosts

In /etc vengono anche contenuti i files di configurazione relativi alla rete; fanno parte di questi, i files hosts, hosts.allow, hosts.deny, resolv.conf, networks.

Il file hosts (assieme a hosts.allow e deny) gestisce una sorta di semplice risoluzione degli IP in nomi delle varie macchine che costituiscono la rete locale. Questo file quindi rappresenta una sorta di "mappa" primitiva per la risoluzione dei nomi. La sintassi con cui vanno aggiunte voci a questo file è abbastanza semplice:

Esempio

127.0.0.1	localhost
192.168.0.1	pippo.paperino	pippo

Solitamente l'entry localhost e' gia' impostata di default per definire l'interfaccia di loopback (attiva indipendentemente dalla presenza dì una vera e propria rete) che rappresenta la macchina stessa sulla quale stiamo lavorando; il loop-back non è una vera e propria inter-faccia di rete (definibile con eth0,1,2 etc...) ma viene considerata come tale, dando la possibilità, ad esempio, di testare i nostri servizi di rete anche in assenza di una scheda ethernet, oltre al fatto che molti programmi la sfruttano, basti pensare alle applicazioni basate su RPC (Remote Procedural Call) che usano l'interfaccia di loopback per autoregistrarsi con il demone portmapper all'av-vio del sistema.

networks

Assieme ad hosts, anche il file networks riveste una grossa importanza poiché traccia la mappa delle diverse reti e subnet.

Un esempio può essere dato da un file networks del tipo:

192.168.0.1	paperino
192.168.1.1	pluto

In questo modo viene indicata al sistema l'esistenza di due reti, denominate rispettivamente paperino e pluto con range di indirizzi IP diversi.

hosts.allow  hosts.deny

I file hosts.allow e hosts.deny rappre-sentano invece due importanti files di configurazione per la sicurezza.

In essi, infatti, vanno elencati gli IP di altre macchine che possono (o non possono) accedere al sistema;

oltre agli IP, è possibile anche includere (ed escludere) i servizi di rete disponibili per tali IP.

Il file hosts.deny specifica quali IP non possono connettersi al computer locale; generalmente è buona norma prima escludere tutti e tutti i servizi (grazie al file hosts.deny), e successivamente autorizzarli in modo selettivo nel file hosts.allow.

La sintassi di questi files, prevede che vada indicato prima il servizio di rete, poi, separato dai due punti, il numero di IP.

Ad esempio, potremo creare un file hosts.deny del tipo

ALL	:	ALL

nel quale neghiamo l'accesso a tutti i servizi di rete (con il primo ALL) a tutti gli IP (secondo ALL).

In hosts.allow, invece, indicheremo, seguendo la stessa sintassi incontrata per hosts.deny, gli IP (con i relativi servizi di rete) abilitati a connettersi.

Esempio :

ALL : localhost
ALL : pippo.paparino

resolv.conf

Altro file di configurazione importante è  resolv.conf; è grazie a questo file infatti che il sistema riesce a risolvere gli indirizzi IP sconosciuti, andando ad interrogare il server DNS esterno specificato.

Il parametro più importante in questo file, è <nameserver> seguito dal numero di IP del DNS esterno che abbiamo scelto per la risoluzione dei nomi (spesso è lo stesso provider che utilizziamo per l'accesso ad Internet a fornirli).

Un altro parametro che è possibile incontrare è <search>; questa voce indica il path di ricerca dei domini nel nostro sistema; di default viene sempre elencato solo il dominio della macchina locale (localhost); è comunque possibile aggiungerne anche altri, fino ad un massimo di sei.

Il file resolv.conf si presenterà quindi nella forma :

search paparino (nome del dominio locale; di default) tin.it Cdoaiinio esterno aggiunto manualmente).

nameserver <IP DNS esterno>

nameserver <secondo IP DNS esterno>

passwd shadow

Anche la gestione degli utenti e delle rispettive password è affidata ad un file contenuto nella cartella /etc, è precisamente al file passwd, dove vengono elencati gli utenti , le rispettive password, un eventuale commento, l'home directory e la shell utilizzata dall'utente quando effettua il login.

Ad ogni utente corrisponde una riga all'interno di questo file; ogni campo (nome login, password, user_ID, group_ID, informazioni, home directory, login shell) viene separato dai due punti.

Da notare che le passwords vengono presentate in forma crìptata; spesso è anche possibile che al loro posto ci vengano mostrati degli asterischi; questo significa che stiamo usando un secondo metodo di crittografia delle passwords denominato Shadow Security Suite. Il file che gestisce questo sistema di password è /etc/shadow; in questo file, che presenta una sintassi molto simile al già conosciuto <password> troveremo i nomi di login degli utenti con le rispettive passwords, anche stavolta ben criptate. E' possibile inoltre specificare, sempre in questo file, diverse opzioni, quali, ad esempio, il numero di giorni dopo i quali la password deve essere cambiata o il numero di giorni successivi alla scadenza della password trascorsi i quali l'account dell'utente viene disabilitato.

conf.modules

Un file con cui sarebbe bene prendere subito confidenza per la corretta configurazione hardware del sistema, è conf.modules (spesso e un link simbolico a modules.conf). In tale file, infatti, troviamo tutti quei parametri aggiuntivi che servono durante il boot per caricare correttamente le periferiche collegate. Vengono elencate le eventuali opzioni per i moduli del kernel (indirizzo IO e IRQ) delle periferiche di cui non è stato possibile fare l'autodetect. Con le vecchie schede ethernet con bus ISA, ad esempio, è assolutamente necessario fornire al sistema l'indirizzo IO e IRQ perché possano essere rilevate. Andremo quindi ad aggiungere al file conf.modules una entry del tipo :

options ne	io=0x260	irq=9

che indica che al caricamento del modulo ne (ethernet non pci) dovranno essere impostati come irq e indirizzi io per la scheda quelli indicati.

/etc/rc.d

Una subdirectory molto importante presente in /etc è rc.d/.

All'interno di quest'ultima troviamo

Livello Descrizione Cartella
0 Arresto /etc/rc.d/rc0.d
1 Utente singolo /etc/rc.d/rc1.d
2 Multi Utente senza NFS /etc/rc.d/rc2.d
3 Multi Utenza Completa /etc/rc.d/rc3.d
4 Inutilizzato /etc/rc.d/rc4.d
5 X11 (avvio server grafico) /etc/rc.d/rc5.d
6 Riavvio /etc/rc.d/rc6.d

tutti gli scripts dei processi e dei servizi che vengono avviati durante la procedura di bootstrap; sono inoltre presenti anche i rispettivi scripts di shutdown da eseguire durante lo spegnimento del sistema. Tali scripts sono inclusi in altre subdirectory a seconda del livello di esecuzione a cui sono stati assegnati. Ad ogni livello di esecuzione (da 0 a 6) corrispondono delle subdirectory diverse. All'interno, ad esempio, di /etc/rc.d/rc3.d possiamo trovare i fìles di startup e di shutdown del server fax HylaFax; questi sono:

S40Hylafax	(S=Start)
K40Hylafax	(K=Kill)

Il file che gestisce i diversi runlevel, impostandone anche quello di default (solitamente il 3) è /etc/inittab.

Al suo interno, troveremo la definizione di tutti i livelli di esecuzione con l'ordine di caricamento.

In questo file, inoltre, sono anche presenti le entries che avviano i diversi programmi di getty come il faxgetty (di Hylafax) e l'mgetty o che gestiscono il comportamento che il sistema deve assumere in caso di pressione dei tasti CTRL+ALT+DELETE o in assenza improvvisa di corrente (molti programmi per la gestione di gruppi di continuità, ad esempio, fanno riferimento a questo file di configurazione per ii loro avvio in caso dì interruzione della corrente).

Va precisato che nessun file presente in /etc ha la possibilità di essere modificato  (spesso non possono neanche essere letti) da altri utenti se non dall'amministratore (root), per chiari e ovvi motivi di sicurezza.
In /etc, inoltre, troviamo anche altre subdirectory contenenti diverse impostazioni, come nel caso del demone pppd che si basa sulle configu-razioni che trova in /etc/ppp/ e più precisamente nei fìles options, pap-secrets e pppscript o come nel caso del server di posta sendmail che rileva i propri settaggi (oltre che nel file principale /etc/sendmail.cf) anche all'interno della cartella /etc/mail.

In genere, quindi, ogni volta che abbiamo installato un programma è bene dare un'occhiata se non abbia magari aggiunto qualche file di configurazione all'interno di /etc, in modo tale da poter partire subito con la sua configurazione.