Anteprima
Vedrai una selezione di 13 pagine su 56
GNU/Linux e le reti TCP/IP Pag. 1 GNU/Linux e le reti TCP/IP Pag. 2
Anteprima di 13 pagg. su 56.
Scarica il documento per vederlo tutto.
GNU/Linux e le reti TCP/IP Pag. 6
Anteprima di 13 pagg. su 56.
Scarica il documento per vederlo tutto.
GNU/Linux e le reti TCP/IP Pag. 11
Anteprima di 13 pagg. su 56.
Scarica il documento per vederlo tutto.
GNU/Linux e le reti TCP/IP Pag. 16
Anteprima di 13 pagg. su 56.
Scarica il documento per vederlo tutto.
GNU/Linux e le reti TCP/IP Pag. 21
Anteprima di 13 pagg. su 56.
Scarica il documento per vederlo tutto.
GNU/Linux e le reti TCP/IP Pag. 26
Anteprima di 13 pagg. su 56.
Scarica il documento per vederlo tutto.
GNU/Linux e le reti TCP/IP Pag. 31
Anteprima di 13 pagg. su 56.
Scarica il documento per vederlo tutto.
GNU/Linux e le reti TCP/IP Pag. 36
Anteprima di 13 pagg. su 56.
Scarica il documento per vederlo tutto.
GNU/Linux e le reti TCP/IP Pag. 41
Anteprima di 13 pagg. su 56.
Scarica il documento per vederlo tutto.
GNU/Linux e le reti TCP/IP Pag. 46
Anteprima di 13 pagg. su 56.
Scarica il documento per vederlo tutto.
GNU/Linux e le reti TCP/IP Pag. 51
Anteprima di 13 pagg. su 56.
Scarica il documento per vederlo tutto.
GNU/Linux e le reti TCP/IP Pag. 56
1 su 56
Disdici quando vuoi 162x117
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Sintesi

Tesina - Premio maturità  2008

Titolo: Gnu/linux e le reti tcp/ip

Autore: Francesco Ceccarelli

Descrizione: descrizione e configurazione all'interno di una rete tcp/ip del sistema operativo gnu/linux

Materie trattate: informatica, sistemi, elettronica e telecomunicazioni

Area: tecnologica

Sommario: Al giorno d'oggi abbiamo quasi tutti a che fare, in molteplici situazioni, con il software libero. Talvolta anche inconsapevolmente. Penso però che pochi sappiano cos'è e cosa caratterizza il software libero. E' perciò necessaria una premessa generale, che ci faccia capire bene di cosa stiamo parlando, prima di addentrarci nei meandri del maggior esponente di questa vera e propria corrente filosofica dell'informatica odierna: il sistema operativo GNU/Linux. FILOSOFIA Quando una persona compra o

Estratto del documento

Ogni comando così dato in Linux non fa altro che richiamare un programma

eseguibile presente, come vedremo, in cartelle apposite. Se vogliamo eseguire

però un programma che non è presente in queste cartelle non dobbiamo

specificarne solo il nome, ma anche il percorso completo in cui esso si trova

all'interno del file system. Ad esempio se abbiamo compilato un programma

prova e questo si trova nella cartella /home allora dobbiamo digitare nella shell:

/home/prova

e quando spingeremo il tasto Invio questo verrà eseguito.

Possiamo inoltre specificare delle opzioni, ovvero quell'insieme di modi in cui

può funzionare un programma. Esse quando sono specificate sono quasi sempre

precedute da un – e spesso vogliono essere seguite da uno o più parametri.

Un parametro è un informazione che passiamo al programma per eseguire il suo

lavoro. Può essere ad esempio il nome di un file su cui salvare l'output oppure,

in un applicativo di rete, l'indirizzo di un computer.

I principali comandi della shell sono:

logout, che esce dalla shell, tornando alla fase di login;

man <parametro>, che visualizza la pagina di manuale del comando o del

file di sistema specificato come parametro; contiene informazioni utili su

come utilizzare programmi e loro file di configurazione;

pwd, che restituisce il punto del file system in cui ci troviamo;

cd <cartella>, che ci permette di muoverci all'interno del file system,

specificando la cartella in cui vogliamo spostarci;

ls <cartella>, che stampa a video il contenuto della cartella specificata.

Se eseguito senza parametri stampa il contenuto della cartella corrente;

cp <file> <nuova posizione>, che consente di copiare un file dalla

posizione in cui ci troviamo ad un'altra; se vogliamo copiare un file che

non si trova nella nostra posizione allora dobbiamo specificarne tutto il

percorso;

mv <file> <nuova posizione>, che funziona allo stesso modo del

comando precedente, ma permette di spostare il file; se nel secondo

parametro al posto di una cartella è specificato un nuovo nome il file

viene rinominato;

rm <file>, che permette di eliminare un file del sistema. Attenzione, i file

rimossi non sono più recuperabili!

mkdir <nome>, che consente all'utente di creare, dove ne ha i permessi,

una nuova cartella col nome specificato;

rmdir <cartella>, che elimina la cartella specificata nel parametro;

more <file di testo>, che stampa a video il contenuto di un file ASCII;

vim <file di testo>, che ci permette di editare o creare un file di testo, nel

caso il nome specificato non esista.

Nelle distribuzioni orientate all'uso desktop però un'interfaccia a caratteri non

può bastare. E' così stata sviluppata all'interno di ogni sistema un'architettura

client-server che prevede un processo server, detto X, che viene avviato

all'accensione del sistema e che fornisce tutti gli strumenti per disegnare

finestre sullo schermo e accedere alle system call. Il server X però da solo non

serve a molto. Ecco dunque che gli vengono affiancati dei client, ovvero un

insieme di programmi che sfruttano i servizi messi a disposizione dal server X

per creare un'interfaccia grafica (GUI). Questo insieme di programmi è detto

Desktop Manager e trova le sue più famose implementazioni in KDE e GNOME.

CECCARELLI Francesco Pagina 10 di 56 sabato 5 luglio 2008

Riassumiamo dunque con uno schema:

Nel proseguire dell'esposizione faremo però uso quasi esclusivamente

dell'interfaccia a caratteri, poiché meglio si presta alla configurazione del

sistema. FILE SYSTEM

Il file system è quel particolare meccanismo con cui il sistema operativo

organizza i dati sulle memorie di massa. In GNU/Linux il file system è gestito

secondo lo standard Unix per cui everything is a file; ciò vuol dire che ogni

periferica, ogni processo, e ogni qualsiasi altra risorsa è vista dal sistema

operativo come un banale file. Per far ciò, a livello di kernel, ogni file system

comunica con un'interfaccia software detta Virtual File System (VFS), che ha

come unica cartella radice la / e ha il compito di rendere Linux indipendente dal

reale tipo di file system a cui accediamo. Da un punto di vista logico, nella root

del VFS verranno poi montati ricorsivamente, uno dentro l'altro, tutti i reali file

system (ext2, nfs, fat32...) di ogni partizione, che saranno in seguito visibili,

all'interno della radice, come sue sottocartelle.

Tipicamente GNU/Linux necessita di due partizioni per lavorare correttamente:

una, non formattata e che quindi non viene montata, detta swap, al fine di

allocare le pagine di memoria virtuale. L'altra, formattata per lo più con file

system Ext3, che contiene invece tutte le subdirectory della radice. All'interno

di essa verranno poi montate ricorsivamente anche tutte le partizioni contenute

in chiavi usb, hard disk esterni, floppy, CD o altre partizioni dello stesso hard

CECCARELLI Francesco Pagina 11 di 56 sabato 5 luglio 2008

disk interno.

Ecco qua le piu' importanti directory di un tipico file system di GNU/Linux; la

partizione principale è montata nella cartella radice, che a sua volta contiene:

bin/, per gli eseguibili di sistema;

boot/, per i file che interessano il boot loader, immagine del kernel

compresa;

dev/, per i file che rappresentano le periferiche, le porte e gli altri

dispositivi del PC;

etc/, che contiene due parti fondamentali del sistema:

gli script di avvio, che contengono tutti i programmi in esecuzione

automatica (demoni), necessari all'avvio dei vari servizi;

i file di configurazione del sistema e dei programmi applicativi: essi non

sono scritti in un linguaggio universale, ma è importante sapere che in

tutti possiamo decidere commenti anteponendo ad essi il carattere #,

proprio come nei linguaggi di programmazione ad alto livello;

home/, che contiene le subdirectory in cui sono montate le partizioni con i

dati degli utenti;

lib/, con le principali librerie e i moduli del kernel che si possono caricare

in run-time;

mnt/, che contiene le directory dove solitamente sono montati i supporti

rimovibili;

proc/, che contiene le immagini dei processi

root/, per i file dell'utente amministratore;

sbin/, per gli eseguibili riservati all'amministratore;

sys/, per file necessari al corretto funzionamento del sistema operativo;

tmp/, per i file temporanei, creati dai vari applicativi;

usr/, per le librerie e gli eseguibili installati nel sistema;

var/, per alcuni dati variabili, come cache e spool directory.

Inoltre Linux, contrariamente ad altri sistemi operativi concorrenti, è in grado di

leggere sulla maggior parte dei file system in circolazione, garantendo la

massima compatibilità fra file system tipici di sistemi operativi diversi.

Le partizioni degli hard disk interni sono solitamente montate in automatico

all'avvio del sistema, poiché sono contenute nel file /etc/fstab. Per tutte le altre

però è necessario il montaggio e lo smontaggio logico, da effettuare

manualmente. Il comando per montare partizioni è mount:

mount <device> <mount point>

dove dobbiamo specificare:

il dispositivo da montare, che troviamo nella cartella /dev;

il mount point, che rappresenta la sottocartella in cui andrà montato

logicamente il dispositivo;

Per smontare un dispositivo si utilizza invece il comando umount, nella sintassi:

umount <device>

Entrambi i comandi necessitano dei privilegi di root.

UTENTI E PERMESSI

Quando fu sviluppato Linux il mondo era molto diverso da oggi. Il PC non era lo

standard assoluto che oggi conosciamo, ma tutta l'informatica del tempo

ruotava attorno ai grandi microcomputer, la cui potenza era divisa fra più

CECCARELLI Francesco Pagina 12 di 56 sabato 5 luglio 2008

terminali stupidi, che permettevano a più utenti di lavorare simultaneamente.

GNU/Linux quindi, derivando da Unix, non poteva che essere un sistema

operativo multiutente. Infatti in GNU/Linux esistono due tipi di utenti:

l'utente root, che rappresenta l'amministratore e che possiede qualsiasi

tipo di permesso su tutto il sistema; non è dunque consigliato utilizzare

questo utente per la normale attività, ma solo per le operazioni di

manutenzione, poiché un programma applicativo eseguito come root avrà

la possibilità di accedere a tutti i file dell'hard disk, anche quelli di

sistema;

tutti gli altri utenti, che avranno privilegi inferiori a quello di root, ma che

proprio per questo assicureranno una maggior protezione contro

programmi con scopi malevoli.

Il primo problema che però si presenta allo sviluppatore di un sistema

multiutente è certamente quello della gestione dei permessi di accesso alle

risorse. I permessi possono essere di tre tipi:

in lettura (r);

in scrittura (w);

in esecuzione (x).

Ogni file inoltre ha un proprietario e solo esso, assieme all'onnipotente utente

root, può deciderne i relativi permessi da shell.

Oltretutto tutti gli utenti del sistema operativo sono organizzati in gruppi.

Questo comporta l'aumento del numero di permessi che il sistema operativo

deve gestire, che per ogni risorsa diventano:

tre bit (rwx) per decidere i permessi che il proprietario ha su di essa.

Infatti l'utente root se volesse potrebbe benissimo decidere di prendere

controllo della risorsa e negargli l'accesso;

tre bit (rwx) per i permessi che hanno gli altri componenti del gruppo a cui

fa parte il proprietario;

tre bit (rwx) per i permessi che hanno tutti gli altri.

Il comando usato per modificare i permessi di un file è chmod, che interpreta i

permessi come una combinazione tra numeri ottali; in particolare valgono le

seguenti corrispondenze:

NUMERO PERMESSI DESCRIZIONE

OTTALE

0 Nessuna autorizzazione

­ ­ ­

1 Esecuzione

­ ­ x

2 Scrittura

­ w ­

3 Scrittura ed esecuzione

­ w x

4 Lettura

r ­ ­

5 Lettura ed esecuzione

r ­ x

6 Lettura e scrittura

r w ­ Tutti i permessi: lettura,

7 r w x scrittura ed esecuzione

La sintassi del comando è la seguente:

chmod <permessi> <nome file>

dove per permessi si intende una combinazione di tre numeri ottali, che

esprimono in ordine i permessi del proprietario, del gruppo e di tutti gli altri.

CECCARELLI Francesco Pagina 13 di 56 sabato 5 luglio 2008

Per assegnare ad un file un nuovo proprietario o un nuovo gruppo dobbiamo

invece utilizzare il comando chown, nella sintassi:

chown <utente>:<gruppo> <nome file>

mentre per visualizzare permessi e proprietari dei file di una cartella utilizziamo

il comando ls, affiancato dall'opzione -l.

Per quanto riguarda invece la gestione degli utenti e dei gruppi, l'utente root

può: aggiungere un nuovo utente, con il comando adduser <nome>;

rimuovere un utente, con deluser <nome>;

aggiungere un nuovo gruppo, con il comando addgroup <nome>;

rimuovere un gruppo, con delgroup <nome>.

Possiamo aggiungere invece utenti ai gruppi editando il file /etc/group e

accodando alla riga del gruppo gli utenti che vi vogliamo aggiungere, separati

da una virgola. Se la modifica coinvolge un utente che ha già effettuato

l'accesso al sistema, egli deve pero' necessariamente ripetere la procedura di

login, se vuole che le modifiche siano applicate.

Inoltre ogni utente ha una password associata. Questa può essere modificata

tramite il comando:

passwd <username>

Da ricordare che mentre l'utente root può cambiare qualsiasi password senza

sapere la precedente, gli altri utenti possono cambiare solo la propria password

e solo inserendo prima quella vecchia.

Abbiamo dunque descritto la gestione degli utenti in GNU/Linux: una gestione

abbastanza semplice, ma che permette all'amministratore di sistema di rendere

invulnerabile l'elaboratore da malintenzionati e da software indesiderati. Infatti

senza disporre dei permessi di root un ipotetico virus potrà solo accedere alle

risorse dell'utente che ha eseguito (anche inavvertitamente) il programma

maligno, con il solo inconveniente della possibile perdita di dati; inconveniente

irrisorio ai fini della stabilità del sistema.

GESTIONE DEL SOFTWARE

Una delle differenze chiave tra distribuzioni sta nella gestione dei pacchetti

software installati. La distribuzione che utilizziamo per la dimostrazione pratica

è Kubuntu, di derivazione Debian, perciò sarà qui descritto il sistema APT. APT è

il gestore standard dei pacchetti in Kubuntu, scelto per merito della sua estrema

Dettagli
Publisher
56 pagine