Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della...

194
Fondamenti di GNU/Linux Fondamenti di GNU/Linux Basato su Basato su Debian Debian GNU/Linux GNU/Linux di Michele Marcucci di Michele Marcucci http://www.michelem.org/ http://www.michelem.org/ Liberamente tratto da “Appunti di Informatica Libera” Liberamente tratto da “Appunti di Informatica Libera” di Daniele Giacomini (http://a2.swlibero.org) di Daniele Giacomini (http://a2.swlibero.org)

Transcript of Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della...

Page 1: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

Fondamenti di GNU/LinuxFondamenti di GNU/LinuxBasato su Basato su DebianDebian GNU/Linux GNU/Linux

di Michele Marcuccidi Michele Marcuccihttp://www.michelem.org/http://www.michelem.org/

Liberamente tratto da “Appunti di Informatica Libera”Liberamente tratto da “Appunti di Informatica Libera”

di Daniele Giacomini (http://a2.swlibero.org)di Daniele Giacomini (http://a2.swlibero.org)

Page 2: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 22

Capitolo 1Capitolo 1Introduzione breve a Introduzione breve a

GNU/LinuxGNU/Linux

Page 3: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 33

Distinzione tra lettere maiuscole e Distinzione tra lettere maiuscole e lettere minuscolelettere minuscole

I sistemi operativi Unix, come GNU/Linux, I sistemi operativi Unix, come GNU/Linux, sono sensibili alla differenza tra le lettere sono sensibili alla differenza tra le lettere maiuscole e minuscole!maiuscole e minuscole!

Nominare un file Nominare un file ciao ciao e’ completamente e’ completamente diverso dal nominarlo diverso dal nominarlo ciAociAo

Page 4: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 44

RootRoot

una directory una directory rootroot, che è la directory principale di , che è la directory principale di un file system, ovvero la directory radice;un file system, ovvero la directory radice;

un file system un file system rootroot, che è il file system principale , che è il file system principale di un gruppo che si unisce insieme;di un gruppo che si unisce insieme;

un utente un utente rootroot, che è l'amministratore;, che è l'amministratore; un dominio un dominio rootroot, che è il dominio principale;, che è il dominio principale; una finestra una finestra rootroot che è quella principale, ovvero che è quella principale, ovvero

la superficie grafica (la superficie grafica (desktopdesktop) su cui si ) su cui si appoggiano le altre finestre del sistema grafico appoggiano le altre finestre del sistema grafico X.X.

Page 5: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 55

UtentiUtenti

Amministratore del Amministratore del sistema o superuser sistema o superuser (root)(root)

Qualunque altro Qualunque altro utenteutente

Amministratore:Amministratore: Puo’ fare tuttoPuo’ fare tutto

Utente:Utente: Utilizza il sistemaUtilizza il sistema Non organizza il Non organizza il

sistemasistema Non accede a Non accede a

file/programmi file/programmi riservatiriservati

Page 6: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 66

Composizione del Composizione del sistemasistema

Page 7: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 77

Composizione essenziale del sistemaComposizione essenziale del sistema

un sistema di avvio o un sistema di avvio o bootboot;; un kernel;un kernel; un file system;un file system; un sistema di inizializzazione e gestione dei processi in un sistema di inizializzazione e gestione dei processi in

esecuzione;esecuzione; un sistema di gestione della rete;un sistema di gestione della rete; un sistema di gestione delle stampe;un sistema di gestione delle stampe; un sistema di registrazione e controllo degli accessi;un sistema di registrazione e controllo degli accessi; una shell (interprete dei comandi);una shell (interprete dei comandi); alcuni programmi di servizio (alcuni programmi di servizio (utilityutility) per la gestione del ) per la gestione del

sistema;sistema; strumenti di sviluppo software (C/C++).strumenti di sviluppo software (C/C++).

Page 8: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 88

Avvio/BootAvvio/Boot

Esegue le istruzioni contenute nel primo Esegue le istruzioni contenute nel primo settore di un dischetto o di un cdrom, settore di un dischetto o di un cdrom, oppure del cosidetto MBR (Master Boot oppure del cosidetto MBR (Master Boot Record) che e’ il primo settore del primo Record) che e’ il primo settore del primo disco fissodisco fisso

Tali istruzioni provvedono all’esecuzione Tali istruzioni provvedono all’esecuzione del Kernel (lo avvia)del Kernel (lo avvia)

Page 9: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 99

Principali modi di Avvio/BootPrincipali modi di Avvio/Boot

LILO, che è in grado di predisporre un LILO, che è in grado di predisporre un settore di avvio su un dischetto, sull'MBR settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione o sul primo settore della partizione contenente GNU/Linux;contenente GNU/Linux;

GRUB, che è funzionalmente simile a GRUB, che è funzionalmente simile a LILO;LILO;

Loadlin, che permette di avviare Loadlin, che permette di avviare l'esecuzione di un kernel Linux da una l'esecuzione di un kernel Linux da una sessione Dos.sessione Dos.

Page 10: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 1010

KernelKernel

Il kernel, come suggerisce il nome, è il nocciolo Il kernel, come suggerisce il nome, è il nocciolo del sistema operativodel sistema operativo

I programmi utilizzano il kernel per le loro attività I programmi utilizzano il kernel per le loro attività e in questa maniera sono sollevati dall'agire e in questa maniera sono sollevati dall'agire direttamente con la CPUdirettamente con la CPU

Di solito, è costituito da un file unico, ma può Di solito, è costituito da un file unico, ma può comprendere anche moduli aggiuntivi, per la comprendere anche moduli aggiuntivi, per la gestione di componenti hardware specifici che gestione di componenti hardware specifici che devono poter essere attivati e disattivati durante devono poter essere attivati e disattivati durante il funzionamento del sistema.il funzionamento del sistema.

Page 11: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 1111

KernelKernel

il kernel viene avviato (attraverso il il kernel viene avviato (attraverso il sistema di avvio) sistema di avvio)

esegue una serie di controlli diagnostici in esegue una serie di controlli diagnostici in base ai tipi di dispositivi per il quale è stato base ai tipi di dispositivi per il quale è stato predispostopredisposto

monta (monta (mountmount) il file system principale ) il file system principale ((rootroot))

avvia la procedura di inizializzazione del avvia la procedura di inizializzazione del sistema (Init) sistema (Init)

Page 12: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 1212

File SystemFile System

Il file system è il modo con cui sono organizzati i Il file system è il modo con cui sono organizzati i dati all'interno di un disco o di una sua partizionedati all'interno di un disco o di una sua partizione

tutti i file system cui si vuole poter accedere tutti i file system cui si vuole poter accedere devono essere concatenati assieme, in modo da devono essere concatenati assieme, in modo da formare un solo file system globaleformare un solo file system globale

non esiste la distinzione tra un'unità di non esiste la distinzione tra un'unità di memorizzazione e un'altra, come avviene nel memorizzazione e un'altra, come avviene nel Dos Dos

Page 13: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 1313

Inizializzazione e gestione dei processiInizializzazione e gestione dei processi

GNU/Linux, è in multiprogrammazione, GNU/Linux, è in multiprogrammazione, ovvero ovvero multitaskingmultitasking

esiste un gestore dei processi elaborativi: esiste un gestore dei processi elaborativi: InitInit

viene avviato subito dopo l'attivazione del viene avviato subito dopo l'attivazione del file system principalefile system principale

Si occupa di eseguire la procedura di Si occupa di eseguire la procedura di inizializzazione del sistemainizializzazione del sistema

Page 14: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 1414

Gestione dei servizi di reteGestione dei servizi di rete

inetd che si occupa di attivare di volta in inetd che si occupa di attivare di volta in volta, quando necessario, alcuni demoni volta, quando necessario, alcuni demoni che poi gestiscono servizi specifici;che poi gestiscono servizi specifici;

tcpd che si occupa di controllare e filtrare tcpd che si occupa di controllare e filtrare l'utilizzazione dei servizi offerti dal proprio l'utilizzazione dei servizi offerti dal proprio sistema contro gli accessi indesiderati;sistema contro gli accessi indesiderati;

rpc.portmap (oppure solo portmap) che si rpc.portmap (oppure solo portmap) che si occupa del protocollo RPC (occupa del protocollo RPC (Remote Remote procedure callprocedure call).).

Page 15: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 1515

Gestione della stampaGestione della stampa

un sistema di coda di stampa (un sistema di coda di stampa (spoolspool) ) GNU/Linux utilizza normalmente il GNU/Linux utilizza normalmente il

demone demone lpdlpd è in grado di ricevere richieste di stampa è in grado di ricevere richieste di stampa

remote e di inviare richieste di stampa a remote e di inviare richieste di stampa a elaboratori remotielaboratori remoti

Page 16: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 1616

Registrazione e controllo degli accessiRegistrazione e controllo degli accessi

ogni utente che accede deve essere stato ogni utente che accede deve essere stato registrato precedentementeregistrato precedentemente

Fase di Fase di loginlogin Fase di Fase di logoutlogout

Page 17: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 1717

Shell: interprete dei comandiShell: interprete dei comandi

Ciò che permette a un utente di interagire con un Ciò che permette a un utente di interagire con un sistema operativo è la shell, che sistema operativo è la shell, che si occupa di si occupa di interpretare ed eseguire i comandi dati interpretare ed eseguire i comandi dati dall'utentedall'utente..

Il funzionamento di un sistema Unix dipende Il funzionamento di un sistema Unix dipende molto dalla shell utilizzata, di conseguenza, la molto dalla shell utilizzata, di conseguenza, la scelta della shell è molto importante. scelta della shell è molto importante. La shell La shell standard del sistema GNU/Linux è Bashstandard del sistema GNU/Linux è Bash (il (il programma bash).programma bash).

Page 18: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 1818

Shell jobsShell jobs

mostra l'invito, o mostra l'invito, o promptprompt, all'inserimento dei , all'inserimento dei comandi;comandi;

interpreta la riga di comando data dall'utente;interpreta la riga di comando data dall'utente; esegue delle sostituzioni, in base ai caratteri jolly esegue delle sostituzioni, in base ai caratteri jolly

e alle variabili di ambiente;e alle variabili di ambiente; mette a disposizione alcuni comandi interni;mette a disposizione alcuni comandi interni; mette in esecuzione i programmi;mette in esecuzione i programmi; gestisce la ridirezione dell'input e dell'output;gestisce la ridirezione dell'input e dell'output; è in grado di interpretare ed eseguire dei file è in grado di interpretare ed eseguire dei file

script di shell.script di shell.

Page 19: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 1919

Programmi di servizio per la gestione del sistemaProgrammi di servizio per la gestione del sistema

I comandi interni di una shell non bastano I comandi interni di una shell non bastano per svolgere tutte le attività di per svolgere tutte le attività di amministrazione del sistema.amministrazione del sistema.

I programmi di servizio sono quelli che di I programmi di servizio sono quelli che di solito hanno piccole dimensioni, sono solito hanno piccole dimensioni, sono destinati a scopi specifici di destinati a scopi specifici di amministrazione del sistema o anche solo amministrazione del sistema o anche solo di uso comune.di uso comune.

Page 20: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 2020

Programmi di servizio per la gestione del sistemaProgrammi di servizio per la gestione del sistema

Sono contenuti solitamente all'interno Sono contenuti solitamente all'interno delle directory /bin/ e /usr/bin/delle directory /bin/ e /usr/bin/

Quelli riservati all'uso da parte Quelli riservati all'uso da parte dell'amministratore del sistema, l'utente dell'amministratore del sistema, l'utente root, sono contenuti normalmente in /sbin/ root, sono contenuti normalmente in /sbin/ e /usr/sbin/e /usr/sbin/

(La lettera «s» iniziale, sta per (La lettera «s» iniziale, sta per superusersuperuser ) )

Page 21: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 2121

Strumenti di sviluppo softwareStrumenti di sviluppo software

Tutti i sistemi operativi devono avere un mezzo Tutti i sistemi operativi devono avere un mezzo per produrre del softwareper produrre del software

GNU/Linux deve essere in grado di compilare GNU/Linux deve essere in grado di compilare programmi scritti in linguaggio C/C++ programmi scritti in linguaggio C/C++

Compilatore in linguaggio C/C++ e altri Compilatore in linguaggio C/C++ e altri programmi di contorno, sono indispensabili per programmi di contorno, sono indispensabili per poter installare del software distribuito in forma poter installare del software distribuito in forma sorgente non compilata.sorgente non compilata.

Page 22: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 2222

DispositiviDispositivi

Page 23: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 2323

DispositiviDispositivi

I vari componenti hardware di un I vari componenti hardware di un elaboratore, sono rappresentati in un elaboratore, sono rappresentati in un sistema Unix come file di dispositivo, sistema Unix come file di dispositivo, contenuti normalmente nella directory contenuti normalmente nella directory /dev//dev/ ( (devicedevice).).

Quando si vuole accedere direttamente a Quando si vuole accedere direttamente a un dispositivo, lo si fa utilizzando il nome un dispositivo, lo si fa utilizzando il nome del file di dispositivo corrispondente.del file di dispositivo corrispondente.

Page 24: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 2424

TipiTipi

a carattere, cioè in grado di gestire i dati in a carattere, cioè in grado di gestire i dati in blocchetti di un solo byte per volta;blocchetti di un solo byte per volta;

a blocchi, cioè in grado di gestire i dati a blocchi, cioè in grado di gestire i dati solo in blocchi (settori) di una dimensione solo in blocchi (settori) di una dimensione fissa.fissa.

Il dispositivo a caratteri tipico è la console o Il dispositivo a caratteri tipico è la console o la porta seriale, mentre il dispositivo a la porta seriale, mentre il dispositivo a blocchi tipico è un'unità a discoblocchi tipico è un'unità a disco

Page 25: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 2525

Tipi: EsempiTipi: Esempi

/dev/fd0 -> Prima unita’ floppy/dev/fd0 -> Prima unita’ floppy /dev/hda -> Primo disco IDE/dev/hda -> Primo disco IDE /dev/hda1 -> prima partizione del primo disco IDE/dev/hda1 -> prima partizione del primo disco IDE /dev/hdb -> secondo disco IDE/dev/hdb -> secondo disco IDE /dev/sda -> primo disco SCSI/dev/sda -> primo disco SCSI /dev/sda1 -> prima partizione del primo disco SCSI/dev/sda1 -> prima partizione del primo disco SCSI /dev/lp0 -> prima porta parallela/dev/lp0 -> prima porta parallela /dev/ttyS0 -> prima porta seriale/dev/ttyS0 -> prima porta seriale /dev/null -> il “nulla” o anche il “cestino”/dev/null -> il “nulla” o anche il “cestino”

Page 26: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 2626

DischiDischi

Le unità di memorizzazione a dischi sono Le unità di memorizzazione a dischi sono dispositivi come gli altri, ma possono dispositivi come gli altri, ma possono essere trattati in due modi diversi a essere trattati in due modi diversi a seconda delle circostanzeseconda delle circostanze

I dischi: possono essere visti come dei file I dischi: possono essere visti come dei file enormienormi

Le partizioni: come contenitori di file Le partizioni: come contenitori di file (file system).(file system).

Page 27: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 2727

Organizzazione di un Organizzazione di un file system Unixfile system Unix

Page 28: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 2828

Organizzazione di un file system UnixOrganizzazione di un file system Unix

Tutto ciò che è contenuto in un Tutto ciò che è contenuto in un file system Unix è in forma di file system Unix è in forma di filefile: : anche una directory è un anche una directory è un filefile..

Page 29: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 2929

File normaleFile normale

Quando si vuole fare riferimento a un file Quando si vuole fare riferimento a un file nel senso stretto del termine, ovvero un nel senso stretto del termine, ovvero un archivio di dati, se si vuole evitare archivio di dati, se si vuole evitare qualunque ambiguità si utilizza il termine qualunque ambiguità si utilizza il termine file normale, o file normale, o regular fileregular file..

Page 30: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 3030

DirectoryDirectory Una directory è un file speciale contenente riferimenti ad Una directory è un file speciale contenente riferimenti ad

altri filealtri file I dati contenuti in un file system sono organizzati in I dati contenuti in un file system sono organizzati in

forma gerarchica ad forma gerarchica ad alberoalbero

ramo ramo .----->o.----->o | | .------>o .------>o | ramo || ramo |radice o----------->o-------->o nodoradice o----------->o-------->o nodo || `------->o nodo `------->o nodo

Page 31: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 3131

DirectoryDirectory

Per identificare un nodo (file o directory) Per identificare un nodo (file o directory) all'interno di questa gerarchia, si definisce all'interno di questa gerarchia, si definisce il percorso (il percorso (pathpath))

Il percorso è espresso da una sequenza di Il percorso è espresso da una sequenza di nomi di nodi che devono essere nomi di nodi che devono essere attraversati, separati da una barra obliqua attraversati, separati da una barra obliqua (/)(/)

Page 32: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 3232

PathPath Percorso relativo: quando parte dalla posizione Percorso relativo: quando parte dalla posizione

corrente (o attuale) del grafo per raggiungere la corrente (o attuale) del grafo per raggiungere la destinazione desideratadestinazione desiderata

Percorso assoluto: Un percorso è assoluto quando Percorso assoluto: Un percorso è assoluto quando parte dalla radiceparte dalla radice

Il nodo della radice non ha un nome come gli altri: Il nodo della radice non ha un nome come gli altri: viene rappresentato con una sola barra obliqua (/), viene rappresentato con una sola barra obliqua (/), di conseguenza, un percorso che inizia con tale di conseguenza, un percorso che inizia con tale simbolo, è un percorso assolutosimbolo, è un percorso assoluto

Quando in un percorso si vuole tornare indietro si Quando in un percorso si vuole tornare indietro si usa un simbolo speciale rappresentato da due punti usa un simbolo speciale rappresentato da due punti in sequenza (..)in sequenza (..)

In alcuni casi può essere utile poter identificare il In alcuni casi può essere utile poter identificare il nodo della posizione corrente. Il simbolo utilizzato è nodo della posizione corrente. Il simbolo utilizzato è un punto singolo (.)un punto singolo (.)

Page 33: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 3333

Collegamenti (link)Collegamenti (link)

è possibile inserire dei collegamenti aggiuntivi, o è possibile inserire dei collegamenti aggiuntivi, o linklink, che permettono l'utilizzo di percorsi , che permettono l'utilizzo di percorsi alternativi per raggiungere determinati nodi. Di alternativi per raggiungere determinati nodi. Di questi link ne esistono due tipi:questi link ne esistono due tipi:

Collegamenti fisiciCollegamenti fisici, , hard link: hard link: è un collegamento che una è un collegamento che una volta creato ha lo stesso livello di importanza di quelli volta creato ha lo stesso livello di importanza di quelli originali e non è distinguibile da quelli.originali e non è distinguibile da quelli.

Collegamento simbolicoCollegamento simbolico, , link simbolicolink simbolico, , symlink: symlink: è un file è un file speciale contenente un riferimento a un altro percorsospeciale contenente un riferimento a un altro percorso

Page 34: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 3434

PermessiPermessi

I file di un file system Unix appartengono I file di un file system Unix appartengono simultaneamente a un utente e a un simultaneamente a un utente e a un gruppo di utentigruppo di utenti

L'utente proprietario può modificare i L'utente proprietario può modificare i permessi di accesso ai suoi file, limitando permessi di accesso ai suoi file, limitando questi anche per se stessoquesti anche per se stesso

Si distinguono tre tipi di accesso: Si distinguono tre tipi di accesso: letturalettura, , scritturascrittura, , esecuzioneesecuzione

Page 35: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 3535

Permessi per file normaliPermessi per file normali

l'accesso in lettura permette di leggerne il l'accesso in lettura permette di leggerne il contenuto;contenuto;

l'accesso in scrittura permette di l'accesso in scrittura permette di modificarne il contenuto;modificarne il contenuto;

l'accesso in esecuzione permette di l'accesso in esecuzione permette di eseguirlo, se si tratta di un eseguibile eseguirlo, se si tratta di un eseguibile binario o di uno script di qualunque tipo.binario o di uno script di qualunque tipo.

Page 36: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 3636

Permessi per le directoryPermessi per le directory

l'accesso in lettura permette di leggerne il l'accesso in lettura permette di leggerne il contenuto, ovvero di poter conoscere contenuto, ovvero di poter conoscere l'elenco dei file in esse contenuti (di l'elenco dei file in esse contenuti (di qualunque tipo essi siano);qualunque tipo essi siano);

l'accesso in scrittura permette di l'accesso in scrittura permette di modificarne il contenuto, ovvero di creare, modificarne il contenuto, ovvero di creare, eliminare e rinominare dei file;eliminare e rinominare dei file;

l'accesso in esecuzione permette di l'accesso in esecuzione permette di attraversare una directory.attraversare una directory.

Page 37: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 3737

Permessi in forma di stringaPermessi in forma di stringa I permessi possono essere rappresentati attraverso una stringa di I permessi possono essere rappresentati attraverso una stringa di

nove caratteri in cui possono apparire le lettere r, w, x, oppure un nove caratteri in cui possono apparire le lettere r, w, x, oppure un trattino (-)trattino (-)

I primi tre caratteri della stringa rappresentano i privilegi concessi al I primi tre caratteri della stringa rappresentano i privilegi concessi al proprietario stesso, il gruppetto di tre caratteri successivo proprietario stesso, il gruppetto di tre caratteri successivo rappresenta i privilegi degli utenti appartenenti al gruppo, il rappresenta i privilegi degli utenti appartenenti al gruppo, il gruppetto finale di tre caratteri rappresenta i privilegi concessi agli gruppetto finale di tre caratteri rappresenta i privilegi concessi agli altri utenti.altri utenti.

rwxr-xr--rwxr-xr--rwx = proprietario (User) -> lettura/scrittura/esecuzionerwx = proprietario (User) -> lettura/scrittura/esecuzioner-x = gruppo (Group) -> lettura/esecuzioner-x = gruppo (Group) -> lettura/esecuzioner-- = tutti gli altri (Others) -> letturar-- = tutti gli altri (Others) -> letturaU G OU G O

Page 38: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 3838

Permessi in forma numericaPermessi in forma numerica I permessi possono essere rappresentati attraverso una serie di tre I permessi possono essere rappresentati attraverso una serie di tre

cifre numeriche, in cui la prima rappresenta i privilegi dell'utente cifre numeriche, in cui la prima rappresenta i privilegi dell'utente proprietario, la seconda quelli del gruppo e la terza quelli degli altri proprietario, la seconda quelli del gruppo e la terza quelli degli altri utentiutenti

Il permesso di lettura corrisponde al numero 4, il permesso di Il permesso di lettura corrisponde al numero 4, il permesso di scrittura corrisponde al numero 2, il permesso di esecuzione scrittura corrisponde al numero 2, il permesso di esecuzione corrisponde al numero 1 corrisponde al numero 1

Il numero che rappresenta il permesso attribuito a un tipo di utente, Il numero che rappresenta il permesso attribuito a un tipo di utente, si ottiene sommando i numeri corrispondenti ai privilegi che si si ottiene sommando i numeri corrispondenti ai privilegi che si vogliono concederevogliono concedere

6456456 = User -> 4+2 lettura/scrittura6 = User -> 4+2 lettura/scrittura4 = Group -> 4 lettura4 = Group -> 4 lettura5 = Others -> 4+1 lettura/esecuzione5 = Others -> 4+1 lettura/esecuzione

Page 39: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 3939

Date dei fileDate dei file

la data e l'ora di creazione: viene modificata in la data e l'ora di creazione: viene modificata in particolare quando si cambia lo stato del file particolare quando si cambia lo stato del file (permessi e proprietà) e si riferisce (permessi e proprietà) e si riferisce precisamente al cambiamento di inode (che precisamente al cambiamento di inode (che verrà descritto più avanti);verrà descritto più avanti);

la data e l'ora di modifica: viene modificata la data e l'ora di modifica: viene modificata quando si modifica il contenuto del file;quando si modifica il contenuto del file;

la data e l'ora di accesso: viene modificata la data e l'ora di accesso: viene modificata quando si accede al file anche solo in lettura.quando si accede al file anche solo in lettura.

Page 40: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 4040

Interpretazione dei comandiInterpretazione dei comandi

Page 41: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 4141

File globbingFile globbing Il Il globglob (o (o globbingglobbing) è il metodo attraverso il quale, ) è il metodo attraverso il quale,

tramite un modello simbolico, è possibile indicare un tramite un modello simbolico, è possibile indicare un gruppo di nomi di filegruppo di nomi di file

* l'asterisco rappresenta un gruppo qualsiasi di caratteri, * l'asterisco rappresenta un gruppo qualsiasi di caratteri, compreso il punto, purché questo punto non si trovi compreso il punto, purché questo punto non si trovi all'inizio del nome;all'inizio del nome;

? il punto interrogativo rappresenta un carattere ? il punto interrogativo rappresenta un carattere qualsiasi, compreso il punto, purché questo punto non si qualsiasi, compreso il punto, purché questo punto non si trovi all'inizio del nome;trovi all'inizio del nome;

[...] le parentesi quadre permettono di rappresentare un [...] le parentesi quadre permettono di rappresentare un carattere qualsiasi tra quelli contenuti al loro interno, o carattere qualsiasi tra quelli contenuti al loro interno, o un intervallo di caratteri possibili.un intervallo di caratteri possibili.

Page 42: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 4242

Tilde (~)Tilde (~)

la shell si occupa di eseguire la la shell si occupa di eseguire la sostituzione del carattere tilde (~)sostituzione del carattere tilde (~)

Il simbolo ~ da solo viene sostituito dalla Il simbolo ~ da solo viene sostituito dalla shell con la directory personale dell'utente shell con la directory personale dell'utente che sta utilizzando il sistemache sta utilizzando il sistema

un nominativo-utente preceduto dal un nominativo-utente preceduto dal simbolo ~, viene sostituito dalla shell con simbolo ~, viene sostituito dalla shell con la directory personale dell'utente indicatola directory personale dell'utente indicato

Page 43: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 4343

Variabili d’ambienteVariabili d’ambiente

Le variabili di ambiente sono gestite dalla shell e Le variabili di ambiente sono gestite dalla shell e costituiscono uno dei modi attraverso cui si costituiscono uno dei modi attraverso cui si configura un sistema.configura un sistema.

I programmi possono leggere alcune variabili di I programmi possono leggere alcune variabili di loro interesse e modificare il proprio loro interesse e modificare il proprio comportamento in base al loro contenutocomportamento in base al loro contenuto

Una riga di comando può fare riferimento a una Una riga di comando può fare riferimento a una variabile di ambiente: la shell provvede a variabile di ambiente: la shell provvede a sostituirne l'indicazione con il suo contenutosostituirne l'indicazione con il suo contenuto

Page 44: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 4444

Ridirezioni e PipelineRidirezioni e Pipeline

Page 45: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 4545

Canali stardardCanali stardard

I programmi, quando vengono eseguiti, hanno a I programmi, quando vengono eseguiti, hanno a disposizione alcuni canali standard per il flusso dei dati disposizione alcuni canali standard per il flusso dei dati (input/output). Questi sono: standard input, standard (input/output). Questi sono: standard input, standard output e standard error.output e standard error.

Standard input: Standard input: viene utilizzato come fonte standard viene utilizzato come fonte standard per i dati in ingresso (input) nel programma. (<)per i dati in ingresso (input) nel programma. (<)

Standard output:Standard output: viene utilizzato come destinazione viene utilizzato come destinazione standard per i dati in uscita (output) dal programma. (>)standard per i dati in uscita (output) dal programma. (>)

Standard error:Standard error: viene utilizzato come destinazione viene utilizzato come destinazione standard per i dati in uscita dal programma derivati da standard per i dati in uscita dal programma derivati da situazioni anomale. (2>)situazioni anomale. (2>)

Page 46: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 4646

PipelinePipeline

Lo standard input è rappresentato di norma dai Lo standard input è rappresentato di norma dai dati provenienti dalla tastiera del terminaledati provenienti dalla tastiera del terminale

Lo standard output e lo standard error sono Lo standard output e lo standard error sono emessi normalmente attraverso lo schermo del emessi normalmente attraverso lo schermo del terminaleterminale

Per mezzo della shell si possono eseguire delle Per mezzo della shell si possono eseguire delle ridirezioni di questi flussi di dati, per esempio ridirezioni di questi flussi di dati, per esempio facendo in modo che lo standard output di un facendo in modo che lo standard output di un programma sia inserito come standard input di programma sia inserito come standard input di un altro, creando così una un altro, creando così una pipelinepipeline

Page 47: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 4747

Stardard inputStardard input

programmaprogramma < < file_di_datifile_di_dati Si ridirige lo standard input utilizzando il Si ridirige lo standard input utilizzando il

simbolo minore (<) seguito dalla fonte simbolo minore (<) seguito dalla fonte alternativa di datialternativa di dati

Il programma a sinistra del simbolo < Il programma a sinistra del simbolo < riceve come standard input il contenuto riceve come standard input il contenuto del file indicato a destradel file indicato a destra

Page 48: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 4848

Standard outputStandard output

programmaprogramma > > file_di_datifile_di_dati Si ridirige lo standard output utilizzando il Si ridirige lo standard output utilizzando il

simbolo maggiore (>) seguito dalla destinazione simbolo maggiore (>) seguito dalla destinazione alternativa dei datialternativa dei dati

Il programma a sinistra del simbolo > emette il Il programma a sinistra del simbolo > emette il suo standard output all'interno del file indicato a suo standard output all'interno del file indicato a destra che viene creato per l'occasionedestra che viene creato per l'occasione

Lo standard output può essere aggiunto a un file Lo standard output può essere aggiunto a un file preesistente; in tal caso si utilizza il simbolo >>preesistente; in tal caso si utilizza il simbolo >>

Page 49: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 4949

Standard errorStandard error

programmaprogramma 2> 2> file_di_datifile_di_dati Si ridirige lo standard error utilizzando il simbolo Si ridirige lo standard error utilizzando il simbolo

2> seguito dalla destinazione alternativa dei dati2> seguito dalla destinazione alternativa dei dati Il programma a sinistra del simbolo 2> emette il Il programma a sinistra del simbolo 2> emette il

suo standard error all'interno del file indicato a suo standard error all'interno del file indicato a destra che viene creato per l'occasionedestra che viene creato per l'occasione

Lo standard error può essere aggiunto a un file Lo standard error può essere aggiunto a un file preesistente; in tal caso si utilizza il simbolo 2>>preesistente; in tal caso si utilizza il simbolo 2>>

Page 50: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 5050

PipelinePipeline

programma1programma1 | | programma2programma2 [[ | | programmaprogramma33......]]

Si ridirige lo standard output di un Si ridirige lo standard output di un programma nello standard input di un programma nello standard input di un altro, utilizzando il simbolo barra verticale altro, utilizzando il simbolo barra verticale (|)(|)

Il programma a sinistra del simbolo | Il programma a sinistra del simbolo | emette il suo standard output nello emette il suo standard output nello standard input di quello che sta a destra standard input di quello che sta a destra

Page 51: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 5151

Comandi e programmi di Comandi e programmi di servizio di uso comuneservizio di uso comune

Page 52: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 5252

Interpretazione della sintassiInterpretazione della sintassi Le Le metavariabilimetavariabili, scritte in questo modo, descrivono l'informazione che deve essere , scritte in questo modo, descrivono l'informazione che deve essere

inserita al loro posto.inserita al loro posto. Le altre parole rappresentano dei termini chiave che, se usati, devono essere indicati Le altre parole rappresentano dei termini chiave che, se usati, devono essere indicati

così come appaiono nello schema sintattico.così come appaiono nello schema sintattico. Quello che appare racchiuso tra parentesi quadre rappresenta una scelta facoltativa: Quello che appare racchiuso tra parentesi quadre rappresenta una scelta facoltativa:

può essere utilizzato o meno.può essere utilizzato o meno. La barra verticale (|) rappresenta la possibilità di scelta tra due possibilità alternative: La barra verticale (|) rappresenta la possibilità di scelta tra due possibilità alternative:

quello che sta alla sua sinistra e quello che sta alla sua destra. Per esempio, uno | quello che sta alla sua sinistra e quello che sta alla sua destra. Per esempio, uno | due rappresenta la possibilità di scegliere una tra le parole uno e due.due rappresenta la possibilità di scegliere una tra le parole uno e due.

Quello che appare racchiuso tra parentesi graffe rappresenta una scelta obbligatoria Quello che appare racchiuso tra parentesi graffe rappresenta una scelta obbligatoria e serve in particolare per evitare equivoci nell'interpretazione quando si hanno più e serve in particolare per evitare equivoci nell'interpretazione quando si hanno più scelte alternative, separate attraverso il simbolo |. Seguono alcuni esempi.scelte alternative, separate attraverso il simbolo |. Seguono alcuni esempi.{{uno uno || due due || tre tre}} Rappresenta la scelta obbligatoria di una tra le tre parole chiave: uno, due e tre.Rappresenta la scelta obbligatoria di una tra le tre parole chiave: uno, due e tre.{{-f -f filefile || --file= --file=filefile}} Rappresenta la scelta obbligatoria di una tra due opzioni equivalenti.Rappresenta la scelta obbligatoria di una tra due opzioni equivalenti.

I puntini di sospensione rappresentano la possibilità di aggiungere altri elementi dello I puntini di sospensione rappresentano la possibilità di aggiungere altri elementi dello stesso tipo di quello che li precede. Per esempio, stesso tipo di quello che li precede. Per esempio, filefile... rappresenta la metavariabile ... rappresenta la metavariabile file che può essere seguita da altri valori dello stesso tipo rappresentato dalla file che può essere seguita da altri valori dello stesso tipo rappresentato dalla metavariabile stessa.metavariabile stessa.

Page 53: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 5353

Organizzazione tipicaOrganizzazione tipica programma programma [[opzioniopzioni]] [[filefile......]]

– Normalmente vengono accettate una o più opzioni facoltative, Normalmente vengono accettate una o più opzioni facoltative, espresse attraverso una lettera dell'alfabeto preceduta da un espresse attraverso una lettera dell'alfabeto preceduta da un trattino (-a, -b,...).trattino (-a, -b,...).

programma -a -bprogramma -a -bè traducibile nel comando seguente:è traducibile nel comando seguente:programma –abprogramma –ab

I programmi più recenti includono opzioni descrittive formate da I programmi più recenti includono opzioni descrittive formate da un nome preceduto da due trattini. In presenza di questi tipi di un nome preceduto da due trattini. In presenza di questi tipi di opzioni, non si possono fare aggregazioni nel modo appena opzioni, non si possono fare aggregazioni nel modo appena visto.visto.

Page 54: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 5454

L’ABC dei comandi GNU/LinuxL’ABC dei comandi GNU/Linux

lsls ->-> lista I filelista I file cdcd ->-> cambia directorycambia directory mkdirmkdir ->-> crea directorycrea directory cpcp ->-> copia filecopia file lnln ->-> crea collegamenticrea collegamenti rmrm ->-> cancella filecancella file mvmv ->-> sposta/rinomina filesposta/rinomina file catcat ->-> concatena fileconcatena file

Page 55: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 5555

Comparazione comandi DOS e GNU/LinuxComparazione comandi DOS e GNU/Linux

DIRDIR DIR /WDIR /W MD PIPPOMD PIPPO CD PIPPOCD PIPPO RD PIPPORD PIPPO COPY *.* \PROVA COPY *.* \PROVA XCOPY *.* \PROVA /E /SXCOPY *.* \PROVA /E /S REN ARTICOLO LETTERAREN ARTICOLO LETTERA MOVE *.* \PROVAMOVE *.* \PROVA DEL ARTICOLODEL ARTICOLO DELTREE TEMPDELTREE TEMP TYPE LETTERATYPE LETTERA TYPE LETTERA | MORETYPE LETTERA | MORE HELP DIRHELP DIR FORMAT A: /N:18 /T:80FORMAT A: /N:18 /T:80 FORMAT A: /N:9 /T:80FORMAT A: /N:9 /T:80 DISKCOPY A: B:DISKCOPY A: B: DISKCOPY A: A:DISKCOPY A: A: KEYB IT KEYB IT CLSCLS BACKUP C:\DATI\*.* A: /SBACKUP C:\DATI\*.* A: /S FIND "saluti" PRIMO.DOCFIND "saluti" PRIMO.DOC FOR %A IN (*.DOC)DO FIND "saluti" %AFOR %A IN (*.DOC)DO FIND "saluti" %A MEMMEM

ls –lls –l LsLs mkdir pippomkdir pippo cd pippocd pippo rmdir pippormdir pippo cp * /provacp * /prova cp -dpR * /provacp -dpR * /prova mv articolo letteramv articolo lettera mv * /provamv * /prova rm articolorm articolo rm -R temprm -R temp cat letteracat lettera cat lettera | morecat lettera | more man lsman ls fdformat /dev/fd0u1440fdformat /dev/fd0u1440 fdformat /dev/fd0u720fdformat /dev/fd0u720 cp /dev/fd0 /dev/fd1cp /dev/fd0 /dev/fd1 cp /dev/fd0 /tmp/pippo ; cp /tmp/pippo /dev/fd0cp /dev/fd0 /tmp/pippo ; cp /tmp/pippo /dev/fd0 loadkeys itloadkeys it clearclear tar cvf /dev/fd0 -L 1440 -M /datitar cvf /dev/fd0 -L 1440 -M /dati grep "saluti" primo.docgrep "saluti" primo.doc grep "saluti" *.docgrep "saluti" *.doc freefree

Page 56: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 5656

Capitolo 2Capitolo 2DocumentazioneDocumentazione

Page 57: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 5757

Dov’e’ la documentazione?Dov’e’ la documentazione?

Doc allegata ai pacchettiDoc allegata ai pacchetti Pagine di guida (man)Pagine di guida (man) HOWTOHOWTO FAQFAQ LDPLDP Ricerche sul webRicerche sul web Ricerche nei newsgroupsRicerche nei newsgroups

Page 58: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 5858

Programmi per documentarsiProgrammi per documentarsi

more/lessmore/less manman whatiswhatis aproposapropos infoinfo

Page 59: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 5959

LILO: IntroduzioneLILO: Introduzione

Page 60: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 6060

Organizzazione essenzialeOrganizzazione essenziale

La procedura LILO è composta La procedura LILO è composta essenzialmente da:essenzialmente da:

la directory /boot/ e dal suo contenuto;la directory /boot/ e dal suo contenuto; l'eseguibile lilo;l'eseguibile lilo; il file di configurazione /etc/lilo.conf.il file di configurazione /etc/lilo.conf.

Page 61: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 6161

Directory /boot/Directory /boot/

boot.b;boot.b; map che viene creato da LILO;map che viene creato da LILO; boot.boot.nn, dove l'estensione è un numero , dove l'estensione è un numero

esadecimale, che viene creato da LILO e esadecimale, che viene creato da LILO e contiene il settore di avvio dell'unità contiene il settore di avvio dell'unità rappresentata dal numero stesso (non si rappresentata dal numero stesso (non si tratta necessariamente di un solo file);tratta necessariamente di un solo file);

il kernel se non risiede già nella directory il kernel se non risiede già nella directory radice.radice.

Page 62: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 6262

Installazione del meccanismo di avvioInstallazione del meccanismo di avvio

MBR o MBR o Master boot recordMaster boot record;;LILO ha il controllo su tutti i sistemi operativi per il loro LILO ha il controllo su tutti i sistemi operativi per il loro caricamentocaricamento

il primo settore di una partizione;il primo settore di una partizione;LILO dipende da un sistema di avviamento di un altro LILO dipende da un sistema di avviamento di un altro sistema operativo che, a sua volta, passa a LILO il sistema operativo che, a sua volta, passa a LILO il controllo quando ciò viene richiestocontrollo quando ciò viene richiesto

il primo settore di un dischetto.il primo settore di un dischetto.si utilizza un dischetto in modo da non alterare il sistema si utilizza un dischetto in modo da non alterare il sistema

di avvio già presentedi avvio già presente

Page 63: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 6363

lilo.conflilo.conf# Prima parte generale# Prima parte generaleboot=/dev/hdaboot=/dev/hdaPromptPrompttimeout=50timeout=50

# Caricamento di Linux# Caricamento di Linuximage=/boot/vmlinuzimage=/boot/vmlinuz

label=linuxlabel=linuxroot=/dev/hda2root=/dev/hda2read-onlyread-only

# Caricamento del Dos# Caricamento del Dosother=/dev/hda1other=/dev/hda1

label=doslabel=dostable=/dev/hda table=/dev/hda

Page 64: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 6464

Kernel LinuxKernel Linux

Page 65: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 6565

Kernel LinuxKernel Linux Il kernel è il nocciolo del sistema operativoIl kernel è il nocciolo del sistema operativo I programmi utilizzano le funzioni fornite dal kernel e in questa I programmi utilizzano le funzioni fornite dal kernel e in questa

maniera sono sollevati dall'agire direttamente con la CPU maniera sono sollevati dall'agire direttamente con la CPU è costituito normalmente da un file soltanto (è costituito normalmente da un file soltanto (kernel kernel

monoliticomonolitico)) può comprendere anche moduli aggiuntivi per la gestione di può comprendere anche moduli aggiuntivi per la gestione di

componenti hardware specifici che devono poter essere componenti hardware specifici che devono poter essere attivati e disattivati durante il funzionamento del sistema attivati e disattivati durante il funzionamento del sistema ((kernel modularekernel modulare))

Le distribuzioni GNU/Linux tendono a fornire agli utilizzatori Le distribuzioni GNU/Linux tendono a fornire agli utilizzatori un kernel modulare per usi generaliun kernel modulare per usi generali

ci sono situazioni particolari dove è preferibile costruire un ci sono situazioni particolari dove è preferibile costruire un proprio kernel, monolitico o modulare che siaproprio kernel, monolitico o modulare che sia

Page 66: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 6666

Ricompilare il KernelRicompilare il Kernel

è necessario avere installato gli strumenti di sviluppo è necessario avere installato gli strumenti di sviluppo software, cioè il compilatore e i sorgenti del kernelsoftware, cioè il compilatore e i sorgenti del kernel

Il numero di versione del kernel Linux è strutturato in tre Il numero di versione del kernel Linux è strutturato in tre livelli: livelli: xx..yy..zz

Quello che conta, è porre attenzione al valore Quello che conta, è porre attenzione al valore intermedio: yintermedio: y– se e’ un numero pari, la versione si riferisce a un kernel ritenuto se e’ un numero pari, la versione si riferisce a un kernel ritenuto

sufficientemente stabilesufficientemente stabile– Se e’ un numero dispari rappresenta una versione destinata agli Se e’ un numero dispari rappresenta una versione destinata agli

sviluppatori e non ritenuta adatta per l'utilizzo normalesviluppatori e non ritenuta adatta per l'utilizzo normale La posizione standard in cui devono trovarsi i sorgenti La posizione standard in cui devono trovarsi i sorgenti

del kernel è la directory /usr/src/linux/ del kernel è la directory /usr/src/linux/

Page 67: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 6767

Moduli del KernelModuli del Kernel

Page 68: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 6868

I moduliI moduli

I moduli del kernel sono porzioni di questo I moduli del kernel sono porzioni di questo che possono essere caricate in memoria che possono essere caricate in memoria quando se ne presenta la necessità e quando se ne presenta la necessità e scaricate subito doposcaricate subito dopo

I moduli del kernel Linux sono quello che I moduli del kernel Linux sono quello che in altri sistemi viene definito driver in altri sistemi viene definito driver

Page 69: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 6969

Programmi e file per la gestione dei moduliProgrammi e file per la gestione dei moduli

insmod -> Carica manualmente i moduli del kernelinsmod -> Carica manualmente i moduli del kernel rmmod -> Scarica manualmente i moduli del kernelrmmod -> Scarica manualmente i moduli del kernel lsmod -> Elenca i moduli caricati nel kernellsmod -> Elenca i moduli caricati nel kernel depmod -> Rigenera il file delle dipendenze tra i depmod -> Rigenera il file delle dipendenze tra i

modulimoduli modprobe -> Carica un modulo rispettando le modprobe -> Carica un modulo rispettando le

dipendenzedipendenze /etc/modules -> Configurazione dei moduli utilizzati/etc/modules -> Configurazione dei moduli utilizzati kerneld -> Programma demone per il carico e lo kerneld -> Programma demone per il carico e lo

scarico automatico dei moduli.scarico automatico dei moduli.

Page 70: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 7070

Carico/scaricoCarico/scarico Il minimo indispensabile per attivare e disattivare i moduli è Il minimo indispensabile per attivare e disattivare i moduli è

costituito da due programmi di servizio specifici: costituito da due programmi di servizio specifici: insmodinsmod e e rmmodrmmod. Il primo serve per caricare i moduli, il secondo per . Il primo serve per caricare i moduli, il secondo per scaricarli.scaricarli.

L'operazione di caricamento dei moduli deve essere fatta L'operazione di caricamento dei moduli deve essere fatta tenendo presente le eventuali dipendenze che ci possono tenendo presente le eventuali dipendenze che ci possono essereessere

I moduli sono generalmente file che terminano con I moduli sono generalmente file che terminano con l'estensione .ol'estensione .o

si collocano al di sotto della directory si collocano al di sotto della directory /lib/modules//lib/modules/versionedelkernelversionedelkernel//

modprobe facilita il caricamento dei moduli, caricando modprobe facilita il caricamento dei moduli, caricando automaticamente anche eventuali dipendenzeautomaticamente anche eventuali dipendenze

Ad ogni modulo possono essere assegnati parametri specificiAd ogni modulo possono essere assegnati parametri specifici

Page 71: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 7171

Introduzione ai processi Introduzione ai processi di elaborazionedi elaborazione

Page 72: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 7272

ProcessiProcessi

La nascita di un processo, cioè l'avvio di un La nascita di un processo, cioè l'avvio di un programma, può avvenire solo tramite una programma, può avvenire solo tramite una richiesta da parte di un altro processo già richiesta da parte di un altro processo già esistenteesistente

Si forma quindi una sorta di gerarchia dei Si forma quindi una sorta di gerarchia dei processi organizzata ad alberoprocessi organizzata ad albero

Il processo principale (Il processo principale (rootroot) che genera tutti gli ) che genera tutti gli altri, è quello dell'eseguibile init che a sua volta è altri, è quello dell'eseguibile init che a sua volta è attivato direttamente dal kernelattivato direttamente dal kernel

Page 73: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 7373

Tabella dei processiTabella dei processi

Il kernel gestisce una tabella dei processi che serve a Il kernel gestisce una tabella dei processi che serve a tenere traccia del loro stato.tenere traccia del loro stato.

In particolare sono registrati i valori seguenti:In particolare sono registrati i valori seguenti: il nome dell'eseguibile in funzione;il nome dell'eseguibile in funzione; gli eventuali argomenti passati all'eseguibile al momento gli eventuali argomenti passati all'eseguibile al momento

dell'avvio attraverso la riga di comando;dell'avvio attraverso la riga di comando; il numero di identificazione del processo;il numero di identificazione del processo; il numero di identificazione del processo che ha generato il numero di identificazione del processo che ha generato

quello a cui si fa riferimento;quello a cui si fa riferimento; il nome del dispositivo di comunicazione se il processo è il nome del dispositivo di comunicazione se il processo è

controllato da un terminale;controllato da un terminale; il numero di identificazione dell'utente;il numero di identificazione dell'utente; il numero di identificazione del gruppo;il numero di identificazione del gruppo;

Page 74: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 7474

/proc//proc/

Il kernel Linux rende disponibile i dati della Il kernel Linux rende disponibile i dati della tabella dei processi attraverso un tabella dei processi attraverso un file system virtuale montato nella directory file system virtuale montato nella directory /proc//proc/

a partire da questa directory se ne a partire da questa directory se ne diramano altre, tante quanti sono i diramano altre, tante quanti sono i processi in esecuzione, ognuna processi in esecuzione, ognuna identificata dal numero del processo identificata dal numero del processo stessostesso

Page 75: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 7575

Nascita e morte di un processoNascita e morte di un processo

la nascita di un processo può avvenire la nascita di un processo può avvenire solo tramite una richiesta da parte di un solo tramite una richiesta da parte di un altro processo già esistente, utilizzando la altro processo già esistente, utilizzando la chiamata di sistema chiamata di sistema fork()fork()

Quando un processo termina, lo fa Quando un processo termina, lo fa attraverso la chiamata di sistema attraverso la chiamata di sistema exit()exit(), , trasformandosi in un cosiddetto trasformandosi in un cosiddetto zombiezombie

Page 76: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 7676

SegnaliSegnali

I segnali sono dei messaggi elementari I segnali sono dei messaggi elementari che possono essere inviati a un processo, che possono essere inviati a un processo, permettendo a questo di essere informato permettendo a questo di essere informato di una condizione particolare che si è di una condizione particolare che si è manifestata e di potersi uniformaremanifestata e di potersi uniformare

Page 77: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 7777

Segnali piu’ importantiSegnali piu’ importanti SIGINTSIGINT

È’ un segnale di interruzione intercettabile, inviato normalmente attraverso la tastiera È’ un segnale di interruzione intercettabile, inviato normalmente attraverso la tastiera del terminale, con la combinazione [Ctrl+c], al processo che si trova a funzionare in del terminale, con la combinazione [Ctrl+c], al processo che si trova a funzionare in primo piano (primo piano (foregroundforeground). Di solito, il processo che riceve questo segnale viene ). Di solito, il processo che riceve questo segnale viene interrotto.interrotto.

SIGQUITSIGQUITÈ’ un segnale di interruzione intercettabile, inviato normalmente attraverso la tastiera È’ un segnale di interruzione intercettabile, inviato normalmente attraverso la tastiera del terminale, con la combinazione [Ctrl+\], al processo che si trova a funzionare in del terminale, con la combinazione [Ctrl+\], al processo che si trova a funzionare in primo piano. Di solito, il processo che riceve questo segnale viene interrotto.primo piano. Di solito, il processo che riceve questo segnale viene interrotto.

SIGTERMSIGTERMÈ’ un segnale di conclusione intercettabile, inviato normalmente da un altro processo. È’ un segnale di conclusione intercettabile, inviato normalmente da un altro processo. Di solito, provoca la conclusione del processo che ne è il destinatario.Di solito, provoca la conclusione del processo che ne è il destinatario.

SIGKILLSIGKILLE’ un segnale di interruzione non intercettabile, che provoca la conclusione E’ un segnale di interruzione non intercettabile, che provoca la conclusione immediata del processo. Non c'è modo per il processo destinatario di eseguire alcuna immediata del processo. Non c'è modo per il processo destinatario di eseguire alcuna operazione di salvataggio o di scarico dei dati.operazione di salvataggio o di scarico dei dati.

SIGHUPSIGHUPÈ’ un È’ un segnale di agganciosegnale di aggancio che rappresenta l'interruzione di una comunicazione. In che rappresenta l'interruzione di una comunicazione. In particolare, quando un utente esegue un particolare, quando un utente esegue un logoutlogout, i processi ancora attivi avviati , i processi ancora attivi avviati eventualmente sullo sfondo (eventualmente sullo sfondo (backgroundbackground) ricevono questo segnale. Può essere ) ricevono questo segnale. Può essere generato anche a causa della «morte» del processo controllante.generato anche a causa della «morte» del processo controllante.

Page 78: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 7878

Procedura di Procedura di inizializzazione del sistema inizializzazione del sistema

(System V)(System V)

Page 79: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 7979

UNIX System VUNIX System V

Il kernel avvia il processo iniziale InitIl kernel avvia il processo iniziale Init Init genera tutti gli altriInit genera tutti gli altri Questo meccanismo di inizializzazione e’ Questo meccanismo di inizializzazione e’

derivato dallo UNIX System Vderivato dallo UNIX System V

Init determina quali siano i processi da avviare Init determina quali siano i processi da avviare successivamente, in base al contenuto di successivamente, in base al contenuto di /etc/inittab /etc/inittab

il quale a sua volta fa riferimento a una serie di il quale a sua volta fa riferimento a una serie di script contenuti normalmente all'interno della script contenuti normalmente all'interno della directory /etc/rc.d/ o in un'altra analoga directory /etc/rc.d/ o in un'altra analoga

Page 80: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 8080

Come funzionaCome funziona

kernel

initavvia

legge

/etc/inittab

avvia/ferma

/etc/rcn.d

Page 81: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 8181

/etc/inittab/etc/inittab

All'interno di /etc/inittab si distinguono All'interno di /etc/inittab si distinguono azioni diverse in funzione del azioni diverse in funzione del livello di livello di esecuzioneesecuzione ( (run levelrun level), di solito un ), di solito un numero da zero a sei.numero da zero a sei.

Lev 0 -> arresto del sistema (halt)Lev 0 -> arresto del sistema (halt) Lev 1 -> modalita’ single userLev 1 -> modalita’ single user Lev 2-5 -> modalita’ multi usersLev 2-5 -> modalita’ multi users Lev 6 -> riavvio del sistema (reboot)Lev 6 -> riavvio del sistema (reboot)

Page 82: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 8282

Attivazione/disattivazione dei Attivazione/disattivazione dei serviziservizi

Gli script della procedura di inizializzazione del Gli script della procedura di inizializzazione del sistema hanno il compito di avviare il sistema sistema hanno il compito di avviare il sistema operativo e di fermarlo, attivando e disattivando operativo e di fermarlo, attivando e disattivando tutti i servizi necessari, cioè intervenendo tutti i servizi necessari, cioè intervenendo nell'avvio e nella conclusione del funzionamento nell'avvio e nella conclusione del funzionamento dei demoni relativi.dei demoni relativi.

si definisce una directory specifica /etc/init.d/, si definisce una directory specifica /etc/init.d/, all'interno della quale si possono inserire degli all'interno della quale si possono inserire degli script che hanno una sintassi uniforme.script che hanno una sintassi uniforme.

nome_servizionome_servizio {{startstart||stopstop}}

Page 83: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 8383

Collegamenti simbolici per livello di esecuzioneCollegamenti simbolici per livello di esecuzione

si predispongono tante directory quanti sono i livelli di si predispongono tante directory quanti sono i livelli di esecuzione gestiti attraverso il file /etc/inittabesecuzione gestiti attraverso il file /etc/inittab

Queste directory hanno il nome rcQueste directory hanno il nome rcnn.d/, dove .d/, dove nn rappresenta il rappresenta il numero del livello di esecuzione corrispondentenumero del livello di esecuzione corrispondente

All'interno di queste directory si inseriscono dei collegamenti All'interno di queste directory si inseriscono dei collegamenti simbolici che puntano agli script di /etc/init.dsimbolici che puntano agli script di /etc/init.d

I nomi di questi collegamenti iniziano in modo speciale: KI nomi di questi collegamenti iniziano in modo speciale: Knnnn e e SSnnnn

I collegamenti che iniziano con la lettera «S» (I collegamenti che iniziano con la lettera «S» (StartStart) servono ) servono per individuare gli script da utilizzare per l'attivazione dei per individuare gli script da utilizzare per l'attivazione dei servizi servizi

I collegamenti che iniziano con la lettera «K» (I collegamenti che iniziano con la lettera «K» (KillKill) servono ) servono per individuare gli script da utilizzare per la disattivazione dei per individuare gli script da utilizzare per la disattivazione dei serviziservizi

Page 84: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 8484

Situazione dei processiSituazione dei processi

Page 85: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 8585

In generaleIn generale

Le informazioni sulla situazione dei Le informazioni sulla situazione dei processi vengono ottenute a partire dalla processi vengono ottenute a partire dalla tabella dei processi messa a disposizione tabella dei processi messa a disposizione dal kerneldal kernel

Il meccanismo utilizzato in particolare dal Il meccanismo utilizzato in particolare dal kernel Linux è quello del file system kernel Linux è quello del file system virtuale montato nella directory /proc/virtuale montato nella directory /proc/

Page 86: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 8686

Comandi piu’ importantiComandi piu’ importanti

psps Elenca i processi in esecuzione. Elenca i processi in esecuzione. pstreepstree Elenca i processi in esecuzione in modo Elenca i processi in esecuzione in modo

strutturato.strutturato. toptop Mostra l'utilizzo delle risorse da parte dei Mostra l'utilizzo delle risorse da parte dei

processi a intervalli regolari.processi a intervalli regolari. fuserfuser Elenca i processi che utilizzano file Elenca i processi che utilizzano file

determinati.determinati. uptimeuptime Informa sul tempo di funzionamento e Informa sul tempo di funzionamento e

sul carico medio.sul carico medio. freefree Genera un rapporto stringato sull'uso della Genera un rapporto stringato sull'uso della

memoria.memoria.

Page 87: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 8787

Process StatusProcess Status

Il controllo dello stato dei processi Il controllo dello stato dei processi esistenti avviene fondamentalmente esistenti avviene fondamentalmente attraverso l'uso di ps, pstree e top.attraverso l'uso di ps, pstree e top.

ps e pstree rappresentano la situazione di ps e pstree rappresentano la situazione di un istanteun istante

top invece è un programma che impegna top invece è un programma che impegna un terminale per mostrare costantemente un terminale per mostrare costantemente l'aggiornamento della situazionel'aggiornamento della situazione

Page 88: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 8888

IntestazioniIntestazioni UIDUID Il numero di UID dell'utente proprietario del processo. Il numero di UID dell'utente proprietario del processo. PIDPID Il numero del processo, cioè il PID. Il numero del processo, cioè il PID. PPIDPPID Il PID del processo genitore (quello da cui ha avuto origine). Il PID del processo genitore (quello da cui ha avuto origine). USERUSER Il nome dell'utente proprietario del processo. Il nome dell'utente proprietario del processo. PRIPRI La priorità del processo. La priorità del processo. NINI Il valore nice. Il valore nice. SIZESIZE La dimensione dell'immagine del processo in memoria (virtuale). La dimensione dell'immagine del processo in memoria (virtuale). RSSRSS La dimensione della memoria RAM utilizzata effettivamente. La dimensione della memoria RAM utilizzata effettivamente. SWAPSWAP La dimensione della memoria virtuale utilizzata. La dimensione della memoria virtuale utilizzata. SHARESHARE La quantità di memoria condivisa utilizzata dal processo. La quantità di memoria condivisa utilizzata dal processo. WCHANWCHAN L'evento per cui il processo è in attesa. L'evento per cui il processo è in attesa. STATSTAT Lo stato del processo. Lo stato del processo. TTTT Il terminale, se il processo ne utilizza uno. Il terminale, se il processo ne utilizza uno. TIMETIME Il tempo totale di utilizzo della CPU. Il tempo totale di utilizzo della CPU. CTIMECTIME Il tempo di CPU sommando anche l'utilizzo da parte dei processi figli. Il tempo di CPU sommando anche l'utilizzo da parte dei processi figli. COMMANDCOMMAND Il comando utilizzato per avviare il processo. Il comando utilizzato per avviare il processo.

Page 89: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 8989

Shell’s jobsShell’s jobs

Non si deve confondere un job di shell con Non si deve confondere un job di shell con un processoun processo

Un processo è un singolo eseguibile Un processo è un singolo eseguibile messo in funzione messo in funzione

Un job di shell rappresenta tutti i processi Un job di shell rappresenta tutti i processi che vengono generati da un comando che vengono generati da un comando impartito tramite la shell stessaimpartito tramite la shell stessa

Page 90: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 9090

Foreground & background jobsForeground & background jobs

L'attività di un job può avvenire in primo piano L'attività di un job può avvenire in primo piano ((foregroundforeground) o sullo sfondo () o sullo sfondo (backgroundbackground))

Nel primo caso, il job impegna la shell e quindi Nel primo caso, il job impegna la shell e quindi anche il terminale anche il terminale

nel secondo la shell è libera da impegni e così nel secondo la shell è libera da impegni e così anche il terminale anche il terminale

Un programma è avviato esplicitamente come Un programma è avviato esplicitamente come job sullo sfondo quando alla fine della riga di job sullo sfondo quando alla fine della riga di comando viene aggiunto il simbolo comando viene aggiunto il simbolo &&

Page 91: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 9191

Comandi base per i jobsComandi base per i jobs

jobsjobs -> permette di conoscere l'elenco dei -> permette di conoscere l'elenco dei job esistenti e il loro statojob esistenti e il loro stato

fgfg -> porta in primo piano un job che -> porta in primo piano un job che prima era sullo sfondo prima era sullo sfondo

bgbg -> permette di fare riprendere (sullo -> permette di fare riprendere (sullo sfondo) l'esecuzione di un job sospeso sfondo) l'esecuzione di un job sospeso

killkill -> permette di inviare un segnale ai -> permette di inviare un segnale ai processi di un job, indicando direttamente processi di un job, indicando direttamente il jobil job

Page 92: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 9292

VI: cenni sull’utilizzoVI: cenni sull’utilizzo

Page 93: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 9393

VIVI

Nei sistemi Unix, l'applicativo piu` importante per Nei sistemi Unix, l'applicativo piu` importante per la creazione e la modifica dei file di testo e` VIla creazione e la modifica dei file di testo e` VI

VI ha una logica di funzionamento tutta sua che VI ha una logica di funzionamento tutta sua che ne impedisce l'utilizzo a chi non abbia letto ne impedisce l'utilizzo a chi non abbia letto qualcosa al riguardoqualcosa al riguardo

Per GNU/Linux, non esiste in circolazione una Per GNU/Linux, non esiste in circolazione una versione originale di VI, ma tante interpretazioni versione originale di VI, ma tante interpretazioni di questo, con potenzialita` piu` o meno ampliate di questo, con potenzialita` piu` o meno ampliate (nvi, ex, ed, pico, elvis, ecc...)(nvi, ex, ed, pico, elvis, ecc...)

La migliore e piu’ funzionale (imho) e’ VIM (Vi La migliore e piu’ funzionale (imho) e’ VIM (Vi IMproved)IMproved)

Page 94: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 9494

Modalita’ di funzionamentoModalita’ di funzionamento Quando si avvia VI, questo si trova di solito nella modalita` di Quando si avvia VI, questo si trova di solito nella modalita` di

comando che permette di usare tasti determinati, comando che permette di usare tasti determinati, attribuendogli significati speciali (di comando).attribuendogli significati speciali (di comando).

Quando si vuole agire per inserire o modificare del testo, Quando si vuole agire per inserire o modificare del testo, occorre utilizzare un comando con il quale VI passa alla occorre utilizzare un comando con il quale VI passa alla modalita` di inserimento e modificamodalita` di inserimento e modifica

esistono due tipi di comandi: “visuali” (visual) e “due punti” esistono due tipi di comandi: “visuali” (visual) e “due punti” (colon).(colon).

I comandi visuali sono i piu` semplici e si compongono di I comandi visuali sono i piu` semplici e si compongono di sequenze di uno o piu` tasti il cui inserimento non appare in sequenze di uno o piu` tasti il cui inserimento non appare in alcuna parte dello schermo e si concludono senza la alcuna parte dello schermo e si concludono senza la pressione del tasto [Invio];pressione del tasto [Invio];

i comandi “due punti” iniziano tutti con il simbolo : (da cui il i comandi “due punti” iniziano tutti con il simbolo : (da cui il nome), terminano con [Invio] e durante la digitazione nome), terminano con [Invio] e durante la digitazione appaiono sulla riga inferiore dello schermoappaiono sulla riga inferiore dello schermo

Page 95: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 9595

MoltiplicatoriMoltiplicatori

E` importante comprendere che l'effetto di E` importante comprendere che l'effetto di molti comandi puo` essere moltiplicato molti comandi puo` essere moltiplicato utilizzando un numero. Il concetto e` molto utilizzando un numero. Il concetto e` molto semplice e si richiama alla matematica: 2a semplice e si richiama alla matematica: 2a = a+a.= a+a.

Page 96: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 9696

InserimentoInserimento Si puo` inserire o modificare del testo solo quando si Si puo` inserire o modificare del testo solo quando si

passa alla modalita` di inserimento attraverso il passa alla modalita` di inserimento attraverso il comando comando i i (insert) oppure (insert) oppure aa (append) (append)

Per tornare alla modalita’ comando e sufficiente Per tornare alla modalita’ comando e sufficiente premere il tasto [Esc]premere il tasto [Esc]

I Inserisce all'inizio della riga attiva.I Inserisce all'inizio della riga attiva. i Inserisce prima della posizione attiva.i Inserisce prima della posizione attiva. A Aggiunge alla fine della riga attiva.A Aggiunge alla fine della riga attiva. a Aggiunge dopo la posizione attiva.a Aggiunge dopo la posizione attiva. O Inserisce prima della riga attiva (inserendo una riga).O Inserisce prima della riga attiva (inserendo una riga). o Aggiunge dopo la riga attiva (inserendo una riga).o Aggiunge dopo la riga attiva (inserendo una riga).

Page 97: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 9797

MuoversiMuoversi I comandi normali per lo spostamento del cursore sono le lettere h, j, k e lI comandi normali per lo spostamento del cursore sono le lettere h, j, k e l

(ma ormai quasi tutti utilizzano anche i tasti freccia)(ma ormai quasi tutti utilizzano anche i tasti freccia) Per raggiungere una riga determinata e` possibile utilizzare il comando Per raggiungere una riga determinata e` possibile utilizzare il comando nGnG o o

:n:n (in questo ultimo caso, seguito da [Invio]) (in questo ultimo caso, seguito da [Invio])

Comandi piu’ usati:Comandi piu’ usati: ww Sposta il cursore all'inizio della parola successiva. Sposta il cursore all'inizio della parola successiva. bb Sposta il cursore all'inizio della parola precedente. Sposta il cursore all'inizio della parola precedente. 00 Sposta il cursore all'inizio della riga. Sposta il cursore all'inizio della riga. $$ Sposta il cursore alla fine della riga. Sposta il cursore alla fine della riga. HH Sposta il cursore sulla prima riga che appare sullo schermo. Sposta il cursore sulla prima riga che appare sullo schermo. MM Sposta il cursore sulla riga centrale dello schermo. Sposta il cursore sulla riga centrale dello schermo. LL Sposta il cursore sull'ultima riga che appare sullo schermo. Sposta il cursore sull'ultima riga che appare sullo schermo. GG Sposta il cursore sull'ultima riga del file. Sposta il cursore sull'ultima riga del file. nGnG Sposta il cursore sulla riga identificata dal numero n. Sposta il cursore sulla riga identificata dal numero n. :n:n Sposta il cursore sulla riga identificata dal numero n. Sposta il cursore sulla riga identificata dal numero n.

Page 98: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 9898

ModificatoriModificatori

All'interno di VI manca il concetto di zona di All'interno di VI manca il concetto di zona di intervento. Per definire l'estensione di un intervento. Per definire l'estensione di un comando lo si puo` far precedere da un comando lo si puo` far precedere da un moltiplicatore (un numero) e in piu`, o in moltiplicatore (un numero) e in piu`, o in alternativa, lo si puo` fare seguire da un alternativa, lo si puo` fare seguire da un comando di spostamento.comando di spostamento.

Il comando di spostamento viene utilizzato in Il comando di spostamento viene utilizzato in questo caso per definire una zona che va dalla questo caso per definire una zona che va dalla posizione attiva a quella di destinazione del posizione attiva a quella di destinazione del comando, in modo che su questa zona comando, in modo che su questa zona intervenga il comando precedente.intervenga il comando precedente.

Page 99: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 9999

CancellazioneCancellazione

I comandi di cancellazione piu` importanti sono I comandi di cancellazione piu` importanti sono x, d seguito da un modificatore e ddx, d seguito da un modificatore e dd

Comandi piu’ usatiComandi piu’ usati xx Cancella il carattere che si trova sulla Cancella il carattere che si trova sulla

posizione attiva.posizione attiva. dddd Cancella la riga attiva. Cancella la riga attiva. d[mod]d[mod] Cancella dalla posizione attiva fino Cancella dalla posizione attiva fino

all'estensione indicata dal modificatore.all'estensione indicata dal modificatore. DD cancella tutta la riga (agisce come d$). cancella tutta la riga (agisce come d$).

Page 100: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 100100

SostituzioneSostituzione La modifica del testo inserito puo` avvenire attraverso i La modifica del testo inserito puo` avvenire attraverso i

comandi di cancellazione gia` visti, oppure attraverso comandi di cancellazione gia` visti, oppure attraverso comandi di sostituzionecomandi di sostituzione

Generalmente si tratta di comandi che prima cancellano parte Generalmente si tratta di comandi che prima cancellano parte del testo e subito dopo attivano l'inserimentodel testo e subito dopo attivano l'inserimento

I comandi di sostituzione piu` importanti sono c seguito da un I comandi di sostituzione piu` importanti sono c seguito da un modificatore e ccmodificatore e cc

Comandi piu’ usatiComandi piu’ usati CC Sostituisce dalla posizione attiva alla fine della riga. Sostituisce dalla posizione attiva alla fine della riga. cccc Sostituisce la riga attiva a partire dall'inizio. Sostituisce la riga attiva a partire dall'inizio. c[mod]c[mod] Sostituisce dalla posizione attiva fino all'estensione Sostituisce dalla posizione attiva fino all'estensione

indicata dal modificatore.indicata dal modificatore. r[x]r[x] Rimpiazza quanto contenuto nella posizione attiva con x. Rimpiazza quanto contenuto nella posizione attiva con x. ~~ Inverte maiuscole e minuscole. Inverte maiuscole e minuscole.

Page 101: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 101101

Copia e spostamentoCopia e spostamento si utilizzano delle aree temporanee di memoria alle quali si possono si utilizzano delle aree temporanee di memoria alle quali si possono

accodare diverse parti di testoaccodare diverse parti di testo L'operazione con la quale si copia una porzione di testo in un'area L'operazione con la quale si copia una porzione di testo in un'area

temporanea di memoria viene detta yanking, ovvero estrazione, temporanea di memoria viene detta yanking, ovvero estrazione, giustificando cosi` l'uso della lettera “y” nei comandi che compiono questa giustificando cosi` l'uso della lettera “y” nei comandi che compiono questa funzionefunzione

Per incollare il testo copiato, dopo aver posizionato il cursore nella posizione Per incollare il testo copiato, dopo aver posizionato il cursore nella posizione di destinazione, si puo` utilizzare il comando p oppure P, a seconda che si di destinazione, si puo` utilizzare il comando p oppure P, a seconda che si intenda incollare prima o dopo la posizione del cursore.intenda incollare prima o dopo la posizione del cursore.

Comandi piu’ usatiComandi piu’ usati yyyy Copia la riga attiva nell'area temporanea. Copia la riga attiva nell'area temporanea. ymodymod Copia nell'area temporanea il testo fino all'estensione indicata dal Copia nell'area temporanea il testo fino all'estensione indicata dal

modificatore.modificatore. dddd Trasferisce la riga attiva nell'area temporanea. Trasferisce la riga attiva nell'area temporanea. dmoddmod Trasferisce nell'area temporanea il testo fino all'estensione indicata Trasferisce nell'area temporanea il testo fino all'estensione indicata

dal modificatore.dal modificatore. pp Incolla prima della posizione del cursore. Incolla prima della posizione del cursore. PP Incolla dopo la posizione del cursore. Incolla dopo la posizione del cursore.

Page 102: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 102102

Copia e spostamento con nomeCopia e spostamento con nome Quando si vogliono utilizzare delle aree temporanee di memoria Quando si vogliono utilizzare delle aree temporanee di memoria

specifiche, cioe` identificate attraverso le lettere dell'alfabeto, si specifiche, cioe` identificate attraverso le lettere dell'alfabeto, si procede nei modi gia` visti, con la differenza che i comandi sono procede nei modi gia` visti, con la differenza che i comandi sono preceduti da "x, dove x e` la lettera che si vuole usare.preceduti da "x, dove x e` la lettera che si vuole usare.

e` possibile accodare del testo a un'area temporanea gia’ utilizzata: e` possibile accodare del testo a un'area temporanea gia’ utilizzata: basta indicarla attraverso una lettera maiuscola.basta indicarla attraverso una lettera maiuscola.

Comandi piu’ usatiComandi piu’ usati xyyxyy Copia la riga attiva nell'area temporanea x Copia la riga attiva nell'area temporanea x xymodxymod Copia nell'area temporanea x il testo fino all'indicazione dal Copia nell'area temporanea x il testo fino all'indicazione dal

modificatore.modificatore. xddxdd Trasferisce la riga attiva nell'area temporanea x. Trasferisce la riga attiva nell'area temporanea x. xdmodxdmod Trasferisce nell'area temporanea x il testo fino Trasferisce nell'area temporanea x il testo fino

all'indicazione dal modificatore.all'indicazione dal modificatore. xpxp Incolla il contenuto dell'area temporanea x prima del cursore. Incolla il contenuto dell'area temporanea x prima del cursore. xPxP Incolla il contenuto dell'area temporanea x dopo il cursore. Incolla il contenuto dell'area temporanea x dopo il cursore.

Page 103: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 103103

RicercheRicerche

Per effettuare delle ricerche all'interno del Per effettuare delle ricerche all'interno del documento aperto con VI si possono utilizzare le documento aperto con VI si possono utilizzare le espressioni regolari attraverso due comandi: / espressioni regolari attraverso due comandi: / e ?e ?

Comandi piu’ usatiComandi piu’ usati / Cerca in avanti/ Cerca in avanti ? Cerca all'indietro? Cerca all'indietro n Ripete l'ultimo comando / o ?n Ripete l'ultimo comando / o ? N Ripete l'ultimo comando / o ? in modo inverso N Ripete l'ultimo comando / o ? in modo inverso

Page 104: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 104104

Ricerche e sostituzioniRicerche e sostituzioni La ricerca e sostituzione sistematica avviene attraverso un La ricerca e sostituzione sistematica avviene attraverso un

comando particolare che inizia con i due punticomando particolare che inizia con i due punti Questa e’ la sintassi:Questa e’ la sintassi:

:inizio,fine{s}/modello_da_cercare/sostituzione/[g][c]:inizio,fine{s}/modello_da_cercare/sostituzione/[g][c] L'indicazione inizio e fine fa riferimento alle righe su cui intervenireL'indicazione inizio e fine fa riferimento alle righe su cui intervenire Il simbolo Il simbolo $$ puo` essere usato per indicare l'ultima riga del file. Un puo` essere usato per indicare l'ultima riga del file. Un

punto singolo (punto singolo (..) rappresenta la riga attiva. Il simbolo ) rappresenta la riga attiva. Il simbolo %% viene invece viene invece utilizzato da solo per indicare tutte le righe del fileutilizzato da solo per indicare tutte le righe del file

Il modello utilizzato per la ricerca viene espresso secondo la forma Il modello utilizzato per la ricerca viene espresso secondo la forma delle espressioni regolari.delle espressioni regolari.

La direttiva La direttiva gg specifica che si deve intervenire su tutte le occorrenze specifica che si deve intervenire su tutte le occorrenze della corrispondenza con il modello, altrimenti la sostituzione della corrispondenza con il modello, altrimenti la sostituzione riguarda solo la prima di queste.riguarda solo la prima di queste.

La direttiva La direttiva cc specifica che ogni sostituzione deve essere specifica che ogni sostituzione deve essere confermata espressamenteconfermata espressamente

Page 105: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 105105

AnnullamentoAnnullamento

VI permette di annullare l'ultimo comando VI permette di annullare l'ultimo comando inserito attraverso il comando uinserito attraverso il comando u

Comandi piu’ usatiComandi piu’ usati uu Annulla l'ultimo comando. Annulla l'ultimo comando. UU Annulla le modifiche sulla riga attiva. Annulla le modifiche sulla riga attiva.

Page 106: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 106106

Caricamento, salvataggio e Caricamento, salvataggio e conclusioneconclusione

Il file o i file utilizzati per la modifica (compresi quelli che si creano) Il file o i file utilizzati per la modifica (compresi quelli che si creano) vengono aperti normalmente attraverso l'indicazione nella riga di vengono aperti normalmente attraverso l'indicazione nella riga di comando, al momento dell'avvio dell'eseguibile vi.comando, al momento dell'avvio dell'eseguibile vi.

Comandi piu’ usatiComandi piu’ usati :e:e nome_file Carica il file indicato per poterlo modificare. nome_file Carica il file indicato per poterlo modificare. :e!:e! Ricarica il file annullando le modifiche fatte nel frattempo. Ricarica il file annullando le modifiche fatte nel frattempo. :f:f Mostra il nome e le caratteristiche del file aperto. Mostra il nome e le caratteristiche del file aperto. :w:w Salva. Salva. :w:w nome_file Salva una copia con il nome indicato. nome_file Salva una copia con il nome indicato. :wq:wq Salva e termina l'esecuzione. Salva e termina l'esecuzione. :q:q Fine lavoro. Fine lavoro. :q!:q! Fine lavoro forzato. Fine lavoro forzato.

Page 107: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 107107

Applicativi distribuiti in Applicativi distribuiti in forma sorgente o compilataforma sorgente o compilata

Page 108: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 108108

Applicativi distribuiti in forma sorgenteApplicativi distribuiti in forma sorgente

La maggior parte dei programmi per Unix il cui La maggior parte dei programmi per Unix il cui utilizzo viene concesso gratuitamente, viene utilizzo viene concesso gratuitamente, viene distribuita in forma sorgentedistribuita in forma sorgente

Ciò significa che per poterli utilizzare, questi Ciò significa che per poterli utilizzare, questi programmi devono essere compilati programmi devono essere compilati

i problemi che derivano dall'installazione di i problemi che derivano dall'installazione di questi applicativi nasce dalla mancanza di questi applicativi nasce dalla mancanza di sostegno da parte del sistema di gestione dei sostegno da parte del sistema di gestione dei pacchetti della propria distribuzione GNU/Linux pacchetti della propria distribuzione GNU/Linux

Page 109: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 109109

Struttura tipica di un pacchetto sorgenteStruttura tipica di un pacchetto sorgente

Un programma distribuito in forma sorgente si trova di Un programma distribuito in forma sorgente si trova di solito confezionato in un archivio il cui nome ha solito confezionato in un archivio il cui nome ha un'estensione .tar.gz o .tgz o .tar.bz2 un'estensione .tar.gz o .tgz o .tar.bz2

In questo archivio solitamente ci sono:In questo archivio solitamente ci sono: uno o più file di documentazione (README, INSTALL, uno o più file di documentazione (README, INSTALL,

ecc.) che servono per ricordare il procedimento corretto ecc.) che servono per ricordare il procedimento corretto per ottenere la compilazione;per ottenere la compilazione;

uno o più script preparati per facilitare questo uno o più script preparati per facilitare questo procedimento;procedimento;

il file-make (o il file-make (o makefilemakefile).).

Page 110: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 110110

Documentazione necessaria alla compilazioneDocumentazione necessaria alla compilazione

tutti i file di testo vanno letti, in particolare tutti i file di testo vanno letti, in particolare quello che spiega il procedimento per la quello che spiega il procedimento per la compilazione e l'installazione.compilazione e l'installazione.

$ less README$ less README $ less INSTALL$ less INSTALL

Page 111: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 111111

./configure./configure

La composizione classica di un pacchetto La composizione classica di un pacchetto distribuito in forma sorgente, prevede la distribuito in forma sorgente, prevede la presenza di uno script il cui scopo è quello di presenza di uno script il cui scopo è quello di costruire un file-make adatto all'ambiente in cui costruire un file-make adatto all'ambiente in cui si vuole compilare il programmasi vuole compilare il programma

Spesso questo script è in grado di accettare Spesso questo script è in grado di accettare argomentiargomenti

Quando questo script di preparazione manca, Quando questo script di preparazione manca, occorre modificare manualmente il file-makeoccorre modificare manualmente il file-make

Per evitare ambiguità, questo script viene Per evitare ambiguità, questo script viene sempre avviato indicando un percorso preciso: sempre avviato indicando un percorso preciso: ./configure./configure

Page 112: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 112112

File-makeFile-make

Il file-make, o Il file-make, o makefilemakefile, è quel file che , è quel file che viene letto da Make, precisamente viene letto da Make, precisamente dall'eseguibile make, allo scopo di dall'eseguibile make, allo scopo di coordinare le varie fasi della compilazione coordinare le varie fasi della compilazione ed eventualmente anche per l'installazione ed eventualmente anche per l'installazione del programma compilatodel programma compilato

Page 113: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 113113

Fasi tipiche di una compilazione e installazioneFasi tipiche di una compilazione e installazione

I pacchetti più comuni si compilano e si I pacchetti più comuni si compilano e si installano con tre semplici operazioni.installano con tre semplici operazioni.

$ $ ./configure./configureGenera automaticamente il file-make.Genera automaticamente il file-make.

$ $ makemakeEsegue la compilazione generando i file Esegue la compilazione generando i file eseguibili.eseguibili.

# # make installmake installInstalla gli eseguibili e gli altri file necessari nella Installa gli eseguibili e gli altri file necessari nella loro destinazione prevista per il funzionamento: loro destinazione prevista per il funzionamento: l'ultima fase deve essere eseguita con i privilegi l'ultima fase deve essere eseguita con i privilegi dell'utente root.dell'utente root.

Page 114: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 114114

ProblemiProblemi

I problemi maggiori si hanno quando non è stato I problemi maggiori si hanno quando non è stato predisposto uno script ./configure o simile e si è predisposto uno script ./configure o simile e si è costretti a modificare il file-make.costretti a modificare il file-make.

il file-make potrebbe non prevedere la fase di il file-make potrebbe non prevedere la fase di installazione (make install), per cui si deve installazione (make install), per cui si deve installare il programma copiando pezzo per installare il programma copiando pezzo per pezzo nella destinazione giusta.pezzo nella destinazione giusta.

Spesso l'installazione non rispetta la struttura Spesso l'installazione non rispetta la struttura standard del proprio file systemstandard del proprio file system

Page 115: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 115115

Pacchetti DebianPacchetti Debian

Page 116: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 116116

Pacchetti DebianPacchetti Debian

Gli archivi della distribuzione GNU/Linux Debian Gli archivi della distribuzione GNU/Linux Debian hanno un formato particolare e l'estensione .debhanno un formato particolare e l'estensione .deb

la maggior parte del software per GNU/Linux è la maggior parte del software per GNU/Linux è disponibile sotto forma di archivi Debian disponibile sotto forma di archivi Debian

Per poter gestire tale formato in un sistema Per poter gestire tale formato in un sistema GNU/Linux diverso dalla distribuzione Debian, GNU/Linux diverso dalla distribuzione Debian, occorre il programma dpkg (Debian ovviamente occorre il programma dpkg (Debian ovviamente ce l’ha di base questo pacchetto)ce l’ha di base questo pacchetto)

Page 117: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 117117

Caratteristiche dei pacchetti DebianCaratteristiche dei pacchetti Debian

Un pacchetto Debian binario, oltre ai file che Un pacchetto Debian binario, oltre ai file che compongono il pacchetto e che vengono compongono il pacchetto e che vengono installati, contiene:installati, contiene:

un file di «controllo» (control), con quasi tutte le un file di «controllo» (control), con quasi tutte le informazioni relative al pacchetto, in particolare informazioni relative al pacchetto, in particolare le sue dipendenze;le sue dipendenze;

un file contenente l'elenco dei file di un file contenente l'elenco dei file di configurazione, per i quali occorre avere un configurazione, per i quali occorre avere un occhio di riguardo (conffiles);occhio di riguardo (conffiles);

due coppie di script che controllano la fase di due coppie di script che controllano la fase di installazione e quella di disinstallazione del installazione e quella di disinstallazione del pacchetto (preinst, postinst, prerm, postrm).pacchetto (preinst, postinst, prerm, postrm).

Page 118: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 118118

Priorita’ di un pacchettoPriorita’ di un pacchetto RequiredRequired

indica un pacchetto necessario per il funzionamento indica un pacchetto necessario per il funzionamento elementare del sistema;elementare del sistema;

ImportantImportantindica un pacchetto importante per il buon funzionamento del indica un pacchetto importante per il buon funzionamento del sistema;sistema;

StandardStandardindica un pacchetto che fa parte di software comune in un indica un pacchetto che fa parte di software comune in un sistema GNU/Linux, senza richiedere la presenza del sistema sistema GNU/Linux, senza richiedere la presenza del sistema grafico X;grafico X;

OptionalOptionalindica un pacchetto opzionale;indica un pacchetto opzionale;

ExtraExtraindica un pacchetto destinato a un uso specializzato, o che va indica un pacchetto destinato a un uso specializzato, o che va in conflitto con altri pacchetti di livello precedente.in conflitto con altri pacchetti di livello precedente.

Page 119: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 119119

DipendenzeDipendenze il file di controllo contiene in particolare le informazioni sulle dipendenze del pacchetto il file di controllo contiene in particolare le informazioni sulle dipendenze del pacchetto Secondo la logica di Debian, le dipendenze avvengono sempre in relazione a Secondo la logica di Debian, le dipendenze avvengono sempre in relazione a

«pacchetti»«pacchetti»

DependsDependsindica un elenco di pacchetti indispensabili, eventualmente con il livello di versione indica un elenco di pacchetti indispensabili, eventualmente con il livello di versione richiesto, che devono essere presenti perché questo possa funzionare;richiesto, che devono essere presenti perché questo possa funzionare;

RecommendsRecommendsindica un elenco di pacchetti raccomandati, anche se non indispensabili, perché il indica un elenco di pacchetti raccomandati, anche se non indispensabili, perché il pacchetto che si installa possa essere utilizzato opportunamente;pacchetto che si installa possa essere utilizzato opportunamente;

SuggestsSuggestsindica un elenco di pacchetti suggeriti, che starebbero bene assieme a quello che si indica un elenco di pacchetti suggeriti, che starebbero bene assieme a quello che si installa;installa;

ConflictsConflictsindica un elenco di pacchetti che non possono convivere assieme a questo;indica un elenco di pacchetti che non possono convivere assieme a questo;

ReplacesReplacesindica un elenco di pacchetti che vengono rimpiazzati da questo;indica un elenco di pacchetti che vengono rimpiazzati da questo;

ProvidesProvidesindica un elenco di pacchetti che rappresentano le funzionalità offerte da questo.indica un elenco di pacchetti che rappresentano le funzionalità offerte da questo.

Page 120: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 120120

Stato di un pacchettoStato di un pacchetto

lo stato di un pacchetto può avere tre gruppi lo stato di un pacchetto può avere tre gruppi di caratteristiche: di caratteristiche:

lo stato in relazione a ciò che è installato lo stato in relazione a ciò che è installato nel sistema,nel sistema,

lo stato di selezionelo stato di selezione e alcune caratteristiche specialie alcune caratteristiche speciali

Page 121: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 121121

Lo stato rispetto al sitemaLo stato rispetto al sitemaRispetto al sistema, un pacchetto può essere :Rispetto al sistema, un pacchetto può essere :

installed – installatoinstalled – installatoil pacchetto risulta installato correttamente nel sistema e anche la il pacchetto risulta installato correttamente nel sistema e anche la configurazione è stata completata;configurazione è stata completata;

half-installed -- semi-installatohalf-installed -- semi-installatol'installazione del pacchetto non è stata completata per qualche ragione;l'installazione del pacchetto non è stata completata per qualche ragione;

not-installed -- non installatonot-installed -- non installatoil pacchetto non risulta installato;il pacchetto non risulta installato;

unpacked – estrattounpacked – estrattoil pacchetto risulta estratto dall'archivio, ma non è stato configurato;il pacchetto risulta estratto dall'archivio, ma non è stato configurato;

half-configured -- semi-configuratohalf-configured -- semi-configuratoil pacchetto risulta estratto dall'archivio e la configurazione non è stata il pacchetto risulta estratto dall'archivio e la configurazione non è stata completata per qualche ragione;completata per qualche ragione;

config-files -- file di configurazioneconfig-files -- file di configurazionedel pacchetto sono presenti solo i file di configurazione.del pacchetto sono presenti solo i file di configurazione.

Page 122: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 122122

Lo stato di selezioneLo stato di selezione

Lo stato di selezione puo’ essere:Lo stato di selezione puo’ essere:

unknown – sconosciutounknown – sconosciutoquando non è mai stata richiesta la sua installazione (e di quando non è mai stata richiesta la sua installazione (e di conseguenza non è nemmeno installato);conseguenza non è nemmeno installato);

install -- da installareinstall -- da installarequando è stata richiesta la sua installazione, o il suo quando è stata richiesta la sua installazione, o il suo aggiornamento;aggiornamento;

remove, deinstall -- da togliereremove, deinstall -- da toglierequando è stata richiesta la sua disinstallazione normale, cioè quando è stata richiesta la sua disinstallazione normale, cioè senza cancellare i file di configurazione;senza cancellare i file di configurazione;

purge -- da eliminare completamentepurge -- da eliminare completamentequando è stata richiesta la sua eliminazione totale, compresi i quando è stata richiesta la sua eliminazione totale, compresi i file di configurazione;file di configurazione;

Page 123: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 123123

Conoscere lo statoConoscere lo stato Per conoscere lo stato di un pacchetto si può usare dpkg richiedendo l'azione -lPer conoscere lo stato di un pacchetto si può usare dpkg richiedendo l'azione -l

1 u1 u Pacchetto sconosciuto. Pacchetto sconosciuto. 1 i1 i Pacchetto da installare. Pacchetto da installare. 1 r1 r Pacchetto da rimuovere (lasciando la configurazione). Pacchetto da rimuovere (lasciando la configurazione). 1 p1 p Pacchetto da eliminare completamente. Pacchetto da eliminare completamente. 2 n2 n Pacchetto non installato. Pacchetto non installato. 2 i2 i Pacchetto installato. Pacchetto installato. 2 c2 c Sono presenti solo i file di configurazione. Sono presenti solo i file di configurazione. 2 u2 u Pacchetto estratto dall'archivio, ma non configurato. Pacchetto estratto dall'archivio, ma non configurato. 2 f2 f Configurazione interrotta. Configurazione interrotta. 2 h2 h Installazione interrotta. Installazione interrotta. 33 Nessuno stato particolare. Nessuno stato particolare. 3 h3 h Segnato per la conservazione alla versione attuale. Segnato per la conservazione alla versione attuale. 3 r3 r Si richiede la reinstallazione. Si richiede la reinstallazione. 3 x3 x Equivalente a «h» e a «r» messi assieme. Equivalente a «h» e a «r» messi assieme.

Page 124: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 124124

Stratificazione degli strumenti di gestione dei pacchetti DebianStratificazione degli strumenti di gestione dei pacchetti Debian

Dselect APT

apt-get apt-cache

DPkg

dpkg-deb dpkg-split

Page 125: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 125125

Stratificazione degli strumenti di gestione dei pacchetti DebianStratificazione degli strumenti di gestione dei pacchetti Debian

dpkg-debdpkg-deb interviene solo al livello di archivi Debian, consentendo interviene solo al livello di archivi Debian, consentendo l'estrazione e l'archiviazione in questo formato;l'estrazione e l'archiviazione in questo formato;

dpkg-splitdpkg-split è uno strumento aggiuntivo in grado di suddividere e è uno strumento aggiuntivo in grado di suddividere e riassemblare assieme gli archivi Debian, in modo da poterli gestire in file più riassemblare assieme gli archivi Debian, in modo da poterli gestire in file più piccoli, soprattutto quando questi devono essere trasportati su dischetti;piccoli, soprattutto quando questi devono essere trasportati su dischetti;

DPkgDPkg (l'eseguibile dpkg) interviene nei pacchetti Debian, a livello (l'eseguibile dpkg) interviene nei pacchetti Debian, a livello elementare, consentendone l'installazione e la loro disinstallazione, elementare, consentendone l'installazione e la loro disinstallazione, avvalendosi eventualmente di dpkg-deb quando necessario;avvalendosi eventualmente di dpkg-deb quando necessario;

apt-getapt-get interviene nei pacchetti Debian, a livello più evoluto di DPkg, interviene nei pacchetti Debian, a livello più evoluto di DPkg, essendo in grado di risolvere da solo molti problemi di dipendenze;essendo in grado di risolvere da solo molti problemi di dipendenze;

apt-cache apt-cache e’ uno strumento aggiuntivo che serve a fare ricerche su tutti I e’ uno strumento aggiuntivo che serve a fare ricerche su tutti I pacchetti (sulla cache dei pacchetti) e a prelevarne descrizioni e pacchetti (sulla cache dei pacchetti) e a prelevarne descrizioni e informazioni specifiche per ogni pacchetto:informazioni specifiche per ogni pacchetto:

DSelectDSelect si trova al livello più alto per la gestione dei pacchetti (assieme a si trova al livello più alto per la gestione dei pacchetti (assieme a APT) e si avvale di tutti gli strumenti inferiori;APT) e si avvale di tutti gli strumenti inferiori;

APTAPT è un sistema di strumenti paralleli a DSelect, composto da diversi è un sistema di strumenti paralleli a DSelect, composto da diversi programmi frontali alternativi che poi si avvalgono di apt-get per lo programmi frontali alternativi che poi si avvalgono di apt-get per lo svolgimento dei loro compiti.svolgimento dei loro compiti.

Page 126: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 126126

APT a livello essenzialeAPT a livello essenziale

Il sistema APT si basa sul programma di servizio Il sistema APT si basa sul programma di servizio apt-get, che a sua volta si avvale di dpkg.apt-get, che a sua volta si avvale di dpkg.

Per funzionare, apt-get richiede la presenza di Per funzionare, apt-get richiede la presenza di un file di configurazione, /etc/apt/sources.list, un file di configurazione, /etc/apt/sources.list, all'interno del quale vanno elencate le fonti da all'interno del quale vanno elencate le fonti da cui si possono ottenere delle distribuzioni cui si possono ottenere delle distribuzioni DebianDebian

espressa secondo la sintassi seguente:espressa secondo la sintassi seguente:deb deb uri_inizio_distribuzioneuri_inizio_distribuzione distribuzionedistribuzione compocomponentenente... ... deb file:/home/pippo/debian/ stable main contrib deb file:/home/pippo/debian/ stable main contrib non-free non-US local non-free non-US local

Page 127: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 127127

APT FunzionamentoAPT Funzionamento Normalmente si inizia aggiornando l'elenco locale dei Normalmente si inizia aggiornando l'elenco locale dei

pacchetti disponibili;pacchetti disponibili;# # apt-get updateapt-get update

quindi potrebbe essere conveniente chiedere l'aggiornamento quindi potrebbe essere conveniente chiedere l'aggiornamento dei pacchetti, riferiti alla stessa versione della distribuzione dei pacchetti, riferiti alla stessa versione della distribuzione che si sta utilizzando.che si sta utilizzando.# # apt-get upgradeapt-get upgrade

Per installare o aggiornare un pacchetto specifico, Per installare o aggiornare un pacchetto specifico, soddisfacendo le dipendenze necessarie, si può intervenire soddisfacendo le dipendenze necessarie, si può intervenire come nell'esempio seguente,come nell'esempio seguente,# # apt-get install apacheapt-get install apache

Infine, per aggiornare il proprio sistema a una nuova versione Infine, per aggiornare il proprio sistema a una nuova versione della distribuzione, si utilizza il comandodella distribuzione, si utilizza il comando# # apt-get -f dist-upgradeapt-get -f dist-upgrade

seguito generalmente da una richiesta esplicita di seguito generalmente da una richiesta esplicita di configurazione dei pacchetti che ne avessero bisogno, per configurazione dei pacchetti che ne avessero bisogno, per mezzo di dpkg:mezzo di dpkg:# # dpkg --configure --pendingdpkg --configure --pending

Page 128: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 128128

Riepilogo dei comandi baseRiepilogo dei comandi base UpdateUpdate

Risincronizza l'elenco locale dei pacchetti rispetto alle origini dichiarate nel file di configurazione. Risincronizza l'elenco locale dei pacchetti rispetto alle origini dichiarate nel file di configurazione. In generale, prima di un comando upgrade o dist-upgrade, occorrerebbe eseguire un comando In generale, prima di un comando upgrade o dist-upgrade, occorrerebbe eseguire un comando update.update.

upgrade upgrade Aggiorna tutti i pacchetti che risultano già installati, per i quali è disponibile un aggiornamento. Aggiorna tutti i pacchetti che risultano già installati, per i quali è disponibile un aggiornamento. L'aggiornamento non viene fatto se questo può provocare degli inconvenienti.L'aggiornamento non viene fatto se questo può provocare degli inconvenienti.

dist-upgrade dist-upgrade Aggiorna tutti i pacchetti che risultano già installati, per i quali è disponibile un aggiornamento. Aggiorna tutti i pacchetti che risultano già installati, per i quali è disponibile un aggiornamento. L'aggiornamento viene fatto tenendo conto delle dipendenze, che nel frattempo potrebbero L'aggiornamento viene fatto tenendo conto delle dipendenze, che nel frattempo potrebbero essere cambiate (di solito quando si tratta di un aggiornamento che coinvolge l'intera essere cambiate (di solito quando si tratta di un aggiornamento che coinvolge l'intera distribuzione).distribuzione).

install install pacchettopacchetto... ... Installa i pacchetti indicati come argomento, provvedendo a sistemare anche le dipendenze. È Installa i pacchetti indicati come argomento, provvedendo a sistemare anche le dipendenze. È bene sottolineare che vanno indicati i nomi dei pacchetti e non i nomi degli archivi che li bene sottolineare che vanno indicati i nomi dei pacchetti e non i nomi degli archivi che li contengono.contengono.

check check Esegue un controllo, anche sui pacchetti che sono stati installati in modo errato.Esegue un controllo, anche sui pacchetti che sono stati installati in modo errato.

clean clean APT utilizza un deposito transitorio per gli archivi utilizzati per l'installazione o l'aggiornamento. Si APT utilizza un deposito transitorio per gli archivi utilizzati per l'installazione o l'aggiornamento. Si tratta della directory /var/cache/apt/archives/, che va ripulita periodicamente attraverso il tratta della directory /var/cache/apt/archives/, che va ripulita periodicamente attraverso il comando clean.comando clean.

Page 129: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 129129

IPv4: configurazione IPv4: configurazione delle interfacce di retedelle interfacce di rete

Page 130: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 130130

IPv4: configurazione delle interfacce di reteIPv4: configurazione delle interfacce di rete

La connessione in una rete basata su IP necessita inizialmente La connessione in una rete basata su IP necessita inizialmente dell'assegnazione di indirizzi IP e quindi di un instradamento per dell'assegnazione di indirizzi IP e quindi di un instradamento per determinare quale strada, o itinerario, devono prendere i pacchetti per determinare quale strada, o itinerario, devono prendere i pacchetti per raggiungere la destinazione.raggiungere la destinazione.

Generalmente, ma non necessariamente, valgono queste regole:Generalmente, ma non necessariamente, valgono queste regole: ogni interfaccia di rete ha un proprio indirizzo IP;ogni interfaccia di rete ha un proprio indirizzo IP; un'interfaccia di rete di un elaboratore può comunicare con un'interfaccia di un'interfaccia di rete di un elaboratore può comunicare con un'interfaccia di

un altro elaboratore solo se queste sono fisicamente connesse alla stessa un altro elaboratore solo se queste sono fisicamente connesse alla stessa rete;rete;

un'interfaccia di rete di un elaboratore può comunicare con un'interfaccia di un'interfaccia di rete di un elaboratore può comunicare con un'interfaccia di un altro elaboratore solo se gli indirizzi di queste interfacce appartengono un altro elaboratore solo se gli indirizzi di queste interfacce appartengono alla stessa rete.alla stessa rete.

per poter gestire una connessione in rete di qualunque tipo, occorre un per poter gestire una connessione in rete di qualunque tipo, occorre un kernel predisposto in modo da attivarne la gestione kernel predisposto in modo da attivarne la gestione

È necessario anche provvedere alla gestione delle interfacce di rete È necessario anche provvedere alla gestione delle interfacce di rete particolari che si utilizzano (moduli)particolari che si utilizzano (moduli)

Page 131: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 131131

Configurazione delle interfacce di reteConfigurazione delle interfacce di rete

La configurazione di un'interfaccia implica La configurazione di un'interfaccia implica essenzialmente l'attribuzione di un indirizzo IPessenzialmente l'attribuzione di un indirizzo IP

Un indirizzo IP di un'interfaccia vale in quanto Un indirizzo IP di un'interfaccia vale in quanto inserito in una rete logica, identificata anche inserito in una rete logica, identificata anche questa da un proprio indirizzo IP questa da un proprio indirizzo IP

quando si assegna un indirizzo a un'interfaccia, quando si assegna un indirizzo a un'interfaccia, occorre anche stabilire la rete a cui questo occorre anche stabilire la rete a cui questo appartiene, attraverso la maschera di rete appartiene, attraverso la maschera di rete

il risultato di il risultato di indirizzo_di_interfacciaindirizzo_di_interfaccia AND AND maschera_di_retemaschera_di_rete genera l'indirizzo della rete genera l'indirizzo della rete

Page 132: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 132132

LoopbackLoopback

Un elaboratore connesso o meno a una rete fisica vera e Un elaboratore connesso o meno a una rete fisica vera e

propria, propria, devedeve avere una connessione virtuale a una avere una connessione virtuale a una rete immaginaria interna allo stesso elaboratorerete immaginaria interna allo stesso elaboratore

A questa rete virtuale inesistente si accede per mezzo di A questa rete virtuale inesistente si accede per mezzo di un'interfaccia immaginaria, che in un sistema GNU/Linux un'interfaccia immaginaria, che in un sistema GNU/Linux è denominata è denominata lo lo

l'indirizzo utilizzato è sempre lo stesso, 127.0.0.1 l'indirizzo utilizzato è sempre lo stesso, 127.0.0.1 È indispensabile che sia presente l'interfaccia locale È indispensabile che sia presente l'interfaccia locale

virtuale per il buon funzionamento del sistema, virtuale per il buon funzionamento del sistema, soprattutto quando l'elaboratore ha già una connessione soprattutto quando l'elaboratore ha già una connessione a una rete realea una rete reale

Page 133: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 133133

EthernetEthernet

La configurazione degli indirizzi di una La configurazione degli indirizzi di una scheda di rete Ethernet è la cosa più scheda di rete Ethernet è la cosa più comunecomune

si tratta semplicemente di abbinare si tratta semplicemente di abbinare all'interfaccia il suo indirizzo stabilendo il all'interfaccia il suo indirizzo stabilendo il proprio ambito di competenza, attraverso proprio ambito di competenza, attraverso la maschera di rete la maschera di rete

Page 134: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 134134

Connessioni Punto-PuntoConnessioni Punto-Punto

Le connessioni di tipo punto-punto, ovvero Le connessioni di tipo punto-punto, ovvero quelle in cui si possono collegare solo due punti quelle in cui si possono collegare solo due punti alla volta, hanno caratteristiche diverse da quelle alla volta, hanno caratteristiche diverse da quelle di tipo a busdi tipo a bus

In linea di massima si può dire che questo tipo di In linea di massima si può dire che questo tipo di connessione implichi la specificazione di connessione implichi la specificazione di entrambi gli indirizzi dei due punti collegati, cioè entrambi gli indirizzi dei due punti collegati, cioè delle rispettive interfacce delle rispettive interfacce

Tuttavia, la configurazione effettiva dipende Tuttavia, la configurazione effettiva dipende anche dalle strategie che si vogliono adottare anche dalle strategie che si vogliono adottare

Page 135: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 135135

Configurazione delle interfacce di reteConfigurazione delle interfacce di rete

le interfacce di rete vengono identificate le interfacce di rete vengono identificate attraverso un nome attraverso un nome

assegnato dal kernel nel momento della loro assegnato dal kernel nel momento della loro identificazione identificazione

La configurazione delle interfacce di rete La configurazione delle interfacce di rete avviene attraverso Ifconfig (l'eseguibile ifconfig)avviene attraverso Ifconfig (l'eseguibile ifconfig)

consente impostazioni differenti a seconda della consente impostazioni differenti a seconda della famiglia di protocolli a cui si intende fare famiglia di protocolli a cui si intende fare riferimento riferimento

Page 136: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 136136

ifconfigifconfig

ifconfig viene utilizzato per attivare e mantenere il ifconfig viene utilizzato per attivare e mantenere il sistema delle interfacce di rete residente nel kernelsistema delle interfacce di rete residente nel kernel

Viene utilizzato al momento dell'avvio per configurare la Viene utilizzato al momento dell'avvio per configurare la maggior parte di questo sistema in modo da portarlo a maggior parte di questo sistema in modo da portarlo a un livello di funzionamento un livello di funzionamento

Dopo, viene utilizzato di solito solo a scopo diagnostico o Dopo, viene utilizzato di solito solo a scopo diagnostico o quando sono necessarie delle regolazioni quando sono necessarie delle regolazioni

Se non vengono forniti argomenti, oppure se vengono Se non vengono forniti argomenti, oppure se vengono indicate solo delle interfacce, ifconfig visualizza indicate solo delle interfacce, ifconfig visualizza semplicemente lo stato delle interfacce specificate, semplicemente lo stato delle interfacce specificate, oppure di tutte se non sono state indicate.oppure di tutte se non sono state indicate.

Page 137: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 137137

Alias IPAlias IP

È possibile attribuire a ogni interfaccia di rete più di un È possibile attribuire a ogni interfaccia di rete più di un indirizzo IPindirizzo IP

Ciò si ottiene definendo delle interfacce virtuali, riferite a Ciò si ottiene definendo delle interfacce virtuali, riferite a quelle reali, a cui poi si attribuiscono degli indirizzi IP quelle reali, a cui poi si attribuiscono degli indirizzi IP differenti differenti

Il nome di un'interfaccia virtuale ha l'aspetto Il nome di un'interfaccia virtuale ha l'aspetto interfaccia_realeinterfaccia_reale::n_interfaccia_virtualen_interfaccia_virtuale

Per esempio, eth0 è il nome reale di un'interfaccia di rete Per esempio, eth0 è il nome reale di un'interfaccia di rete Ethernet, mentre eth0:0, eth0:1,... sono una serie di Ethernet, mentre eth0:0, eth0:1,... sono una serie di interfacce virtuali riferite sempre all'interfaccia reale eth0interfacce virtuali riferite sempre all'interfaccia reale eth0

per ottenere la definizione di alias IP, potrebbe essere per ottenere la definizione di alias IP, potrebbe essere necessario predisporre un kernel adatto necessario predisporre un kernel adatto

Page 138: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 138138

IPv4: instradamento localeIPv4: instradamento locale

L'instradamento definisce la strada che L'instradamento definisce la strada che devono prendere i pacchetti di livello 3 devono prendere i pacchetti di livello 3 (rete), secondo il modello ISO-OSI, a (rete), secondo il modello ISO-OSI, a partire dal nodo a cui si fa riferimentopartire dal nodo a cui si fa riferimento

Page 139: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 139139

Rete localeRete locale in una rete IPv4 per qualunque connessione possibile è in una rete IPv4 per qualunque connessione possibile è

necessario stabilire il percorso, anche quando si tratta di necessario stabilire il percorso, anche quando si tratta di connettersi con l'interfaccia locale immaginaria connettersi con l'interfaccia locale immaginaria ((loopbackloopback) )

Si tratta di costruire la cosiddetta Si tratta di costruire la cosiddetta tabella di tabella di instradamentoinstradamento, attraverso la quale, ogni elaboratore sa , attraverso la quale, ogni elaboratore sa quale strada deve prendere un pacchetto a partire da quale strada deve prendere un pacchetto a partire da quella posizione quella posizione

Quando si configura un'interfaccia di rete e gli si Quando si configura un'interfaccia di rete e gli si attribuisce l'indirizzo IPattribuisce l'indirizzo IP

dal momento che esiste una maschera di rete indicata dal momento che esiste una maschera di rete indicata espressamente o predefinita, potrebbe essere lo stesso espressamente o predefinita, potrebbe essere lo stesso programma di configurazione dell'interfaccia che si programma di configurazione dell'interfaccia che si occupa di definirne l'instradamento nella rete locale occupa di definirne l'instradamento nella rete locale

a ogni modo, rimane la necessità di definirlo a ogni modo, rimane la necessità di definirlo

Page 140: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 140140

LoopbackLoopback

La definizione dell'instradamento per gli La definizione dell'instradamento per gli indirizzi locali di indirizzi locali di loopbackloopback è obbligatoria è obbligatoria

Con un sistema GNU/Linux dovrebbe Con un sistema GNU/Linux dovrebbe essere lo stesso programma Ifconfig che essere lo stesso programma Ifconfig che prepara l'instradamento corretto all'atto prepara l'instradamento corretto all'atto dell'impostazione dell'interfaccia lodell'impostazione dell'interfaccia lo

Page 141: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 141141

EthernetEthernet Le schede di rete Ethernet sono usate per la connessione a una Le schede di rete Ethernet sono usate per la connessione a una

rete locale e per questo sono potenzialmente in grado di offrire un rete locale e per questo sono potenzialmente in grado di offrire un collegamento con tutti gli indirizzi che ricadono all'interno della rete collegamento con tutti gli indirizzi che ricadono all'interno della rete logica di cui fanno partelogica di cui fanno parte

Quando si stabilisce un instradamento che utilizza questo tipo di Quando si stabilisce un instradamento che utilizza questo tipo di interfaccia, è preferibile l'indicazione dell'intera rete logica a cui interfaccia, è preferibile l'indicazione dell'intera rete logica a cui appartiene appartiene

Ovviamente e’ possibile anche creare un istradamento per ogni host Ovviamente e’ possibile anche creare un istradamento per ogni host invece di usare tutta l’indirizzo di reteinvece di usare tutta l’indirizzo di rete

Anche l'indirizzo dell'interfaccia locale, quella del proprio Anche l'indirizzo dell'interfaccia locale, quella del proprio elaboratore, è raggiungibile solo se è stato specificato un elaboratore, è raggiungibile solo se è stato specificato un instradamentoinstradamento

La verifica dell'instradamento deve essere fatta inizialmente La verifica dell'instradamento deve essere fatta inizialmente controllando l'interfaccia localecontrollando l'interfaccia locale

quindi tentando di raggiungere l'indirizzo di un altro elaboratore sulla quindi tentando di raggiungere l'indirizzo di un altro elaboratore sulla rete rete

Page 142: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 142142

routeroute La sintassi di route può articolarsi in diversi modi a seconda del tipo La sintassi di route può articolarsi in diversi modi a seconda del tipo

di azione da compieredi azione da compiere l'analisi della tabella di instradamento;l'analisi della tabella di instradamento;

route [-v] [-n] [-e | -ee] route [-v] [-n] [-e | -ee] è possibile visualizzare (attraverso lo standard output) la tabella di è possibile visualizzare (attraverso lo standard output) la tabella di instradamento.instradamento.

l'aggiunta di un nuovo instradamento;l'aggiunta di un nuovo instradamento;route [-v] addroute [-v] addl'inserimento di una nuova voce nella tabella di instradamento l'inserimento di una nuova voce nella tabella di instradamento avviene per mezzo dell'opzione add e dell'indicazione della avviene per mezzo dell'opzione add e dell'indicazione della destinazione da raggiungere destinazione da raggiungere

l'eliminazione di un instradamento preesistente.l'eliminazione di un instradamento preesistente.route [-v] delroute [-v] del'eliminazione di una voce della tabella di instradamento avviene per 'eliminazione di una voce della tabella di instradamento avviene per mezzo dell'opzione del e dell'indicazione della destinazione che mezzo dell'opzione del e dell'indicazione della destinazione che prima veniva raggiunta prima veniva raggiunta

Page 143: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 143143

Utilizzo di routeUtilizzo di routeIntestazioni della tabella di instradamentoIntestazioni della tabella di instradamento Destination -> Destination -> La rete o il nodo di destinazione.La rete o il nodo di destinazione. Gateway -> Gateway -> Il router. Se appare un asterisco (*) o l'indirizzo 0.0.0.0 Il router. Se appare un asterisco (*) o l'indirizzo 0.0.0.0

significa che non si tratta di un instradamento attraverso un router. significa che non si tratta di un instradamento attraverso un router. Genmask -> Genmask -> In linea di massima corrisponde alla maschera di rete; In linea di massima corrisponde alla maschera di rete;

in particolare, se è un instradamento verso un nodo appare in particolare, se è un instradamento verso un nodo appare 255.255.255.255, se invece è l'instradamento predefinito appare 255.255.255.255, se invece è l'instradamento predefinito appare 0.0.0.0 (default).0.0.0.0 (default).

Flags -> Flags -> Indica diversi tipi di informazioni utilizzando lettere o Indica diversi tipi di informazioni utilizzando lettere o simboli. simboli.

Metric -> Metric -> La distanza o il costo della strada. Rappresenta la La distanza o il costo della strada. Rappresenta la distanza (espressa solitamente in distanza (espressa solitamente in hophop o salti) per raggiungere la o salti) per raggiungere la destinazione.destinazione.

Ref -> Ref -> Il numero di riferimenti all'instradamento. Questa Il numero di riferimenti all'instradamento. Questa informazione non viene utilizzata dal kernel Linux e, di informazione non viene utilizzata dal kernel Linux e, di conseguenza, l'informazione appare sempre azzerata.conseguenza, l'informazione appare sempre azzerata.

Use -> Use -> Conteggio del numero di volte in cui la voce è stata Conteggio del numero di volte in cui la voce è stata visionata. visionata.

Iface -> Iface -> Il nome dell'interfaccia da cui partono i pacchetti IP.Il nome dell'interfaccia da cui partono i pacchetti IP.

Page 144: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 144144

Utilizzo di routeUtilizzo di route

Significato delle lettere e dei simboli utilizzati nella colonna Significato delle lettere e dei simboli utilizzati nella colonna Flags della tabella di instradamento:Flags della tabella di instradamento:

U -> U -> L'instradamento è attivo.L'instradamento è attivo. H -> H -> L'indirizzo indicato fa riferimento a un nodo.L'indirizzo indicato fa riferimento a un nodo. G -> G -> Viene utilizzato un router.Viene utilizzato un router. R -> R -> Instradamento reintegrato (instradamento Instradamento reintegrato (instradamento

dinamico).dinamico). D -> D -> Instradamento installato dinamicamente da un Instradamento installato dinamicamente da un

demone o attraverso ridirezione.demone o attraverso ridirezione. M -> M -> Instradamento modificato da un demone o Instradamento modificato da un demone o

attraverso ridirezione.attraverso ridirezione. ! ->! -> Instradamento impedito (opzione reject). Instradamento impedito (opzione reject).

Page 145: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 145145

Verifica di un instradamentoVerifica di un instradamento

La definizione degli instradamenti, serve La definizione degli instradamenti, serve per stabilire un collegamento con le per stabilire un collegamento con le interfacce di altri elaboratoriinterfacce di altri elaboratori

Quando anche le tabelle di instradamento Quando anche le tabelle di instradamento degli altri elaboratori sono corrette, si può degli altri elaboratori sono corrette, si può verificare che le comunicazioni sono verificare che le comunicazioni sono possibili attraverso il programma possibili attraverso il programma ping ping

ping permette di inviare una richiesta di ping permette di inviare una richiesta di eco a un indirizzo determinatoeco a un indirizzo determinato

Page 146: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 146146

Indirizzi e nomiIndirizzi e nomi

Page 147: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 147147

Indirizzi e nomiIndirizzi e nomi La gestione diretta degli indirizzi IP in forma numerica La gestione diretta degli indirizzi IP in forma numerica

può essere utile in fase di progetto di una retepuò essere utile in fase di progetto di una rete a livello di utente è una pretesa praticamente a livello di utente è una pretesa praticamente

inaccettabile inaccettabile agli indirizzi IP numerici si affiancano quasi sempre dei agli indirizzi IP numerici si affiancano quasi sempre dei

nomi nomi Ogni volta che si fa riferimento a un nome, il sistema è (o Ogni volta che si fa riferimento a un nome, il sistema è (o

dovrebbe essere) in grado di convertirlo nel numero IP dovrebbe essere) in grado di convertirlo nel numero IP corrispondente corrispondente

Ci sono due metodi per trasformare un nome in un Ci sono due metodi per trasformare un nome in un indirizzo IP e viceversa: un elenco contenuto nel file indirizzo IP e viceversa: un elenco contenuto nel file /etc/hosts/etc/hosts oppure l'uso di un oppure l'uso di un servente DNSservente DNS

Page 148: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 148148

/etc/host.conf/etc/host.conf Viene usato per determinare quali servizi usare per Viene usato per determinare quali servizi usare per

risolvere i nomi di dominiorisolvere i nomi di dominio Ogni riga rappresenta un'opzione di funzionamento Ogni riga rappresenta un'opzione di funzionamento Solitamente vengono specificate solo due direttive: Solitamente vengono specificate solo due direttive: orderorder

e e multimulti order order {{hostshosts||bindbind||nisnis}[}[,...,...[[,...,...]]]]

L'opzione order richiede uno o più argomenti indicanti la L'opzione order richiede uno o più argomenti indicanti la sequenza di servizi attraverso cui si deve tentare di sequenza di servizi attraverso cui si deve tentare di risolvere un nomerisolvere un nome

multi multi {{onon||offoff}}L'opzione multi attiva o disattiva la possibilità di trovare L'opzione multi attiva o disattiva la possibilità di trovare all'interno del file /etc/hosts l'indicazione di più indirizzi IP all'interno del file /etc/hosts l'indicazione di più indirizzi IP per lo stesso nomeper lo stesso nome

Page 149: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 149149

/etc/hosts/etc/hosts

Il file /etc/hosts viene usato per convertire i nomi degli Il file /etc/hosts viene usato per convertire i nomi degli elaboratori in numeri IP e viceversaelaboratori in numeri IP e viceversa

È particolarmente utile la sua compilazione all'interno di È particolarmente utile la sua compilazione all'interno di piccole reti che non dispongono di un servente DNS piccole reti che non dispongono di un servente DNS

All'interno di una rete locale può essere predisposto All'interno di una rete locale può essere predisposto uguale per tutti gli elaboratori connessi, così da facilitare uguale per tutti gli elaboratori connessi, così da facilitare per quanto possibile l'aggiornamento all'interno di questi. per quanto possibile l'aggiornamento all'interno di questi.

Dopo l'indirizzo IP, separato da spazi o caratteri di Dopo l'indirizzo IP, separato da spazi o caratteri di tabulazione, inizia l'elenco dei nomi a esso abbinati tabulazione, inizia l'elenco dei nomi a esso abbinati

Di solito, si indica il nome di dominio completo (FQDN o Di solito, si indica il nome di dominio completo (FQDN o Fully qualified domain nameFully qualified domain name), seguito eventualmente da ), seguito eventualmente da possibili abbreviazioni o soprannomi.possibili abbreviazioni o soprannomi.

Page 150: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 150150

/etc/resolv.conf/etc/resolv.conf Quando il file /etc/hosts non basta, si deve poter accedere a un Quando il file /etc/hosts non basta, si deve poter accedere a un

servizio di risoluzione dei nomi, ovvero a un servente DNSservizio di risoluzione dei nomi, ovvero a un servente DNS Viene usato il file /etc/resolv.conf per conoscere l'indirizzo o gli Viene usato il file /etc/resolv.conf per conoscere l'indirizzo o gli

indirizzi dei servizi di risoluzione dei nomi di competenza della rete indirizzi dei servizi di risoluzione dei nomi di competenza della rete cui si appartiene cui si appartiene

Le opzioni utilizzabili sono descritte qui di seguito Le opzioni utilizzabili sono descritte qui di seguito nameserver nameserver indirizzo_ip_servente_DNSindirizzo_ip_servente_DNS

L'opzione nameserver è la più importante e permette di definire L'opzione nameserver è la più importante e permette di definire l'indirizzo IP di un servizio di risoluzione dei nomi.l'indirizzo IP di un servizio di risoluzione dei nomi.

domain domain nome_di_dominionome_di_dominioStabilisce il dominio predefinito per le interrogazioni del servizio di Stabilisce il dominio predefinito per le interrogazioni del servizio di risoluzione dei nomi.risoluzione dei nomi.

search search nome_di_dominionome_di_dominio... ... Definisce un elenco di domini possibili per le interrogazioni del Definisce un elenco di domini possibili per le interrogazioni del servizio di risoluzione dei nomi.servizio di risoluzione dei nomi.

Page 151: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 151151

APACHEAPACHE

Page 152: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 152152

Visione generaleVisione generale

Apache è costituito essenzialmente Apache è costituito essenzialmente dall'eseguibile httpd, che si avvia di solito come dall'eseguibile httpd, che si avvia di solito come demone autonomo dal supervisore dei servizi di demone autonomo dal supervisore dei servizi di rete rete

httpd httpd [[opzioniopzioni]] Di solito, non occorre configurare nulla per Di solito, non occorre configurare nulla per

vedere funzionare il servente in modo vedere funzionare il servente in modo «normale»«normale»

per la pubblicazione di qualche pagina senza per la pubblicazione di qualche pagina senza esigenze particolari, ma la gestione di un sito esigenze particolari, ma la gestione di un sito vero e proprio richiede quasi sempre un vero e proprio richiede quasi sempre un intervento nella configurazione intervento nella configurazione

Page 153: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 153153

Alcune caratteristicheAlcune caratteristiche L'accesso al servizio HTTP avviene a partire da una L'accesso al servizio HTTP avviene a partire da una

parte del file system, che inizia dal cosiddetto parte del file system, che inizia dal cosiddetto document rootdocument root..

Il programma servente Il programma servente nonnon esegue la funzione esegue la funzione chroot() in questa directory, pertanto è possibile chroot() in questa directory, pertanto è possibile articolare le directory successive anche attraverso articolare le directory successive anche attraverso l'uso di collegamenti simbolici in posizioni precedenti l'uso di collegamenti simbolici in posizioni precedenti alla directory alla directory document rootdocument root..

In linea di massima, ogni utente può realizzare una In linea di massima, ogni utente può realizzare una struttura personalizzata di documenti HTML, a partire struttura personalizzata di documenti HTML, a partire dalla propria directory personale (dalla propria directory personale (homehome).).

Il servente è in grado di mettere in funzione dei Il servente è in grado di mettere in funzione dei programmi, detti CGI, per la gestione interattiva di programmi, detti CGI, per la gestione interattiva di pagine HTML contenenti dei moduli.pagine HTML contenenti dei moduli.

Page 154: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 154154

Struttura di directoryStruttura di directory Nella configurazione di Apache si distinguono due directory che Nella configurazione di Apache si distinguono due directory che

vengono definite attraverso un nome particolare; si tratta di vengono definite attraverso un nome particolare; si tratta di ServerRootServerRoot e e DocumentRootDocumentRoot

server rootserver rootLa directory nota come server root è il punto di origine dei file La directory nota come server root è il punto di origine dei file amministrativi di Apache. Viene dichiarata nel file httpd.conf e gli amministrativi di Apache. Viene dichiarata nel file httpd.conf e gli altri file dichiarati all'interno di questo sono intesi essere collocati in altri file dichiarati all'interno di questo sono intesi essere collocati in posizione relativa a tale directory.posizione relativa a tale directory.

document rootdocument rootLa directory nota come document root è il punto di origine dei La directory nota come document root è il punto di origine dei documenti HTML.documenti HTML.

Programmi CGIProgrammi CGIConvenzionalmente, è opportuno collocare i programmi CGI in una Convenzionalmente, è opportuno collocare i programmi CGI in una posizione estranea alla gerarchia che si articola a partire dalla posizione estranea alla gerarchia che si articola a partire dalla directory document root, per facilitare la configurazione della sua directory document root, per facilitare la configurazione della sua accessibilità.accessibilità.

Page 155: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 155155

Avvio e conclusioneAvvio e conclusione

il servizio viene gestito dal demone httpd il servizio viene gestito dal demone httpd può essere avviato direttamente dalla procedura può essere avviato direttamente dalla procedura

di inizializzazione del sistemadi inizializzazione del sistema oppure può essere controllato dal supervisore oppure può essere controllato dal supervisore

dei servizi di rete dei servizi di rete Quando httpd è indipendente dal supervisore dei Quando httpd è indipendente dal supervisore dei

servizi di rete (servizi di rete (standalonestandalone), si può osservare la ), si può osservare la presenza di una serie di processi httpd presenza di una serie di processi httpd discendenti da uno di origine.discendenti da uno di origine.

Page 156: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 156156

Configurazione essenziale di http.confConfigurazione essenziale di http.conf

httpd.conf è il file di configurazione principale di Apachehttpd.conf è il file di configurazione principale di Apache

ServerType ServerType {{ standalone standalone || inetd inetd }}La direttiva ServerType permette di informare Apache su come La direttiva ServerType permette di informare Apache su come questo viene avviato: in modo autonomo o attraverso il supervisore questo viene avviato: in modo autonomo o attraverso il supervisore dei servizi di retedei servizi di rete

Port Port numero_portanumero_portaSi tratta dell'indicazione della porta (di solito è 80, corrispondente Si tratta dell'indicazione della porta (di solito è 80, corrispondente alla denominazione http), necessaria nel caso in cui il demone sia alla denominazione http), necessaria nel caso in cui il demone sia stato avviato in modo autonomostato avviato in modo autonomo

Listen Listen numero_portanumero_portaSe httpd viene utilizzato in modo autonomo, è possibile richiedere Se httpd viene utilizzato in modo autonomo, è possibile richiedere che stia in ascolto anche di un'altra portache stia in ascolto anche di un'altra porta

HostnameLookups HostnameLookups {{ on on || off off }}Permette di decidere se si intende annotare nei file delle Permette di decidere se si intende annotare nei file delle registrazioni l'indirizzo numerico o il nome dei nodi che accedono al registrazioni l'indirizzo numerico o il nome dei nodi che accedono al servizioservizio

Page 157: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 157157

IdentificazioneIdentificazione un nodo che offre un servizio HTTP può essere identificato un nodo che offre un servizio HTTP può essere identificato

attraverso degli alias al nome di dominio canonico attraverso degli alias al nome di dominio canonico Nella configurazione è opportuno definire un nome corretto, che può Nella configurazione è opportuno definire un nome corretto, che può

corrispondere anche a un alias, purché sia valido corrispondere anche a un alias, purché sia valido

ServerAdmin ServerAdmin emailemail La direttiva ServerAdmin permette di definire l'indirizzo di posta La direttiva ServerAdmin permette di definire l'indirizzo di posta elettronica dell'amministratore del servizioelettronica dell'amministratore del servizio

ServerName ServerName nome_standard_del_serventenome_standard_del_serventeAttraverso questa direttiva si può dichiarare espressamente il nome Attraverso questa direttiva si può dichiarare espressamente il nome di dominio del servente HTTP. Può trattarsi alias di un alias definito di dominio del servente HTTP. Può trattarsi alias di un alias definito nel sistema DNS, ma quello che conta è che si tratti di un nome nel sistema DNS, ma quello che conta è che si tratti di un nome valido.valido.

Page 158: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 158158

UtentiUtenti

L'utilizzo di un servizio HTTP è qualcosa di L'utilizzo di un servizio HTTP è qualcosa di prettamente anonimoprettamente anonimo

User User {{ utenteutente || # #nn }}Group Group {{ gruppogruppo || # #nn }}Queste due direttive permettono di definire Queste due direttive permettono di definire l'utente e il gruppo fittizio da abbinare agli l'utente e il gruppo fittizio da abbinare agli accessi fatti al servizio. In pratica, quando si accessi fatti al servizio. In pratica, quando si legge un file HTML o si interpella un programma legge un file HTML o si interpella un programma CGI, lo si fa come se si fosse l'utente indicato da CGI, lo si fa come se si fosse l'utente indicato da queste due direttivequeste due direttive

Page 159: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 159159

Collocazione e denominazione di file e Collocazione e denominazione di file e directorydirectory

Il file httpd.conf contiene l'indicazione della directory Il file httpd.conf contiene l'indicazione della directory server rootserver root, della , della posizione dei file delle registrazioni ed eventualmente anche degli altri file di posizione dei file delle registrazioni ed eventualmente anche degli altri file di configurazione.configurazione.

ServerRoot ServerRoot directorydirectory Rappresenta la directory a partire dalla quale si diramano le informazioni Rappresenta la directory a partire dalla quale si diramano le informazioni sulla configurazione, sulla registrazione degli eventi e simili.sulla configurazione, sulla registrazione degli eventi e simili.

ResourceConfig ResourceConfig config_srmconfig_srmAccessConfig AccessConfig config_accessconfig_access Le direttive mostrate servono per definire rispettivamente il nome e la Le direttive mostrate servono per definire rispettivamente il nome e la collocazione del file di configurazione delle risorse e del file di collocazione del file di configurazione delle risorse e del file di configurazione degli accessi.configurazione degli accessi.

ErrorLog ErrorLog registro_degli_erroriregistro_degli_errori TransferLog TransferLog registro_dei_trasferimentiregistro_dei_trasferimenti Queste direttive definiscono i nomi e la collocazione dei file delle Queste direttive definiscono i nomi e la collocazione dei file delle registrazioni.registrazioni.

PidFile PidFile file_pidfile_pid Definisce il nome e la collocazione del file utilizzato per contenere il numero Definisce il nome e la collocazione del file utilizzato per contenere il numero di processo del demone httpd principaledi processo del demone httpd principale

Page 160: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 160160

Configurazione delle risorse con srm.confConfigurazione delle risorse con srm.conf

Il file srm.conf è il file di configurazione Il file srm.conf è il file di configurazione delle risorse di Apachedelle risorse di Apache

Viene letto subito dopo quello di Viene letto subito dopo quello di configurazione del servente configurazione del servente

Definisce in particolare dove si trovino i Definisce in particolare dove si trovino i documenti (la directory documenti (la directory document rootdocument root e e quella delle pagine degli utenti), gli alias di quella delle pagine degli utenti), gli alias di directory speciali e altre informazioni directory speciali e altre informazioni correlate correlate

Page 161: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 161161

Documenti HTMLDocumenti HTML La funzione principale di srm.conf è quella di definire la La funzione principale di srm.conf è quella di definire la

collocazione dei documenti ipertestuali, oltre ad altre collocazione dei documenti ipertestuali, oltre ad altre informazioni di contorno.informazioni di contorno.

DocumentRoot DocumentRoot directory_iniziale_documenti_htmldirectory_iniziale_documenti_html La direttiva DocumentRoot dichiara la directory da cui si La direttiva DocumentRoot dichiara la directory da cui si possono diramare i documenti HTMLpossono diramare i documenti HTML

UserDir UserDir {{ directory_iniziale_documenti_utentidirectory_iniziale_documenti_utenti || DISABLE DISABLED D [[utenteutente]] }}La direttiva UserDir dichiara la directory, relativamente La direttiva UserDir dichiara la directory, relativamente alla posizione della directory personale di ogni utente, alla posizione della directory personale di ogni utente, all'interno della quale ognuno può collocare i propri all'interno della quale ognuno può collocare i propri documenti HTML personali. Si accede a questi documenti HTML personali. Si accede a questi utilizzando l'URI http://utilizzando l'URI http://hosthost/~/~utenteutente..

Page 162: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 162162

Indici e file di informazioni Indici e file di informazioni Quando si tenta di accedere a una directory, invece che a un file particolare, Quando si tenta di accedere a una directory, invece che a un file particolare,

si ottiene l'indice del contenuto, come se si trattasse del protocollo FTP, si ottiene l'indice del contenuto, come se si trattasse del protocollo FTP, oppure il contenuto di una pagina predefinita.oppure il contenuto di una pagina predefinita.

DirectoryIndex DirectoryIndex file_indicefile_indice......Quando si accede a una directory invece che a un file specifico, se questa Quando si accede a una directory invece che a un file specifico, se questa contiene un file tra quelli elencati nella direttiva DirectoryIndex viene contiene un file tra quelli elencati nella direttiva DirectoryIndex viene restituito quel file, invece del semplice elenco del contenutorestituito quel file, invece del semplice elenco del contenuto

FancyIndexing FancyIndexing {{ on on || off off }} La direttiva FancyIndexing permette di definire se, quando viene restituito La direttiva FancyIndexing permette di definire se, quando viene restituito l'elenco del contenuto di una directory, si vuole una rappresentazione a l'elenco del contenuto di una directory, si vuole una rappresentazione a icone, oppure se si vuole un testo puro e semplice.icone, oppure se si vuole un testo puro e semplice.

IndexIgnore IndexIgnore modello_da_ignoraremodello_da_ignorare... ... Quando si consente di accedere a una directory visualizzandone il Quando si consente di accedere a una directory visualizzandone il contenuto, si può fare in modo che alcuni file non appaiano in elencocontenuto, si può fare in modo che alcuni file non appaiano in elenco

HeaderName HeaderName file_readme_inizialefile_readme_iniziale ReadmeName ReadmeName file_readme_finalefile_readme_finale Attraverso queste due direttive si possono specificare i nomi di file, il cui Attraverso queste due direttive si possono specificare i nomi di file, il cui contenuto si vuole sia incluso nell'elenco della directorycontenuto si vuole sia incluso nell'elenco della directory

Page 163: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 163163

Tipi di fileTipi di file

Il servente ha bisogno di conoscere il tipo di file Il servente ha bisogno di conoscere il tipo di file che si preleva per sapere come comportarsi, ma che si preleva per sapere come comportarsi, ma soprattutto per poterlo comunicare al cliente che soprattutto per poterlo comunicare al cliente che lo ha richiesto.lo ha richiesto.

Questo si ottiene attraverso la configurazione Questo si ottiene attraverso la configurazione dei tipi MIME dei tipi MIME

DefaultType DefaultType tipo_e_sottotipo_mimetipo_e_sottotipo_mime......Permette di definire il tipo MIME predefinito di un Permette di definire il tipo MIME predefinito di un documento per il quale non si riesca a documento per il quale non si riesca a identificare diversamente. Di solito questo valore identificare diversamente. Di solito questo valore predefinito è text/plain.predefinito è text/plain.

Page 164: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 164164

Directory AliasDirectory Alias Per evitare confusione, oltre che per motivi di sicurezza, è Per evitare confusione, oltre che per motivi di sicurezza, è

opportuno dichiarare alcune directory speciali in forma di alias.opportuno dichiarare alcune directory speciali in forma di alias.

Alias Alias directory_fasulladirectory_fasulla directory_realedirectory_reale Questo tipo di direttiva, che può essere ripetuta, permette di definire Questo tipo di direttiva, che può essere ripetuta, permette di definire delle directory in posizioni diverse da quelle reali. La directory delle directory in posizioni diverse da quelle reali. La directory fasulla fa riferimento a una directory indicata nell'indirizzo URI fasulla fa riferimento a una directory indicata nell'indirizzo URI richiesto, mentre quella reale indica la directory effettiva nel richiesto, mentre quella reale indica la directory effettiva nel file system.file system.

ScriptAlias ScriptAlias directory_fasulladirectory_fasulla directory_realedirectory_reale Funziona come la direttiva Alias, ma si riferisce ai programmi CGI. Funziona come la direttiva Alias, ma si riferisce ai programmi CGI. Generalmente, i programmi CGI dovrebbero essere collocati Generalmente, i programmi CGI dovrebbero essere collocati esclusivamente all'interno di directory dichiarate attraverso questa esclusivamente all'interno di directory dichiarate attraverso questa direttiva, per non rischiare di creare problemi di sicurezza del direttiva, per non rischiare di creare problemi di sicurezza del sistemasistema

Page 165: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 165165

Configurazione di accesso alle Configurazione di accesso alle directorydirectory

È possibile definire il nome di un file di È possibile definire il nome di un file di configurazione che, se presente, serve per configurazione che, se presente, serve per definire l'accesso alla directory in cui si definire l'accesso alla directory in cui si trovatrova

Il nome predefinito di questo è .htaccess Il nome predefinito di questo è .htaccess AccessFileName .htaccess AccessFileName .htaccess

Page 166: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 166166

File di messaggiFile di messaggi

In occasione di determinate situazioni In occasione di determinate situazioni errore, il programma servente emette delle errore, il programma servente emette delle segnalazioni di erroresegnalazioni di errore

ErrorDocument ErrorDocument n_erroren_errore file_alternativofile_alternativo ErrorDocument ErrorDocument n_erroren_errore uri_esternouri_esterno ErrorDocument ErrorDocument n_erroren_errore " "messaggiomessaggio

Page 167: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 167167

Sezione directorySezione directory

Le sezioni Directory raccolgono le direttive di Le sezioni Directory raccolgono le direttive di controllo per una particolare directory e per controllo per una particolare directory e per quelle successivequelle successive

La direttiva di apertura, ovvero il marcatore La direttiva di apertura, ovvero il marcatore <Directory>, deve contenere l'indicazione della <Directory>, deve contenere l'indicazione della directory a cui si riferiscono le direttive della directory a cui si riferiscono le direttive della sezione sezione

Quando una sezione si riferisce a una porzione Quando una sezione si riferisce a una porzione già presa in considerazione da un'altra analoga, già presa in considerazione da un'altra analoga, conviene che queste appaiano in una sequenza conviene che queste appaiano in una sequenza tale da porre prima le sezioni generali e dopo tale da porre prima le sezioni generali e dopo quelle più particolareggiatequelle più particolareggiate

Page 168: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 168168

OptionsOptions La direttiva Options permette di definire alcune opzioni in La direttiva Options permette di definire alcune opzioni in

forma di parole chiaveforma di parole chiave se se tuttetutte le opzioni vengono precedute dal segno + o -, le opzioni vengono precedute dal segno + o -,

queste vengono unite a quelle già dichiarate queste vengono unite a quelle già dichiarate

None None Disabilita tutto. Disabilita tutto. All Abilita All Abilita tutte le opzioni. tutte le opzioni. FollowSymLinks FollowSymLinks Abilita l'uso di collegamenti simbolici. Abilita l'uso di collegamenti simbolici. SymLinksIfOwnerMatch SymLinksIfOwnerMatch Abilita l'uso di collegamenti Abilita l'uso di collegamenti

simbolici solo se il proprietario coincide.simbolici solo se il proprietario coincide. ExecCGI ExecCGI Permette l'esecuzione dei programmi CGI. Permette l'esecuzione dei programmi CGI. Indexes Indexes Permette di ottenere il listato del contenuto. Permette di ottenere il listato del contenuto.

Page 169: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 169169

AllowOverrideAllowOverride La direttiva AllowOverride permette di definire quali opzioni possono La direttiva AllowOverride permette di definire quali opzioni possono

essere scavalcate dalle dichiarazioni particolari contenute nei file di essere scavalcate dalle dichiarazioni particolari contenute nei file di accesso delle singole directory (.htaccess)accesso delle singole directory (.htaccess)

None None Impedisce che qualunque direttiva venga scavalcata. Impedisce che qualunque direttiva venga scavalcata. All All Permette che siano scavalcate tutte le direttive. Permette che siano scavalcate tutte le direttive. Options Options Permette l'uso della direttiva Options. Permette l'uso della direttiva Options. Limit Limit Permette l'uso di direttive di controllo sugli accessi. Permette l'uso di direttive di controllo sugli accessi. AuthConfig AuthConfig Permette l'uso di direttive di autorizzazione. Permette l'uso di direttive di autorizzazione. FileInfo FileInfo Permette l'uso di direttive di controllo del tipo di Permette l'uso di direttive di controllo del tipo di

documento.documento. Indexes Indexes Permette l'uso di direttive di controllo sul listato delle Permette l'uso di direttive di controllo sul listato delle

directory.directory.

Page 170: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 170170

AutorizzazioniAutorizzazioni Attraverso una serie di direttive è possibile definire l'autorizzazione all'accesso Attraverso una serie di direttive è possibile definire l'autorizzazione all'accesso

alla directory, fornendo un nominativo e una parola d'ordinealla directory, fornendo un nominativo e una parola d'ordine Questi nominativi e le parole d'ordine cifrate relative devono essere Questi nominativi e le parole d'ordine cifrate relative devono essere

contenuti in un file creato con un programma apposito, htpasswd contenuti in un file creato con un programma apposito, htpasswd

AuthName AuthName nomenomeLa direttiva AuthName permette di definire un nome per identificare il La direttiva AuthName permette di definire un nome per identificare il contesto dell'autorizzazionecontesto dell'autorizzazione

AuthType BasicAuthType BasicQuesta direttiva è obbligatorie e specifica il tipo di autorizzazione.Questa direttiva è obbligatorie e specifica il tipo di autorizzazione.

AuthUserFile AuthUserFile file_di_utenti_e_parole_d'ordinefile_di_utenti_e_parole_d'ordineSpecifica un file da utilizzare come elenco di utenti e parole d'ordine. Specifica un file da utilizzare come elenco di utenti e parole d'ordine. Questo file viene creato e aggiornato utilizzando il programma htpasswdQuesto file viene creato e aggiornato utilizzando il programma htpasswd

AuthGroupFile AuthGroupFile file_dei_gruppifile_dei_gruppi Specifica un file da utilizzare come elenco di gruppi abbinati agli utentiSpecifica un file da utilizzare come elenco di gruppi abbinati agli utenti

require user require user utenteutente... require group ... require group gruppogruppo... require valid-user... require valid-userUna di queste direttive stabilisce la necessità dell'identificazione attraverso Una di queste direttive stabilisce la necessità dell'identificazione attraverso un nominativo-utente e una parola d'ordine.un nominativo-utente e una parola d'ordine.

Page 171: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 171171

Limitazioni dell’accessoLimitazioni dell’accesso

order allow,deny order allow,deny order deny,allow order deny,allow order mutual-failure order mutual-failure In questo modo si specifica l'ordine in cui devono essere In questo modo si specifica l'ordine in cui devono essere

prese in considerazione le direttive deny e allow. prese in considerazione le direttive deny e allow. Quando si specifica la parola chiave mutual-failure, si Quando si specifica la parola chiave mutual-failure, si intende che possono accedere solo i nodi che appaiono intende che possono accedere solo i nodi che appaiono nella lista allow e non appaiono in quella deny.nella lista allow e non appaiono in quella deny.

deny from deny from {{ all all || hosthost... ... }} Impedisce l'accesso da parte dei nodi elencati.Impedisce l'accesso da parte dei nodi elencati.

allow from allow from {{ all all || hosthost... ... }}Consente l'accesso da parte dei nodi elencati.Consente l'accesso da parte dei nodi elencati.

Page 172: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 172172

Sezione LimitSezione Limit Le sezioni Limit sono usate per racchiudere un gruppo di Le sezioni Limit sono usate per racchiudere un gruppo di

direttive di controllo di accesso, che riguardano solo i metodi direttive di controllo di accesso, che riguardano solo i metodi specificati.specificati.

I metodi di accesso in questione sono, per esempio, GET e I metodi di accesso in questione sono, per esempio, GET e POST.POST.

In linea di massima, la sezione Limit può contenere ogni In linea di massima, la sezione Limit può contenere ogni direttiva, a esclusione della dichiarazione ulteriore di sezioni direttiva, a esclusione della dichiarazione ulteriore di sezioni Directory e Limit annidate.Directory e Limit annidate.

require require Utenti che possono accedere attraverso Utenti che possono accedere attraverso autenticazione.autenticazione.

order order Ordine di valutazione delle direttive deny e allow. Ordine di valutazione delle direttive deny e allow. deny deny Specifica i nodi a cui viene negato l'accesso. Specifica i nodi a cui viene negato l'accesso. allow allow Specifica i nodi a cui viene concesso l'accesso. Specifica i nodi a cui viene concesso l'accesso.

Page 173: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 173173

LocationLocation

Le sezioni Location raccolgono le direttive di Le sezioni Location raccolgono le direttive di controllo per un URI particolare.controllo per un URI particolare.

Si tratta di qualcosa molto simile alla sezione Si tratta di qualcosa molto simile alla sezione Directory, con la differenza che il riferimento è Directory, con la differenza che il riferimento è fatto all'URI piuttosto che alla directory del fatto all'URI piuttosto che alla directory del file system effettivo.file system effettivo.

Questa sezione viene usata prevalentemente Questa sezione viene usata prevalentemente per abilitare l'accesso allo stato del servente per abilitare l'accesso allo stato del servente attraverso l'indicazione di un URI, da parte di un attraverso l'indicazione di un URI, da parte di un particolare indirizzo autorizzato.particolare indirizzo autorizzato.

Page 174: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 174174

Controllare l’accesso con .htaccessControllare l’accesso con .htaccess

I file .htaccess possono essere usati per definire delle configurazioni I file .htaccess possono essere usati per definire delle configurazioni specifiche riferite alla directory in cui si trovano.specifiche riferite alla directory in cui si trovano.

Non è necessario il loro utilizzo; si tratta solo di una possibilità, che peraltro Non è necessario il loro utilizzo; si tratta solo di una possibilità, che peraltro deve essere controllata attraverso la direttiva AllowOverride nel file deve essere controllata attraverso la direttiva AllowOverride nel file access.conf. access.conf.

Options Options Opzioni varie. Opzioni varie. DefaultType DefaultType Definisce il tipo e il sottotipo MIME predefinito per la Definisce il tipo e il sottotipo MIME predefinito per la

directory.directory. ErrorDocument ErrorDocument Ridefinisce la risposta in caso si verifichino condizioni di Ridefinisce la risposta in caso si verifichino condizioni di

errore.errore. AuthName AuthName Nome o descrizione di una zona soggetta ad autenticazione. Nome o descrizione di una zona soggetta ad autenticazione. AuthType AuthType Definizione del tipo di autenticazione. Definizione del tipo di autenticazione. require require Dichiarazione degli utenti autorizzati all'autenticazione. Dichiarazione degli utenti autorizzati all'autenticazione. order order Ordine di valutazione delle direttive deny e allow. Ordine di valutazione delle direttive deny e allow. deny deny Specifica i nodi a cui viene negato l'accesso. Specifica i nodi a cui viene negato l'accesso. allow allow Specifica i nodi a cui viene concesso l'accesso. Specifica i nodi a cui viene concesso l'accesso.

Page 175: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 175175

Cenni sulla sicurezzaCenni sulla sicurezza Il demone httpd viene avviato normalmente con i privilegi dell'utente root, quindi, Il demone httpd viene avviato normalmente con i privilegi dell'utente root, quindi,

attraverso delle opportune chiamate di sistema, httpd cambia questi privilegi attraverso delle opportune chiamate di sistema, httpd cambia questi privilegi portandoli a quelli dell'utente e del gruppo specificati con le direttive User e Group del portandoli a quelli dell'utente e del gruppo specificati con le direttive User e Group del file httpd.conf.file httpd.conf.

È molto importante che l'utente e il gruppo corrispondano a nobody, dove questo È molto importante che l'utente e il gruppo corrispondano a nobody, dove questo utente fittizio deve corrispondere idealmente al «perfetto sconosciuto» che accede al utente fittizio deve corrispondere idealmente al «perfetto sconosciuto» che accede al sistema, oppure, ancora meglio, che si tratti di un utente apposito. In questa ottica sistema, oppure, ancora meglio, che si tratti di un utente apposito. In questa ottica devono poi essere regolati i permessi delle directory.devono poi essere regolati i permessi delle directory.

I file amministrativi di Apache non devono essere accessibili in scrittura da parte degli I file amministrativi di Apache non devono essere accessibili in scrittura da parte degli utenti comuni. utenti comuni.

I file che compongono i documenti ipertestuali devono essere accessibili solo in I file che compongono i documenti ipertestuali devono essere accessibili solo in lettura agli utenti comuni, così le directory non devono essere modificabili, eccetto i lettura agli utenti comuni, così le directory non devono essere modificabili, eccetto i permessi che può avere l'utente root.permessi che può avere l'utente root.

È consigliabile utilizzare la direttiva SymLinksIfOwnerMatch per evitare brutti scherzi È consigliabile utilizzare la direttiva SymLinksIfOwnerMatch per evitare brutti scherzi da parte degli utenti che hanno la possibilità di creare documenti HTML a partire dalla da parte degli utenti che hanno la possibilità di creare documenti HTML a partire dalla loro directory personale.loro directory personale.

È bene evitare di permettere l'utilizzo di programmi CGI al di fuori della directory È bene evitare di permettere l'utilizzo di programmi CGI al di fuori della directory definita con la direttiva ScriptAlias nel file srm.conf.definita con la direttiva ScriptAlias nel file srm.conf.

È opportuno evitare di concedere agli utenti comuni di modificare le impostazioni È opportuno evitare di concedere agli utenti comuni di modificare le impostazioni attraverso i file .htaccess. Si ottiene questo con la direttiva AllowOverride None.attraverso i file .htaccess. Si ottiene questo con la direttiva AllowOverride None.

Page 176: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 176176

Utilizzo del sistema di autenticazioneUtilizzo del sistema di autenticazione

Il sistema di autenticazione del programma servente permette di Il sistema di autenticazione del programma servente permette di consentire l'accesso a directory determinate solo a utenti identificati consentire l'accesso a directory determinate solo a utenti identificati in base a un nome e a una parola d'ordine.in base a un nome e a una parola d'ordine.

la parola d'ordine viaggia continuamente attraverso la rete (in la parola d'ordine viaggia continuamente attraverso la rete (in chiaro)chiaro)

più utenti possono accedere simultaneamente da postazioni più utenti possono accedere simultaneamente da postazioni differenti, utilizzando la stessa identificazione e la stessa parola differenti, utilizzando la stessa identificazione e la stessa parola d'ordine d'ordine

Per gestire questo tipo di autenticazione, occorre generare un file di Per gestire questo tipo di autenticazione, occorre generare un file di utenti e di parole d'ordine, aggiungendo possibilmente anche un file utenti e di parole d'ordine, aggiungendo possibilmente anche un file di gruppi.di gruppi.

Si utilizza il programma htpasswd che normalmente fa parte del Si utilizza il programma htpasswd che normalmente fa parte del pacchetto di Apache pacchetto di Apache

Lo stesso programma può essere usato per modificare la parola Lo stesso programma può essere usato per modificare la parola d'ordine di un utente già registrato.d'ordine di un utente già registrato.

Page 177: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 177177

ConfigurazioneConfigurazione La configurazione delle directory che devono essere accessibili solo La configurazione delle directory che devono essere accessibili solo

attraverso un'autenticazione, avviene nel file access.conf in una attraverso un'autenticazione, avviene nel file access.conf in una sezione Directory. (o in un file .htaccess)sezione Directory. (o in un file .htaccess)

Sono indispensabili le direttive AuthName, AuthType e AuthUserFile Sono indispensabili le direttive AuthName, AuthType e AuthUserFile con cui si dà un nome all'autenticazione, si definisce il tipo e si con cui si dà un nome all'autenticazione, si definisce il tipo e si indica il nome del file degli utenti e delle parole d'ordine indica il nome del file degli utenti e delle parole d'ordine

La direttiva AuthGroupFile serve solo se si intende fare riferimento a La direttiva AuthGroupFile serve solo se si intende fare riferimento a gruppi di utenti.gruppi di utenti.

La direttiva require stabilisce a chi, tra gli utenti che sono dichiarati La direttiva require stabilisce a chi, tra gli utenti che sono dichiarati nel file di utenti e di parole d'ordine, sia concesso di accederenel file di utenti e di parole d'ordine, sia concesso di accedere

La parola chiave valid-user rappresenta tutti gli utenti che sono stati La parola chiave valid-user rappresenta tutti gli utenti che sono stati previsti. previsti.

In alternativa possono essere elencati gli utenti a cui concedere In alternativa possono essere elencati gli utenti a cui concedere l'accesso l'accesso

Page 178: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 178178

Siti VirtualiSiti Virtuali Apache è in grado di gestire diversi siti virtuali indipendenti sullo Apache è in grado di gestire diversi siti virtuali indipendenti sullo

stesso elaboratore stesso elaboratore In pratica, si distinguono diverse directory per le pagine HTML In pratica, si distinguono diverse directory per le pagine HTML

(diverse directory (diverse directory document rootdocument root), dove ognuna di queste viene ), dove ognuna di queste viene selezionata in base al nome di dominio (o anche in base alla porta selezionata in base al nome di dominio (o anche in base alla porta tcp) utilizzato per accedere al servizio tcp) utilizzato per accedere al servizio

occorre che lo stesso elaboratore sia accessibile utilizzando nomi di occorre che lo stesso elaboratore sia accessibile utilizzando nomi di dominio differenti dominio differenti

Per definire dei siti virtuali alternativi si interviene nel file httpd.conf, Per definire dei siti virtuali alternativi si interviene nel file httpd.conf, attraverso la sezione <VirtualHost … >attraverso la sezione <VirtualHost … >

<VirtualHost <VirtualHost nome_di_dominionome_di_dominio > > direttiva_specificadirettiva_specifica ... ...

</VirtualHost> </VirtualHost>

Le direttive all’interno di <VirtualHost> sono le stesse per il sito Le direttive all’interno di <VirtualHost> sono le stesse per il sito “reale”“reale”

Page 179: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 179179

SambaSamba

Page 180: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 180180

I demoniI demoni

Un servente Samba si basa su due demoni:Un servente Samba si basa su due demoni: smbd che fornisce i servizi di condivisione di file smbd che fornisce i servizi di condivisione di file

stampanti per i clienti SMB e si occupa della stampanti per i clienti SMB e si occupa della gestione delle sessioni di comunicazione e delle gestione delle sessioni di comunicazione e delle autenticazioni necessarie all'accesso alle risorseautenticazioni necessarie all'accesso alle risorse

nmbd che gestisce la distribuzione dell'elenco nmbd che gestisce la distribuzione dell'elenco delle risorse condivise alle altre macchine della delle risorse condivise alle altre macchine della rete.rete.

Entrambi i demoni smbd e nmbd possono Entrambi i demoni smbd e nmbd possono essere attivati in modo autonomo, o gestiti dal essere attivati in modo autonomo, o gestiti dal supervisore dei servizi di retesupervisore dei servizi di rete

Page 181: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 181181

ConfigurazioneConfigurazione La configurazione di un servente Samba si basa su di un file La configurazione di un servente Samba si basa su di un file

di testo; solitamente è /etc/samba/smb.confdi testo; solitamente è /etc/samba/smb.conf indifferente usare maiuscole o minuscole a meno che tale uso indifferente usare maiuscole o minuscole a meno che tale uso

non vada a interferire con le regole del sistema operativo non vada a interferire con le regole del sistema operativo sottostante. sottostante.

Le righe di commento iniziano con i simboli ; oppure #.Le righe di commento iniziano con i simboli ; oppure #. Il carattere di continuazione riga è \.Il carattere di continuazione riga è \. Alcune direttive di configurazione di Samba, per ragioni di Alcune direttive di configurazione di Samba, per ragioni di

compatibilità, sono ridondanti; per questo motivo uno stesso compatibilità, sono ridondanti; per questo motivo uno stesso risultato si può ottenere in modi diversi.risultato si può ottenere in modi diversi.

Per rendere effettive le variazioni fatte al file di configurazione Per rendere effettive le variazioni fatte al file di configurazione non è necessario riavviare i demoni di Samba in quanto il file non è necessario riavviare i demoni di Samba in quanto il file viene riletto automaticamente ogni 60 sviene riletto automaticamente ogni 60 s

Page 182: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 182182

smb.confsmb.conf

Il file di configurazione è suddiviso in Il file di configurazione è suddiviso in sezioni i cui nomi sono racchiusi tra sezioni i cui nomi sono racchiusi tra parentesi quadrate.parentesi quadrate.

Ogni sezione corrisponde a una risorsa Ogni sezione corrisponde a una risorsa condivisa a eccezione della sezione global condivisa a eccezione della sezione global usata per le configurazioni globali. Altre usata per le configurazioni globali. Altre sezioni con un ruolo un po' particolare sezioni con un ruolo un po' particolare sono homes e printers.sono homes e printers.

Page 183: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 183183

SezioniSezioni Sezione [global]Sezione [global]

– In essa si impostano le informazioni che condizionano tutto il sistema ed In essa si impostano le informazioni che condizionano tutto il sistema ed eventualmente quei parametri che se non specificati vengono assunti in eventualmente quei parametri che se non specificati vengono assunti in modo predefinito, ad esempio il nome del gruppo di lavoro (modo predefinito, ad esempio il nome del gruppo di lavoro (workgroupworkgroup).).

Sezione [homes]Sezione [homes]– In essa si regolano i parametri di configurazione delle directory In essa si regolano i parametri di configurazione delle directory

personali degli utenti che si collegano al servente Samba.personali degli utenti che si collegano al servente Samba. Sezione [printers]Sezione [printers]

– Consente di impostare le caratteristiche della condivisione di tutte le Consente di impostare le caratteristiche della condivisione di tutte le stampanti installate nella macchina GNU/Linux senza dover definire una stampanti installate nella macchina GNU/Linux senza dover definire una condivisione separata per ognuna di esse.condivisione separata per ognuna di esse.

All'interno del file di configurazione è possibile usare alcune variabili All'interno del file di configurazione è possibile usare alcune variabili il cui nome viene sostituito dal rispettivo valore quando il file di il cui nome viene sostituito dal rispettivo valore quando il file di configurazione viene utilizzato dai demoni smbd e nmbd.configurazione viene utilizzato dai demoni smbd e nmbd.

Page 184: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 184184

Sezione [global]Sezione [global] La voce più importante è workgroup che assegna a Samba il dominio o il La voce più importante è workgroup che assegna a Samba il dominio o il

gruppo di appartenenzagruppo di appartenenza La voce netbios name è di utilizzo meno frequente e serve ad assegnare al La voce netbios name è di utilizzo meno frequente e serve ad assegnare al

servente Samba un nome NetBIOS a piacere. Il nome NetBIOS viene infatti servente Samba un nome NetBIOS a piacere. Il nome NetBIOS viene infatti assegnato in modo definito pari a quello ottenuto dal DNSassegnato in modo definito pari a quello ottenuto dal DNS

Con server string si assegna semplicemente la descrizione dell'elaboratore Con server string si assegna semplicemente la descrizione dell'elaboratore servente.servente.

Le direttive Host allow e host deny servono rispettivamente a specificare Le direttive Host allow e host deny servono rispettivamente a specificare quali nodi possono e non possono accedere alle risorse condivise dal quali nodi possono e non possono accedere alle risorse condivise dal servente Samba.servente Samba.

tali direttive possono essere inserite anche in specifiche condivisioni ma con tali direttive possono essere inserite anche in specifiche condivisioni ma con grado di priorità inferiore rispetto a quanto specificato nella sezione global.grado di priorità inferiore rispetto a quanto specificato nella sezione global.

La direttiva interfaces è utile in caso il servente Samba risieda in più di una La direttiva interfaces è utile in caso il servente Samba risieda in più di una sottorete. Se sull'elaboratore sono presenti più interfacce di rete, in modo sottorete. Se sull'elaboratore sono presenti più interfacce di rete, in modo predefinito, Samba si mette in ascolto di richieste provenienti dagli indirizzi predefinito, Samba si mette in ascolto di richieste provenienti dagli indirizzi di rete corrispondenti alla rete della prima interfaccia che trovadi rete corrispondenti alla rete della prima interfaccia che trova

Page 185: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 185185

Sezione [global]Sezione [global] La direttiva printing permette di specificare il sistema di stampa in uso nel La direttiva printing permette di specificare il sistema di stampa in uso nel

serventeservente La direttiva log file permette di indicare il file delle registrazioni per gli eventi La direttiva log file permette di indicare il file delle registrazioni per gli eventi

SambaSamba Con max log size si specifica la grandezza in kibibyte del file delle Con max log size si specifica la grandezza in kibibyte del file delle

registrazioniregistrazioni La direttiva log level indica il livello di dettaglio dei messaggi annotati nel La direttiva log level indica il livello di dettaglio dei messaggi annotati nel

registroregistro La direttiva encrypt password = yes è praticamente obbligatoria se il La direttiva encrypt password = yes è praticamente obbligatoria se il

servente Samba deve «convivere» con macchine equipaggiate con sistemi servente Samba deve «convivere» con macchine equipaggiate con sistemi operativi MS-Windows 98/NT o più recenti che usano le parole d'ordine operativi MS-Windows 98/NT o più recenti che usano le parole d'ordine cifrate.cifrate.

La direttiva null password = yes permette di avere utenti Samba con parola La direttiva null password = yes permette di avere utenti Samba con parola d'ordine nullad'ordine nulla

La direttiva guest account indica il nome di un utente generico al quale può La direttiva guest account indica il nome di un utente generico al quale può essere consentito l'accesso alle condivisioni (tale utente deve essere essere consentito l'accesso alle condivisioni (tale utente deve essere definito nel sistema GNU/Linux senza directory personale e senza shell)definito nel sistema GNU/Linux senza directory personale e senza shell)

Page 186: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 186186

Livello di sicurezza “share”Livello di sicurezza “share”

Con l'impostazione security = share si ha il Con l'impostazione security = share si ha il controllo di accesso a livello di controllo di accesso a livello di condivisione: il cliente che vuole accedere condivisione: il cliente che vuole accedere a una risorsa invia ogni volta una parola a una risorsa invia ogni volta una parola d'ordine e nessun nominativo-utented'ordine e nessun nominativo-utente

Questo livello di sicurezza si usa per Questo livello di sicurezza si usa per condividere porzioni di file system quando condividere porzioni di file system quando si ha interesse a far sì che tutti gli utenti si ha interesse a far sì che tutti gli utenti abbiano gli stessi diritti sui file condivisiabbiano gli stessi diritti sui file condivisi

Page 187: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 187187

Livello di sicurezza “user”Livello di sicurezza “user” Con l'impostazione security = user, che è quella predefinita, si Con l'impostazione security = user, che è quella predefinita, si

ha il controllo di accesso a livello di utente: il cliente che vuole ha il controllo di accesso a livello di utente: il cliente che vuole accedere a una risorsa invia al momento della connessione accedere a una risorsa invia al momento della connessione una coppia utente-parola d'ordine in base alla quale avviene una coppia utente-parola d'ordine in base alla quale avviene l'autenticazione da parte del serventel'autenticazione da parte del servente

Il controllo delle utenze viene effettuato dal servente Samba Il controllo delle utenze viene effettuato dal servente Samba in base al contenuto del file dei suoi utenti che solitamente è in base al contenuto del file dei suoi utenti che solitamente è /etc/samba/smbpasswd/etc/samba/smbpasswd

È di fondamentale importanza notare che comunque il nome È di fondamentale importanza notare che comunque il nome utente Samba deve coincidere con il nome di un utente utente Samba deve coincidere con il nome di un utente definito nel sistema GNU/Linux, in quanto quest'ultimo deve definito nel sistema GNU/Linux, in quanto quest'ultimo deve essere sempre in grado di assegnare un proprietario «valido» essere sempre in grado di assegnare un proprietario «valido» agli eventuali file creati o copiati dall'utente conneso all'interno agli eventuali file creati o copiati dall'utente conneso all'interno della risorsa condivisa.della risorsa condivisa.

Page 188: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 188188

Livello di sicurezza “server”Livello di sicurezza “server”

Con l'impostazione security = server si ha Con l'impostazione security = server si ha lo stesso controllo di accesso visto nel lo stesso controllo di accesso visto nel caso di user con la differenza che l'utenza caso di user con la differenza che l'utenza viene controllata su un servente esterno viene controllata su un servente esterno (solitamente un PDC MS-Windows) il cui (solitamente un PDC MS-Windows) il cui nome (NetBIOS) viene indicato con la nome (NetBIOS) viene indicato con la direttiva password server =direttiva password server =

Page 189: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 189189

Livello di sicurezza “domain”Livello di sicurezza “domain”

Con l'impostazione security = domain si ha ancora lo Con l'impostazione security = domain si ha ancora lo stesso controllo di accesso visto nel caso di user, ma stesso controllo di accesso visto nel caso di user, ma questa volta il servente Samba va a inserirsi in un questa volta il servente Samba va a inserirsi in un dominio MS-Windows NT/2000dominio MS-Windows NT/2000

Il vantaggio principale dell'impostazione domain rispetto Il vantaggio principale dell'impostazione domain rispetto a quella server consiste nel fatto che il PDC risulta meno a quella server consiste nel fatto che il PDC risulta meno carico, in quanto non è più necessaria una connessione carico, in quanto non è più necessaria una connessione di rete permanente tra esso e il servente Samba.di rete permanente tra esso e il servente Samba.

Quest'ultimo infatti effettua una chiamata RPC (Quest'ultimo infatti effettua una chiamata RPC (Remote Remote procedure callprocedure call) solo al momento dell'autenticazione e ) solo al momento dell'autenticazione e non necessita di essere costantemente connesso al non necessita di essere costantemente connesso al PDC come avviene nel caso del livello di sicurezza PDC come avviene nel caso del livello di sicurezza server server

Page 190: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 190190

Sezioni generiche di condivisioneSezioni generiche di condivisione

Una sezione indicante una risorsa condivisa può avere un nome a Una sezione indicante una risorsa condivisa può avere un nome a piacere purché sempre racchiuso tra parentesi quadrate.piacere purché sempre racchiuso tra parentesi quadrate.

La direttiva comment serve ad associare una descrizione alla La direttiva comment serve ad associare una descrizione alla risorsa condivisarisorsa condivisa

L'opzione browseable permette di rendere visibile o no la risorsa L'opzione browseable permette di rendere visibile o no la risorsa agli utenti che si connettono al servente.agli utenti che si connettono al servente.

public è un sinonimo di guest ok.public è un sinonimo di guest ok. path permette di indicare il percorso della risorsa sul sistema path permette di indicare il percorso della risorsa sul sistema

GNU/Linux.GNU/Linux. writable serve a concedere o negare l'accesso in scrittura.writable serve a concedere o negare l'accesso in scrittura. valid users indica quali sono gli utenti che possono accedere alla valid users indica quali sono gli utenti che possono accedere alla

risorsa.risorsa. create [mask, directory] servono a indicare i permessi con cui create [mask, directory] servono a indicare i permessi con cui

verranno creati file e directory all'interno della risorsa condivisa verranno creati file e directory all'interno della risorsa condivisa

Page 191: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 191191

Sezione “homes”Sezione “homes”

La sezione homes viene utilizzata affinché La sezione homes viene utilizzata affinché ogni utente possa avere accesso a una ogni utente possa avere accesso a una propria directory personale sul servente propria directory personale sul servente Samba che potrà anche coincidere con la Samba che potrà anche coincidere con la directory personale GNU/Linux di directory personale GNU/Linux di quell'utentequell'utente

Page 192: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 192192

Sezione “printers”Sezione “printers”

Con questa sezione si impostano i Con questa sezione si impostano i parametri di configurazione di tutte le parametri di configurazione di tutte le stampanti definite nel sistema GNU/Linux stampanti definite nel sistema GNU/Linux a patto che nella sezione global siano a patto che nella sezione global siano state inserite le direttive:state inserite le direttive:load printers = yesload printers = yesprintcap name = /etc/printcap printcap name = /etc/printcap

Page 193: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 193193

Programmi ausiliariProgrammi ausiliari Un primo strumento molto utile è testparm con il quale si Un primo strumento molto utile è testparm con il quale si

verifica la correttezza sintattica delle impostazioni scritte verifica la correttezza sintattica delle impostazioni scritte nel file smb.conf.nel file smb.conf.

Altro programma di fondamentale importanza è Altro programma di fondamentale importanza è smbpasswd che si usa principalmente per definire utenti smbpasswd che si usa principalmente per definire utenti e parole d'ordine relative.e parole d'ordine relative.

Altro strumento utile è lo script smbadduser che Altro strumento utile è lo script smbadduser che permette di definire un nuovo utente Samba e permette di definire un nuovo utente Samba e contemporaneamente l'associazione con utenti contemporaneamente l'associazione con utenti GNU/Linux corrispondentiGNU/Linux corrispondenti

Infine può essere molto utile anche il comando Infine può essere molto utile anche il comando smbstatus per avere un rapporto (con l'opzione -d anche smbstatus per avere un rapporto (con l'opzione -d anche dettagliato) delle connessioni Samba attive.dettagliato) delle connessioni Samba attive.

Page 194: Fondamenti di GNU/Linux...settore di avvio su un dischetto, sull'MBR o sul primo settore della partizione contenente GNU/Linux; GRUB, che è funzionalmente simile a LILO; Loadlin,

www.michelem.orgwww.michelem.org 194194

FINEFINE

Fondamenti di GNU/LinuxFondamenti di GNU/LinuxBasato su Basato su DebianDebian GNU/Linux GNU/Linux

di Michele Marcuccidi Michele Marcuccihttp://www.michelem.org/http://www.michelem.org/

Liberamente tratto da “Appunti di Informatica Libera”Liberamente tratto da “Appunti di Informatica Libera”

di Daniele Giacomini (http://a2.swlibero.org)di Daniele Giacomini (http://a2.swlibero.org)