Ogni sistema operativo GNU/Linux ha un hostname e , anche se non necessariamente, una voce corrispondente nel domain name system (DNS). L'hostname è il nome che alcune applicazioni, come ad esempio i programmi di posta elettronica o dei web server, usano per identificare il sistema su cui sono in esecuzione. Molti di questi programmi forniranno degli avvertimenti o magari degli errori se l'hostname non è impostato correttamente.
Scegliere il nome
Gli amministratori di sistema con un po di esperienza usano diversi schemi e convenzioni per scegliere un hostname, ma non vi è un vero e proprio standard. Un buon metodo potrebbe essere quello di di impostare il nome del sistema in base alla sua funzione, e quindi nel caso dovessimo scegliere il nome per il terzo server di posta potremo chiamarlo mail3, smtp3, o qualcosa di simile, ma la scelta in definitiva sta solo a voi.
Ci sono solo alcune limitazioni:
- Non può essere più lungo di 64 caratteri
- Può contenere solo lettere,numeri e punti
Un'altra raccomandazione è che, all'interno di un sistema, il nome di ogni pc dovrebbe essere unico per evitare confusioni.
Il comando hostname
Prima di iniziare è sempre meglio controllare il nome del pc su cui stiamo lavorando usando il comando hostname. Un esempio potrebbe essere questo:
$ hostname
misterwhite
In mone "misterwhite" rappresenta il unqualified hostname del mio sistema operativo, invece il così detto fully-qualified domain name, o FQDN del mio sistema è il suo hostname combinato col suo dominio. Per mostrare quest'ultimo userò lo stesso comando di prima ma con l'opzione "-f":
$ hostname -f
misterwhite.company.com
Da questo esempio si può notare che il FQDN è solo l'hostname semplice più il nome di dominio separati da un punto.
Impostare l'hostname usando hostname
E' possibile usare il comando hostname per impostare il nome del sistema, specificandolo come parametro oppure specificando il nome di un file che contiene l'hostname. Se volessimo cambiare il nome del sistema da misterwhite in misterblack,usufruendo naturalmente dei diritti d'amministratore (root):
# hostname misterblack
Usando invece un file che contiene il nuovo nome:
# cat /etc/hostname
misterblack
# hostname -F /etc/hostname
# hostname
misterblack
In questa sequenza di comandi, prima abbiamo verificato il contenuto del file /etc/hostname e dopo lo abbiamo usato per impostare il nuovo hostname. Infine abbiamo verificato che effettivamente il nome del sistema sia stato veramente cambiato.
Configurare automaticamente l' hostname
Il comando visto nel paragrafo precedente funziona benissimo ma dovremo eseguirlo ad ogni riavvio, dato che la variabile contenente il nome di sistema non viene conservata dopo un riavvio.
Ogni distribuzione GNU/Linux prevede qualche script per il ripristino del nome di sistema, il quale viene eseguito automaticamente all'avvio ed in questo modo hostname viene ripristinato.
Fare un esempio per ogni possibile distribuzione è impossibile, ma una volta identificato lo script incriminato, non è difficile capire come agisce, dato che al suo interno verrà usato sempre il comando hostname in una delle due forme descritte in precedenza.
In una distribuzione Debian il nome viene conservato nel file /etc/hostname che contiene il nome di sistema:
# cat /etc/hostname
misterblack
uno script con all'interno il comando
hostname -F /etc/hostname
all'avvio ripristinerà quel nome di sistema, quindi se volessimo cambiarlo dovremo non solo usare il comando , ma modificare anche il contenuto di questo file, altrimenti al successivo riavvio verrebbe ripristinato il nome precedente.
Il nome di dominio del sistema
Vediamo ora come un sistema GNU/Linux, in particolare, il comando hostname, determina il proprio dominio.
A questo proposito dobbiamo precisare che ci possono essere diversi sottosistemi che collaborano per ricavare questa informazione e questo dipende dalla configurazione del proprio sistema. In generale, però, possiamo identificare le principali due fonti da cui vengono ricavate queste informazioni. La prima è il file /etc/hosts, e la seconda il Domain Name System (DNS).
Una volta che è stato impostato il nome di host semplice, questo viene memorizzato nelle variabili di kernel in esecuzione, per cui sarà facile ricavarlo con una richiamo a questa variabile. Per ricavare il "fully-qualified domain name" (FQDN) il sistema ricorre prima al database statico presente in un file e poi al servizio DNS.
Il database statico
Il file /etc/hosts è un semplice file di testo che fa da database e contiene gli indirizzi e i nomi ad essi associati.
Ogni linea inizia con un indirizzo IP al quale vengono associati uno o più nomi.
Il primo nome in questa lista è il FQDN associato all'indirizzo, mentre i restanti sono degli alias.
Un esempio di file /etc/hosts potrebbe essere:
69.56.173.86 misterwhite.company.com misterwhite
Il comando hostname prima chiede di "risolvere" l'indirizzo "misterwhite", che è l'hostname semplice, poi alla risposta "69.56.173.86" verrà inoltrata una ulteriore richiesta che otterrà come risposta il nome FQDN del sistema e cioè "misterwhite.company.com". In questo modo il comando hostname ricava il FQDN sul sistema.





