I riassunti , gli appunti i testi contenuti nel nostro sito sono messi a disposizione gratuitamente con finalità illustrative didattiche, scientifiche, a carattere sociale, civile e culturale a tutti i possibili interessati secondo il concetto del fair use e con l' obiettivo del rispetto della direttiva europea 2001/29/CE e dell' art. 70 della legge 633/1941 sul diritto d'autore
Le informazioni di medicina e salute contenute nel sito sono di natura generale ed a scopo puramente divulgativo e per questo motivo non possono sostituire in alcun caso il consiglio di un medico (ovvero un soggetto abilitato legalmente alla professione).
Luglio 1991 |
Tutto inizia in un'estate finlandese, Linus Benedict Torvalds, ancora un giovane studente dell' Università di Helsinki, inizia a lavorare al suo hobby: Linux. |
|
|
5 Ottobre 1991 |
Nello stesso anno viene rilasciata la versione 0.02. Il post su usenet che ne annuncia la presenza è diventato un classico. |
|
|
Gennaio 1992 |
Viene rilasciata la versione 0.12. Risulta relativamente stabile e supporta vario hardware. |
|
|
Aprile 1992 |
Rilasciate la versione 0.95 e 0.96. Il salto è diretto dalla 0.12. Nascono le prime distribuzioni: la MCC Linux e la SLS. |
|
|
1994 |
Viene rilasciata la prima versione definitiva 1.0. |
|
|
1995 |
Compaiono sul mercato delle nuove distribuzione commerciali come Caldera Linux. Kernel 1.2 out in Marzo. |
|
|
1996 |
Rilasciata la versione 2.0. |
|
|
1997 |
Da qui in poi la storia di Linux diventa sempre più Linus indipendent, nel 1997 lascia la Finlandia per raggiungere Santa Clara, Silicon Valley, dove lo aspetta, nella misteriosa start-up Transmeta, un ruolo che ai più non è chiaro. |
|
|
1999 |
Dopo lunga attesa il kernel 2.2 vede la luce. |
|
|
2001 |
Agli inizi dell'anno, dopo varie pre-version, su kernel.org appare l'immagine da 19.788.626 byte del 2.4.0 La prima release di un altro stable thread. |
|
|
Oggi |
Linux è una reale alternativa al mondo Microsoft e Unix, si ritrova milioni di utenti, migliaia di sviluppatori e un mercato in espansione. |
|
|
Non essendoci dati di vendita centralizzati è difficile valutare la diffusione di Linux.
Informazioni e indicazioni utili vengono date da Linux Counter, dove viene oltretutto fatto un censimento (volontario) sul numero di utenti Linux: nel Gennaio 2002 risultavano 117.842 utenti registrati e 105.408 macchine registrate. Questo stima è ovviamente per difetto (la registrazione viene fatta sul sito stesso).
Il gestore di questo sito (ovviamente un Linux enthusiast) stima in 18.000.000 il numero di utenti Linux.
Altro indicatore interessante è Netcraft, che, pur senza fare riferimento a singoli OS, dà indicazioni utili sui server Web utilizzati in rete.
Recenti ricerche varie fatte sulla diffusione di Linux nel mondo danno risultati diversi:
- IDC stima 1.300.000 server Linux consegnati nel 1999;
- Dataquest ben più prudenzialmente stima in 543.778 il numero di server Linux consegnati nel 2001.
A titolo di curiosità Google, nel Gennaio 2002, conta circa 50.500.000 pagine contenenti la parola linux (e 43.000.000 pagine con la parola windows).
Sempre a Gennaio 2002 esistono 480 Linux User Groups (LUG), di cui 16 in Italia.
Comunque si vogliano considerare questi numeri il dato certo è:
- La crescita nella diffusione di Linux è innegabile;
- Il suo utilizzo in ambiti aziendale, corporate e accademico sempre maggiore;
- La conoscenza delle sue potenzialità è sempre più precisa e consapevole.
Per kernel si intende il cuore di un sistema operativo, il codice che gestisce le risorse presenti sul nostro sistema e le rende disponibili alle applicazioni. Il kernel si occupa principalmente di gestire: - le comunicazioni con l'hardware del sistema, - i file system, la memoria, - l'accesso a queste risorse da parte dei processi (le applicazioni che girano sul sistema)... |
Le versioni del kernel Linux sono identificate con numeri dal significato ben preciso. Per esempio il kernel 2.4.15 ha:
2- Il major number. I kernel della serie 1.x sono ormai piuttosto vecchi e pochissimo usati.
4- Il minor number. Se è pari il kernel viene considerato stable e pronto per sistemi in produzione, se è dispari lo si considera in development e da usare con cautela o per sperimentazione. Le release stable sono sempre figlie delle devel precedenti. Per esempio al momento in cui si scrive, il kernel stable è alla versione 2.4.18, mentre quello in sviluppo è alla 2.5.7 (da cui deriverà la 2.6.x o direttamente la 3.0.x). Solitamente nei kernel stable si tende a fare maintenance ed a implementare solo le features strettamente necessarie, lasciando a quello in development lo sviluppo di nuove funzionalità.
15- E' la revisione (patch) corrente. Questo è un numero progressivo che parte da 0. Da una revisione alla successiva possono passare da pochi giorni a varie settimane.
Esistono inoltre varie patch temporanee, anche non di Torwalds stesso (comuni sono le -ac patch, di Alan Cox) che rappresentano stadi intermedi prima della release di una revisione definitiva.
Ha senso utilizzarle subito solo in caso di utilizzo di kernel con gravi problemi di sicurezza o stabilità (sul proprio sistema) che vengono risolte con le relative patch parziali.
Kernel Monolitico Vs Kernel Modulare |
||||||
Esistono diversi tipi di kernel:
Il kernel monolitico è più veloce, poichè tutto il codice è già stato caricato al bootstrap dell'OS, ma di contro occupa maggiori risorse del sistema. |
Le distribuzioni |
||||||||||
Una Distribuzione (distro) è un confezionamento (packaging) di Linux, con procedure che rendono comoda e semplice l'installazione.
|
Quale distribuzione usare? |
E' difficile suggerire una specifica distribuzione da utilizzare per i propri server. |
E' fondamentale essere ben preparati prima dell'installazione per evitare che ore di lavoro vadano in fumo per una mancata o sbagliata considerazione e analisi dei propri bisogni e del proprio hardware. |
Hardware, quale scegliere? |
||||||||||||||||
Una scelta importantissima è quella della configurazione hardware, dal numero di interfacce di rete al numero di processori, dalla dimensione dei dischi fissi a quanta ram utilizzare.
|
L'installazione di Linux si può eseguire seguendo metodi differenti: tramite CD-ROM (con boot diretto dal CD oppure via floppy) o via rete (ftp, nfs, smb).
In questo corso si affronta una normale installazione tramite CDROM.
Durante l'installazione viene chiesto quale utilizzo si deve fare della macchina e per alcuni casi comuni (server, desktop, laptop, stazione di sviluppo) ci sono delle impostazioni che installano automaticamente dei pacchetti (software) predefiniti.
Alternativamente è possibile una selezione custom di cosa si vuole installare: i pacchetti sono divisi per categoria ed è possibile sceglierli singolarmente. Il sistema provvede automaticamente ad installare le dependencies, pacchetti non selezionati necessari per poter far funzionare quelli scelti.
Se la macchina che si sta installando è destinata a diventare un server si consiglia di rimuovere ogni software relativo all'interfaccia a finestre Xwindows ed ogni applicazione ludica/multimediale.
In genere ogni server o macchina destinata ad avere indirizzo IP pubblico è bene (se non firewallata secondo altri criteri) che abbia attivi solo i servizi indispensabili per il suo funzionamento.
Se il computer è per un uso personale (desktop) e lo spazio su Hard Disk non manca ( > 2Gb ) si ci può sbizzarrire ad installare un po' di tutto, per verificare la funzionalità di programmi diversi.
Durante l'installazione di Linux viene richiesto come partizionare i(l) propri(o) hard disk, in modo da definire cosa formattare e dove installare il sistema operativo, se preservare le eventuali partizioni esistenti (contenenti altri OS) o ripulire completamente gli hard disk. Gli strumenti generalmente disponibili per questa operazione sono: |
|
fdisk |
Tool testuale con la possibilità di operazioni avanzate per il partizionamento |
diskdruid |
Tool grafico fornito da RedHat, semplice ed intuitivo alternativa funzionale a fdisk se non si hanno bisogno di funzionalità avanzate |
Partizioni |
||||||||||||||||||
Con diskdruid e fdisk si ha la possibilità di decidere come partizionare i propri hard disk e decidere quale filesystem adottare per far girare linux.
Notare che la partizione di SWAP non necessita di un mount point. |
||||||||||||||||||
|
|
Il codice esadecimale che identifica la partizione swap in fdisk è 82
|
Le singole partizioni di un hard disk hanno nomi tipo:
- /dev/hda1 (prima partizione del primary master)
- /dev/hdc4 (quarta partizione del secondary master)
In ambienti Unix e quindi anche su Linux esistono differenze fra i vari utenti, definite dai permessi e dall'acceso ai file e comandi che un'utente può lanciare. E' convenzione che i semplici utenti possono scrivere, leggere e modificare file solo all'interno del loro ambiente (home) e lanciare semplici comandi che non influiscono sulla configurazione del sistema. Per poter accedere completamente alle risorse del sistema bisogna accedere al sistema come superuser ovvero impersonificando l'utente root. In fase di installazione di una macchina Linux si consiglia di scegliere una password di root piuttosto complicata (ma ricordabile!) e di creare immediatamente un normale utente con il quale eseguire le proprie funzioni più comuni. In particolare si consiglia, per motivi di sicurezza, di non lanciare mai Xwindows (l'interfaccia a finestre disponibile su Linux) come utente root su una macchina che ha accesso a reti esterne. |
Chi è root? |
||||||
L'utente root è l'amministratore del sistema con tutti i poteri che comporta questo ruolo, quindi è molto importante che l'accesso a root sia limitato solo al reale amministratore di sistema (sysadm). |
||||||
|
|
|
||||||||||||||||||||||||||||||||
|
Per motivi di sicurezza è opportuno eliminare l'accesso di root da remoto (via telnet o ssh). |
|
|||||||||||||||||||||||||||||||
PRATICA |
Installare Linux sul proprio PC - PARAMETRI PER L'AULA |
||||||||||||||||||||||||||||||||
Sulla base delle informazioni ottenute nel modulo 3 e con l'aiuto dell'istruttore procedere alla installazione di Linux sul proprio PC.
Parametri uguali per ogni PC: |
VERIFICA |
Domande sui moduli 2 e 3 |
|||||||
A questo punto del corso il partecipante dovrebbe essere in grado di rispondere alle seguenti domande:
|
||||||||
Linux è un sistema operativo multiutente, dove differenti utenti possono avere accesso al sistema avendo i propri dati, i propri programmi e impostazioni completamente separate da quelle di altri utenti oltre ad avere la possibilità di accedere alla risorse del sistema simultaneamente (sia direttamente tramite console (tastiera) sia da remoto via rete). |
Comandi legati ai processi di login e logout |
|||||||||||||||||||
su |
Esegue una shell come un'altro utente. Se si esegue come utente normale senza parametri viene richiesta la password per aprire una sheel come root. |
||||||||||||||||||
id |
Visualizza lo UserID (UID) e il GroupID (GID) dell'utente corrente. |
||||||||||||||||||
pwd |
Mostra in quale directory ci si trova. |
||||||||||||||||||
lastlog |
Visualizza per ogni utente del sistema la data dell'ultimo log. |
||||||||||||||||||
last |
Visualizza tutti i login recenti sul sistema. |
||||||||||||||||||
shutdown |
Riavvia il sistema (è possibile specificare entro quanti secondi, se riavviare o stoppare). |
||||||||||||||||||
who |
Visualizza gli utenti correntemente loggati sul sistema. |
||||||||||||||||||
ulimit |
Visualizza/modifica i limiti di utilizzo di alcune risorse del sistema da parte dell'utente. |
||||||||||||||||||
|
|
||||||||||||||||||
|
|
|
Esistono altri comandi per spegnere il sistema: |
Cosa è una shell? |
Se il kernel è il nucleo, la shell è il guscio. |
Quali shell? |
||||||||||||||||||||||||
Esistono molteplici shell, ognuna delle quali presenta caratteristiche e peculiarità proprie. |
||||||||||||||||||||||||
sh |
Bourne shell, è disponibile su qualsiasi ambiente UNIX, quindi è la più utilizzata per creare script shell compatibili e cross-platform. |
|||||||||||||||||||||||
csh |
C shell, prende il nome dal linguaggio di programmazione, ovviamente le funzionalità di tale shell derivano in modo diretto dal C. |
|||||||||||||||||||||||
bash |
Bourne Again Shell. Una delle ultime nate, offre le stesse capacità della C shell, con l'aggiunta di alcune funzionalità come l'history dei comandi e la TABcompletion |
|||||||||||||||||||||||
ksh |
Korn shell. Largamente diffusa è compatibile con la sh sulla parte di scripting ed ha tutte le funzionalità di interazione della csh. http://www.kornshell.com/ |
|||||||||||||||||||||||
tcsh |
E' un'evoluzione della csh, con cui mantiene piena compatibilità e introduce feature come command line editing e name completion. |
|||||||||||||||||||||||
rsh |
Rispettivamente Restricted Bourne shell (da non confondere con il "remote shell"), Bourne Shell con Job control, Desktop Korn Shell, Restricted Korn Shell. Sono variazioni e derivazioni delle shell principali. |
|||||||||||||||||||||||
|
|
|
Panoramica bash, funzioni e caratteristiche |
||||||||||
Bash acronimo di Bourne Again SHell, è la shell di gran lunga più utilizzata in ambiente Linux. |
||||||||||
|
|
|||||||||
|
|
|
Con le frecce di direzione (su e giu) è possibile richiamare i comandi lanciati precedentemente. |
||||||
Introduzione |
||||||
Linux oltre ad offrire la possibilità di interagire con il sistema via linea di comando propone un ambiente grafico a finestre che è sicuramente più familiare per chi è abituato a Windows.
|
Gnome VS Kde |
|||||||||||||||
Kde |
(K Desktop Enviroment) Comprende oltre un windows manager un'intero ambiente desktop molto user friendly, inoltre fornisce vari sistemi integrati per la gestione e configurazione del sistema |
||||||||||||||
Gnome |
(GNU Network Object Model Enviroment) è scritto e sviluppato dal Gnome Developer's project. A differenza di KDE Gnome è solo l'ambiente desktop per cui ha bisogno di un windows manager come FVWM (Fantastic Virtual Windows Manager). Anche Gnome offre dei propri sistemi integrati per la gestione della macchina. La sua architettura è completamente basata su CORBA. |
||||||||||||||
Ogni distribuzione solitamente prevede la possibilità di installare ed utilizzare sia Gnome che KDE, è poi possibile modificarli e aggiornarli secondo le proprie necessità. |
|||||||||||||||
|
|
||||||||||||||
|
|
|
Vi siete dimenticati di collegare il Mouse?? |
Introduzione a telnet |
Telnet è un semplice programma di terminale oltre ad essere il nome del protocollo che utilizza questo programma. |
Uso |
|||||||||||
telnet <ip o nome host> <port> |
Comando per connettersi da remoto attravero telnet |
||||||||||
Scrivendo semplicemente telnet senza specificare l'host remoto, si entra in modalità comandi, da cui è possibile aprire o chiudere connessioni o effettuare altre operazioni (digitare help per l'elenco dei comandi in ambiente telnet). |
|||||||||||
ssh -l <nome_utente> <ip o nome host> |
Comando per connettersi da remoto attravero ssh |
||||||||||
|
|
||||||||||
|
|
|
|
La porta a cui risponde un telnet server è la 23 e viene data per sottointesa. |
Comandi e risorse locali |
|
Il successo di linux è da attribuirsi anche alla grande quantità di documentazione, How-to e risorse on-line che rendono relativamente semplice ricercare e trovare le soluzioni di molti problemi. |
|
man <comando> |
E' la fonte più rapida e semplice per apprendere delle informazioni riguardanti comandi, file di configurazioni, funzioni di sistema e altro. |
info <command> |
Info è un lettore di ipertesti gnu. Molti programmi hanno la loro documentazione anche in questo formato. |
whatis <keyword> |
Cerca la keyword specificata all'interno del database whatis (contiene una breve descrizione di tutti i comandi nel sistema). Equivalente a man -f |
apropos <stringa> |
Come whatis, ma cerca stringhe e non parole complete, di conseguenza può dare risultati più verbosi. Equivalente a man -k |
/usr/share/doc |
Le directory dove risiedono le documentazioni per programmi specifici in diversi formati (txt,html,pdf etc..) |
Risorse online |
|
La rete pullula di siti di informazione, gruppi di discussione, mailing list, IRC chat rooms sul mondo Linux. |
|
Linux Journal |
La prima e la più autorevole rivista su Linux. Disponibile anche in rete. |
www.linux.org |
Ovviamente il sito di partenza per reperire tutte le informazioni riguardanti a Linux |
Linux Document Project (LPD) |
E' la collezione più vasta di documentazione su Linux. |
linux.html.it |
Docs e istruzioni in italiano. |
I gruppi di discussione |
E' la fonte che senza dubbio fornisce più supporto ed inoltre ha il vantaggio di interagire direttamente con altri utenti. |
www.google.com |
Sempre lui (in fondo è pur sempre basato su un cluster di Linux box). Se si incontra un problema o un errore di qualche tipo, provare a digitarlo così come è scritto: probabilmente si vedranno link a forum online, siti e luoghi dove il problema è stato già incontrato, discusso e risolto. |
Risorse offline |
|||||||||||
Libri su Linux o argomenti attinenti sono ormai moltissimi, sia in italiano che in inglese. |
|||||||||||
http://www.linuxjournal.com |
La prima e la più autorevole rivista su Linux. Disponibile anche in rete. |
||||||||||
http://www.oltrelinux.com |
Linux & C. La prima rivista in italiano su Linux. Indipendente e ben fatta. |
||||||||||
http://www.linuxfocus.org/Italiano/ |
La versione italiana di LinuxFocus Magazine |
||||||||||
http://www.linuxitaly.net/ |
La versione italiana di Linux Journal |
||||||||||
http://linux.cassino.edu/lgei/ |
La versione italiana di Linux Gazette |
||||||||||
|
|
||||||||||
|
|
|
|
|
||||||||||
|
Innumerevoli comandi hanno la possibilità di richiamare un piccolo help integrato nel comando stesso, semplicemente scrivendo il comando seguito da --help o --h |
|
|||||||||
PRATICA |
Usare la shell... sul computer del vicino |
||||||||||
Sulla base delle informazioni ottenute nel modulo 4 si invitano i partecipanti ad effettuare le seguenti operazioni:
|
VERIFICA |
Domande sul modulo 4 |
|||||||
A questo punto del corso il partecipante dovrebbe essere in grado di rispondere alle seguenti domande:
|
Un sistema Linux, come ogni Unix, ha una directory principale, chiamata root ed indicata con / sotto la quale si trovano TUTTE le altre directory e TUTTI gli altri filesystem eventualmente montati sul sistema (floppy, cdrom, condivisione di rete ecc.). Il principio è radicalmente diverso da quello presente nel mondo Windows, dove ogni device o risorsa ha un suo nome o lettera identificativa al cui interno si trovano le directory del relativo filesystem.
Directory e definizioni |
|
pwd |
Visualizza directory (dir) corrente |
/ |
Indica la root, la dir principale alla base di tutto il filesystem |
/etc/ |
La sottodirectory (subdir) etc rispetto alla root |
../etc/ |
La subdir etc allo stesso livello della dir corrente. |
etc/ |
La subdir etc rispetto alla dir corrente |
. |
La directory corrente |
.. |
La directory parent |
~ |
La home directory dell'utente corrente |
Comandi di copia/modifica file e directory |
|||||||||||||||||
cp [opzioni] sorgente destinazione |
Copia di file o directory |
||||||||||||||||
mv [opzioni] sorgente destinazione |
Sposta (rinomina) file o directory |
||||||||||||||||
rm [opzioni] file |
Rimuovi file o directory |
||||||||||||||||
ls [opzioni] [path] |
Elenca contenuto di una directory o file |
||||||||||||||||
tree [opzioni] directory |
Elenca contenuto di una directory con visualizzazione ad albero |
||||||||||||||||
cd directory |
Cambia directory corrente |
||||||||||||||||
mkdir [opzioni] directory |
Crea una directory |
||||||||||||||||
rmdir [opzioni] directory |
Elimina una directory |
||||||||||||||||
|
|
Eseguire il comando alias per vedere gli alias impostati nel proprio ambiente bash. |
Definizioni |
Le informazioni riguardanti un oggetto (file o directory) di un filesystem cono contenute in un inode, che viene identificato da un numero progressivo e descrive le caratteristiche base di un oggetto: permessi, data di modifica, tipo, posizione ecc. |
Comandi sui link |
|||||||||||
ln [opzioni] nome_sorgente [nome_destinazione] |
Nella prima forma si crea un link da nome_sorgente a nome_destinazione dove nome_destinazione può essere omesso per fare un link alla directory corrente. |
||||||||||
ln [-s] nomefile [nomelink] |
Crea un link (simbolico con -s) a nomefile che si chiama nomelink (se omesso viene mantenuto nomefile) |
||||||||||
|
|
||||||||||
|
|
|
|
Per trovare a quale file corrisponde un hard link eseguire: ls -i per visualizzare l'inode del link e find / -inum #inode per trovare tutti i file con l'inode specificato. |
Esistono svariati comandi Unix per visualizzare il contenuto di file, con diverse caratteristiche e modalità.
Tutti questi comandi hanno svariate opzioni e possibilità di eseguire operazioni anche complesse.
In genere si suggerisce di fare pratica con le funzionalità di base ed eventualmente usare le opzioni più evolute o rare in script shell o casi particolari.
Comandi comuni |
|
cat [opzioni] [file] |
Visualizza il contenuto di un file |
less [file] |
Visualizza il contenuto di un file, pagina per pagina. |
more |
Come less, ma con meno funzioni. |
tail [opzioni] file |
Visualizza l'ultima parte di un file |
head [opzioni] file |
Visualizza la prima parte di un file |
file [opzioni] file |
Visualizza il tipo di un file |
grep [opzioni] PATTERN [file] |
Elenca righe di un file che contengono il PATTERN specificato |
wc [opzioni] [file] |
Visualizza numero di byte, parole e righe in un file |
wc [opzioni] [file] |
Visualizza numero di byte, parole e righe in un file |
||||||||||||||||
|
|
|||||||||
Definizioni |
|||||||||
Per file system si intende l'astrazione (metodo e protocolli) con cui si organizzano i file su un supporto fisico di memorizzazione ad accesso casuale (floppy, cdrom, memoria, hard disk..) |
Directory |
|||||||||
/ |
Radice (root) |
||||||||
swap |
Partizione gestita a se tramite swapon , utilizzata come memoria virtuale. |
||||||||
/root |
Home dell'utente root |
||||||||
/boot |
Contiene tutte le immagini del kernel e file indispensabili al bootstrap |
||||||||
/etc |
Contiene i file di configurazione del sistema e dei programmi installati |
||||||||
/home |
Contiene le home degli utenti tranne quella di root |
||||||||
/usr |
Contiene binari, documentazione, librerie e sorgenti della maggior parte dei programmi (e i sorgenti del kernel) |
||||||||
/var |
Conitiene tutti file che contengono informazioni dinamiche come log, pid file, directory di spool. |
||||||||
/proc |
File system virtuale. Contiene, come se fossero file e directory, dati dinamici sul sistema e sui processi |
||||||||
/dev |
Contiene i file per la gestione dei dispositivi sia a blocchi (hdd) che a carattere (tty) oltre a file speciali (/dev/null) |
||||||||
/sbin |
Contiene comandi e programmi riservati a root ( altri comandi sono in /usr/sbin/ ) |
||||||||
/bin |
Contiene comandi e programmi base per tutti gli utenti (altri comandi sono in /usr/bin/ ) |
||||||||
|
|
Non fare confusione fra la root directory ( / ) e l'utente root (l'amministratore di sistema), che ha la sua home directory in /root |
|
Comandi di gestione del File System |
|
Prima di poter utilizzare un filesystem (es: CDROM, floppy, tape, condivisione di rete windows, directory nfs, partizione fat32 di un hard disk... ) questo deve essere formattato e montato in una subdir della root ( / ). |
|
mount -t [tipo fs] [opzioni] device dir |
Monta un dispositivo a blocchi su un file system |
umount [ opzioni ] device |
Smonta un dispositivo (necessario) |
df [opzioni][file] |
Verifica lo spazio libero su disco |
du [opzioni][file] |
Visualizza lo spazio occupato da file e directory |
fsck [opzioni] dispositivo |
Verifica l'integrità e ripara il Filesystem |
mkfs [opzioni] dispositivo |
Crea un Filesystem (formatta) |
fdformat device |
Formatta a basso livello un floppy |
Il file /etc/fstab |
||||||||||||||||
Nel file /etc/fstab vengono configurate le informazioni sui vari file system (da montare al boot o no) preimpostati sul sistema, vengono definiti i mount point, il tipo di file system ed altre informazioni. |
||||||||||||||||
|
|
Eseguire il comando mount per vedere quali partizioni sono montate. |
definizione di attributo e permesso |
Linux è un sistema multiutente che offre la possibilità di associare permessi di azioni (lettura, scrittura , esecuzione) a singoli file e/o directory. Quando vengono applicati questi permessi ad un file o ad una directory, vengono applicati su tre livelli distinti: |
Comandi di assegnazione permessi |
|||||||||||||||
chown [-R][utente] file |
Assegna un nuovo utente proprietario |
||||||||||||||
chgrp [-R][gruppo] file |
Assegna un nuovo gruppo proprietario |
||||||||||||||
chmod [-R] [modo] file |
Modifica i permessi sul file. |
||||||||||||||
|
|
||||||||||||||
|
|
|
|
La sicurezza di un sistema Unix si fonda su un corretto uso dei permessi sui file. |
Su Unix esistono molteplici comandi per la ricerca e il contronto di file. Possono, come sempre, essere utilizzati direttamente o in script.
Comandi di ricerca |
|
find [path][expression] |
Ricerca di file o directory in tutto il file system in base a un certo numero di criteri, come il nome, la data di creazione e la dimensione. |
updatedb |
Crea/Aggiorna un database ( /var/lib/slocate/slocate.db ) contenente tutti i path di tutti i file nel file system |
locate filename |
Ricerca file o directory tramite il db costruito da Updatedb |
whereis [opzioni] filename |
Visualizza i path di binari,sorgenti e manuali per un comando |
sort [opzioni] [file] |
Ordina con un certo criterio le righe di un file ASCII |
strings [opzioni] filename |
Cerca pattern di testo nei file binari |
Comandi di confronto file |
|||||||||||||||
|
|||||||||||||||
diff nomefile1 nomefile2 |
La funzione diff permette di fare un confronto fra il contenuto di due file di testo. Utilizzato per creare la patch dei sorgenti. |
||||||||||||||
md5sum nomefile |
Funzione per verificare l'integrità e confronto file di qualsiasi natura |
||||||||||||||
|
|
||||||||||||||
|
|
|
|
|
|
|||||||||||||||
|
Il path di default del comando find è la directory corrente |
|
||||||||||||||
|
|
|
||||||||||||||
PRATICA |
Trattamento di file |
|||||||||||||||
Si chiede al partecipante di effettuare una serie di operazioni che richiedono l'uso di alcuni comandi trattati nel modulo 5.
|
VERIFICA |
Domande sul modulo 5 |
||||||||||
A questo punto del corso il partecipante dovrebbe essere in grado di rispondere alle seguenti domande:
|
|||||||||||
Introduzione |
|||||||||||
Una delle caratteristiche della filosofia di Unix è che l'impostazione del sistema non vuole prevedere tutte le necessità dell'utente, ma tenta di rendere semplice per ciascuno modificarsi l'ambiente a seconda delle proprie necessità. Per questo vengono usati principalmente dei file di configurazione, noti anche come "file init'', "file rc'' (per "run control'', controllo dell'esecuzione) o anche "file punto'', perché il loro nome di solito inizia con ".'' . |
|||||||||||
|
/etc/bashrc |
contiene gli alias e le funzioni valide per l'intero sistema; |
|||||||||
|
/etc/profile |
contiene le variabili d'ambiente per l'intero sistema e i programmi di avvio; |
|||||||||
|
$HOME/.bashrc |
contiene gli alias e le funzioni dell'utente; |
|||||||||
|
$HOME/.bash_profile |
contiene le variabili d'ambiente e i programmi di avvio dell'utente; |
|||||||||
|
$HOME/.inputrc |
contiene definizioni di tasti e altre funzioni. |
Per personalizzare il proprio ambiente bash è necessario modificare il file $HOME/.bashrc. E' possibile creare alias per comandi che vengono usati spesso (alias "alias"= "comando") o modificare il prompt utilizzando il linguaggio bash. |
||||||||||||
La shell Bash fornisce un sistema di gestione della tastiera molto complesso, attraverso un gran numero di funzioni. |
||||||||||||
Ogni comando lanciato viene memorizzato in una sequenza storica. Questa caratteristica serve a riutilizzare i comandi senza dover ridigitarli ogni volta scorrendo con i tasti direzione (le frecce per muoversi in alto, basso) oppure digitanto il comando history (vengono visualizzati tutti i comandi). |
||||||||||||
|
|
|
|||
|
Se non ci si ricorda esattamente il nome di un comando, allora inserire le prime lettere e sfruttare il tasto TAB per aiutare la ricerca. |
|
||
Introduzione |
||||
Una delle caratteristiche della filosofia di Unix è che l'impostazione del sistema non vuole prevedere tutte le necessità dell'utente, ma tenta di rendere semplice per ciascuno modificarsi l'ambiente a seconda delle proprie necessità. Per questo vengono usati principalmente dei file di configurazione, noti anche come "file init'', "file rc'' (per "run control'', controllo dell'esecuzione) o anche "file punto'', perché il loro nome di solito inizia con ".'' . |
||||
|
/etc/bashrc |
contiene gli alias e le funzioni valide per l'intero sistema; |
||
|
/etc/profile |
contiene le variabili d'ambiente per l'intero sistema e i programmi di avvio; |
||
|
$HOME/.bashrc |
contiene gli alias e le funzioni dell'utente; |
||
|
$HOME/.bash_profile |
contiene le variabili d'ambiente e i programmi di avvio dell'utente; |
||
|
$HOME/.inputrc |
contiene definizioni di tasti e altre funzioni. |
Per personalizzare il proprio ambiente bash è necessario modificare il file $HOME/.bashrc. E' possibile creare alias per comandi che vengono usati spesso (alias "alias"= "comando") o modificare il prompt utilizzando il linguaggio bash. |
||||||||||||
La shell Bash fornisce un sistema di gestione della tastiera molto complesso, attraverso un gran numero di funzioni. |
||||||||||||
Ogni comando lanciato viene memorizzato in una sequenza storica. Questa caratteristica serve a riutilizzare i comandi senza dover ridigitarli ogni volta scorrendo con i tasti direzione (le frecce per muoversi in alto, basso) oppure digitanto il comando history (vengono visualizzati tutti i comandi). |
||||||||||||
|
Se non ci si ricorda esattamente il nome di un comando, allora inserire le prime lettere e sfruttare il tasto TAB per aiutare la ricerca. |
File descriptors e operatori |
La shell gestisce la comunicazione con ogni programma lanciato tramite 3 file descrittori: |
> |
redirige lo standard output di un comando su un file o dispositivo |
|||||||||||||||||||
>> |
redirige l'output di un comando su un file o dispositivo ma se il file esiste già i dati vengono aggiunti alla fine del file. Se il file non esiste viene creato |
|||||||||||||||||||
< |
redirige lo standard input da un file o dispositivo |
|||||||||||||||||||
2> |
redirige lo standard error di un comando su un file o dispositivo |
|||||||||||||||||||
| |
operatore pipe, concatena standard output e standard input di due programmi |
|||||||||||||||||||
|
|
|||||||||||||||||||
|
|
|
||||||||||||||||||
|
Le Regular Expressions (RegExp) sono un sistema di regole rivolte alla creazione di pattern di ricerca utili a trovare occorenze all'interno di un testo e a modificarle con altro testo. Da oltre vent'anni vengono usate in parecchi tool ed utility Unix come grep, sed oppure awk, spesso con piccole variazioni nella sintassi. |
|
||||||||||||||||||
Metacarattere |
Definizione |
|||||||||||||||||||
. |
identifica un singolo carattere |
|||||||||||||||||||
^ |
identifica l'inizio riga |
|||||||||||||||||||
\ |
neutralizza il significato del metacarattere seguente |
|||||||||||||||||||
$ |
identifica la fine della stringa |
|||||||||||||||||||
[] |
identifica qualsiasi carattere indicato tra parentesi |
|||||||||||||||||||
[^] |
identifica tutti i caratteri non specificati nell'insieme |
|||||||||||||||||||
[0-9] |
identifica ogni carattere compreso nell'intervallo (numeri o lettere) |
|||||||||||||||||||
Modificatori |
||||||||||||||||||||
? |
zero o una volta |
|||||||||||||||||||
+ |
una o più volte |
|||||||||||||||||||
* |
zero o più volte |
|||||||||||||||||||
| |
uno o l'altro elemento prima e dopo il segno | |
|
|
Una buona conoscenze delle RE velocizza l'operazione di ricerca all'interno di file molto lunghi. |
VI |
L'editor VI (visual editor) è il più diffuso nell'ambiente UNIX e Linux. |
Comandi principali |
|||||||||||
Salvare e uscire |
|||||||||||
ZZ |
salvare e uscire |
||||||||||
:w |
salvare |
||||||||||
:w <file> |
salvare in altro file con il nome desiderato |
||||||||||
:wq |
salvare e uscire |
||||||||||
:q |
se non sono state effettuate modifche usce senza salvare |
||||||||||
:q! |
uscita incondizionata |
||||||||||
Comandi di copia e incolla |
|||||||||||
yy |
copia la riga corrente |
||||||||||
y2 <giu> |
copia 2 righe sotto la posizione in cui si trova il cursore |
||||||||||
p |
incolla il testo nel punto dove si trova il cursore |
||||||||||
Cancellare righe o caratteri |
|||||||||||
x |
cancella il carattere in cui si trova il cursore |
||||||||||
X |
cancella il carattere alla sinistra del cursore |
||||||||||
D |
cancella tutto quello che si trova alla sinistra del cursore fino alla fine della riga |
||||||||||
dd |
cancella la riga in cui si trova il cursore |
||||||||||
3dd |
cancella 3 righe partendo dalla quella in cui si trova il cursore |
||||||||||
dG |
cancella dalla posizione in cui si trova il cursore fino alla fine del file |
||||||||||
d1G |
cancella dalla posizione in cui si trova il cursore fino all'inizio del file |
||||||||||
Spostarsi nel file |
|||||||||||
^ |
inizio della riga corrente |
||||||||||
$ |
fine della riga corrente |
||||||||||
G |
fine del file |
||||||||||
1G |
inizio del file |
||||||||||
Ricerca e sostituzione del testo |
|||||||||||
/<testo> |
cerca il testo dalla posizione corrente verso il basso |
||||||||||
?<testo> |
cerca il testo dalla posizione corrente verso l'alto |
||||||||||
u |
annulla l'ultima modifica effettuata |
||||||||||
U |
annulla l'ultimo annullamento |
||||||||||
. |
ripete l'ultimo comando |
||||||||||
|
|
||||||||||
|
|
|
|
P nella modalità comando inserisce il contenuto del buffer prima del cursore |
Introduzione |
Uno script shell è una serie di comandi inseriti in un file mediante un qualsiasi programma di testo. Linux interpreta ed esegue i comandi dello script shell uno dopo l'altro. Sfruttando questa caratteristica è percui possibile scrivere programmi ed eseguirli come un normale comando Linux. |
Variabili |
|
La shell permette di definire mediante lo strumento delle variabili di ambiente alcuni parametri che influenzano il comportamento dei vari programmi. I valori assegnati a queste variabili sono delle stringhe. Le variabili di ambiente più importanti sono: |
|
HOME |
il valore di questa variabile è quella della home-directory dell'utente |
PATH |
lista di nome di directories dove la shell, dopo l'inserimento di un comando, cerca il programma da eseguire |
DISPLAY |
definisce lo schermo sul quale un programma X-Window aprirà le proprie finestre |
TERM |
definisce le sequenze di comandi che saranno usate per comandare il terminale che state usando |
|
|
# |
memorizza il numero di argomenti della linea di comando, che sono stati passati allo shell script |
? |
memorizza il valore numerico di uscita dell'ultimo comando che è stato eseguito |
0 |
memorizza il nome dello shell-script, che è stato introdotto |
* |
memorizza tutti gli argomenti che sono stati introdotti sulla linea di comando |
! |
contiene il numero dell'ultimo processo che è stato mandato in background con la & |
- |
contiene i flag con cui è stata eseguita la shell |
Programma ESEMPIO: |
|
Va attribuito a ogni script shell il permesso di esecuzione: chmod +x script
|
PRATICA |
Customizzare la propria bash |
|||||||
Sulla base delle informazioni fin qui avute si invitano i partecipanti a personalizzare il proprio ambiente bash:
|
VERIFICA |
Domande sul modulo 6 |
|||||
A questo punto del corso il partecipante dovrebbe essere in grado di rispondere alle seguenti domande:
|
Il boot su sistemi Intel-like |
Il processo di boot di una macchina Linux su sistemi x86 Intel compatibili comporta diverse fasi. |
IL ROM BIOS |
Ogni sistema Intel ha sulla motherboard un BIOS su ROM con cui gestire l'hardware del sistema. |
I LINUX LOADER |
Esistono diversi loader che eseguono il bootstrab del sistema operativo per Linux: |
IL KERNEL |
Il kernel, invocato dal loader, viene caricato in memoria ed inizializza i vari device driver, visualizzando vari messaggi utili per capire e conoscere il proprio sistema. |
INIT E I SUOI FIGLI |
L'ultima operazione eseguita dal kernel alla fine del suo caricamento è il lancio del processo init, il padre di tutti i processi. |
Tutte le distribuzioni Linux recenti sono installabili direttamente tramite CD-ROM, per cui su una macchina da installare ex-novo è questo il device da impostare come principale. |
LILO |
||||||||||||||||||||||||||||||||||||||
LILO è il Linux loader più diffuso, permette il boot sia di Linux che di altri sistemi operativi. |
||||||||||||||||||||||||||||||||||||||
Un esempio di /etc/lilo.conf |
||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||
Opzioni aggiuntive di LILO |
||||||||||||||||||||||||||||||||||||||
LILO prevede molte altre opzioni definibili in /etc/lilo.conf. La maggior parte riguarda parametri riguardanti l'hardware specifico della macchina e servono per comunicare al kernel quale hardware è presente quando non lo riconosce.
|
||||||||||||||||||||||||||||||||||||||
GRUB |
||||||||||||||||||||||||||||||||||||||
GRUB è un boot loader multipiattaforma estremamente flessibile e potente.
|
||||||||||||||||||||||||||||||||||||||
|
Se si è installato LILO sul MBR di un computer multiboot con Linux e Windows e non si riesce più accedere a Windows è possibile cancellare dal MBR il LILO dando il comando DOS: |
No prompt? |
|
I messaggi del kernel |
|
Quando il kernel entra in azione e inizia a caricarsi procede con il riconoscimento e l'inizializzazione dell'hardware presente. |
|
Un dmesg d'esempio |
|
Segue un esempio di un dmesg. Alcune parti variano a seconda dell'hardware presente sul sistema, altre sono sostanzialmente uguali su tutti i Linux. Quello che segue è il dmesg di un sistema piuttosto semplice, i kernel modulari di una distribuzione standard solitamente presentano ulteriori informazioni relative a driver per hardware o funzionalità qui non presenti. |
|
dmesg > log_boot |
|
|
Redireziona l'output del comando dmesg nel file log_boot per una maggior facilità di letture e debugging di un'eventuale problema |
ls -l /var/log/ |
|
|
Lista dei log |
cat /var/log/messages |
|
|
Visualizza il contenuto del log messages |
lspci |
|
|
Visualizza l'elenco di tutte le periferiche e i BUS pci |
Delle meraviglie del proc file system si è già accennato nei primi capitoli. |
INIT e /etc/inittab |
Init è il padre di tutti i processi, il suo ruolo principale consiste nel gestire il lancio di tutti i programmi necessari per rendere il sistema attivo creare i processi a partire da uno script in /etc/inittab. |
Runlevels |
|
Nel mondo Unix ci sono 2 principali approcci al processo di startup del sistema: quello usato da Unix System V e quello, meno complesso ma meno flessibile, usato dai BSD Unix. |
|
Runlevel 0 : /etc/rc.d/rc0.d |
Questo runlevel avvia la sequenza di arresto del sistema (shutdown) |
Runlevel 1: /etc/rc.d/rc1.d |
Questo runlevel rappresenta la modalità singolo utente, nessun altro utente può collegarsi, il servizio di rete è disabilitato. |
Runlevel 2: /etc/rc.d/rc2.d |
Rappresenta lo stato multiutente, il servizio rete è attivo ma è disabilitato il file sharing. |
Runlevel 3: /etc/rc.d/rc3.d |
In genere è quello predefinito quando si opera in modalità testuale, tutti i servizi sono attivi. |
Runlevel 4: /etc/rc.d/rc4.d |
Inutilizzato. Può essere dedicato ad usi personali |
Runlevel 5: /etc/rc.d/rc5.d |
E' il runlevel predefinito quando si vuole avviare Linux in modalità grafica |
Runlevel 6: /etc/rc.d/rc6.d |
Il runlevel 6 è quello di reboot. |
Lo script /etc/rc.d/rc gestisce quali processi far partire a seconda del runlevel, andando ad analizzare le singole directory /etc/rc.d/rc#.d. In queste directory esistono una serie di symlink con nomi del tipo S12syslog o K65identd che puntano a degli script con nomi tipo /etc/rc.d/init.d/syslog o /etc/rc.d/init.d/identd.
/etc/rc.d/rc a seconda della directory corrispondente al runlevel da caricare fa partire tutti gli script che iniziano con S e fa chiudere tutti quelli che iniziano con K, eseguendoli nell'ordine indicato dal numero presente nei nomi dei file.
Gli script che di fatto permettono di gestire l'avvio o lo stop di un servizio sono quindi nella directory /etc/rc.d/init.d/ e possono essere utilizzati direttamente dall'utente per gestire i singoli processi.
Per esempio: /etc/rc.d/init.d/httpd start fa partire il server Web e /etc/rc.d/init.d/stop lo fa stoppare.
Se abbiamo il file (link a ../init/httpd ) /etc/rc.d/rc3.d/S85httpd, quindi, avremo un server web avviato quando la macchina è al run-level3 (runlevel di default per un server, che non ha bisogno di Xwindows).
Se vogliamo evitare che venga avviato un server web, bastera rinominare il file, sostituendo la K alla S:
mv /etc/rc.d/rc3.d/S85httpd /etc/rc.d/rc3.d/K85httpd
Nel fare queste operazioni va sempre considerato il numero dopo la prima lettera, che determina l'ordine di esecuzione degli script.
Gestione dei servizi al boot |
||||||||||||||||||||
La soluzione sopra esposta per gestire quali servizi deve offrire il nostro server è effettivamente poco immediata (ma, come si è visto, piuttosto flessibile). Esistono tool che permettono di gestire più facilmente quali servizi avviare al boot. |
||||||||||||||||||||
|
|
|
|||||||||
|
Per fare il shutdown del sistema digitare init 0 |
|
||||||||
PRATICA |
|
|||||||||
Sulla base delle informazioni ottenute nel modulo 7 si invitano i partecipanti a loggarsi sul proprio PC ed effettuare le seguenti operazioni:
|
VERIFICA |
Domande sul modulo 7 |
||||||
A questo punto del corso il partecipante dovrebbe essere in grado di rispondere alle seguenti domande:
|
|||||||
Le attività di un sistemista Linux |
|||||||
Le attività sistemistiche su un server Linux non sono sostanzialmente diverse da quelle necessarie per altri sistemi Unix o Windows e ovviamente variano a seconda delle funzioni della macchina e del contesto lavorativo. |
|||||||
Importanza del backup |
|||||||
|
|||||||
Il backup del proprio sistema è fondamentale. |
Comandi di archiviazione file |
|
|
|
tar [opzioni] filename1 filename2 filename[n] |
Questo comando viene ampiamente utilizzato per creare (estrarre) archivi .tar |
gzip [num] [opzioni] filename |
Comando per comprimere file ed archivi in formato gz che, fra le altre cose permette di scegliere il grado di compressione [num]. |
gunzip [opzioni] filename.gz |
Comando inverso di gzip |
bzip2 [opzioni] filename |
Comando per comprimere file ed archivi in formato bz2, ha il vantaggio di avere un rapporto di compressione maggiore di gz |
bunzip2 [opzioni] filename.bz2 |
Comando inverso di gzip |
zip [opzioni] filename |
Comprime file e archivi, è basato sull'algoritmo standard per PC pkzip, raramente si utilizza questo formato in ambiente linux e unix |
unzip [opzioni] filename.zip |
Comando inverso di unzip |
rsync: una soluzione per il backup |
||||||||||||||||||||||||
|
||||||||||||||||||||||||
Fra i vari strumenti utilizzabili per il backup, ci sentiamo si consigliare il comando rsync, che permette la copia differenziale di file via rete, ottimizzando i tempi di backup e ripristino dei dati.
La prima volta che si esegue questo comando tutti i file presenti nella /home di 10.0.0.10 vengono copiati, le volte successive vengono copiati solo quelli modificati dall'ultimo backup.
Come si può immaginare rsync è uno strumento estremamente potente, che permette diverse operazioni di copia di file fra due host. |
||||||||||||||||||||||||
|
|
|
||||||||||||||||||
|
E' possibile creare direttamente un archivio tar comprimendolo in formato gz tramite la seguente riga di comando tar -zcvf |
|
|||||||||||||||||
|
gestione utenti |
|
|||||||||||||||||
|
|
|
|||||||||||||||||
|
La gestione degli utenti comprende le operazioni di aggiunta, modifica, cambio password di tutti gli utenti che possono accedere in shell alla macchina. |
|
|||||||||||||||||
|
Comandi |
|
|||||||||||||||||
useradd [opzioni] nomeutente |
Aggiunge un utente, è possibile tramite le varie opzioni disponibili modificare tutte le impostazioni di default di inserimento utenti. |
||||||||||||||||||
userdel [opzioni] nomeutente |
Elimina un'utente, da sottolineare che la sua home con il suo contenuto non viene cancellata. |
||||||||||||||||||
groupadd [opzioni] nomegruppo |
Aggiunge un gruppo. |
||||||||||||||||||
passwd [nomeutente] |
Modifica la password di un'utente |
||||||||||||||||||
chsh [opzioni] |
Cambia il tipo si shell disponibile al login di un'utente |
||||||||||||||||||
File di configurazione |
|||||||||||||||||||
/etc/passwd |
File che contiene le informazioni dell'utente, uno per riga, con questo formato: |
||||||||||||||||||
/etc/group |
File contenente le informazioni sui gruppi e le loro relazioni. Formato: NomeGruppo : commento : GroupID: Utenti,Del,Gruppo |
||||||||||||||||||
/etc/shadow |
Se il sistema gestisce le shadow questo è il file che contiene le password criptate e ulteriori dati. Nei campi, separati da :, di questo file sono inserite informazioni sulla scadenza della password, l'ultima volta in cui è stata modifcata, giorni di avviso prima della scadenza della password... |
||||||||||||||||||
|
|
||||||||||||||||||
|
|
|
UID e GID uguali a zero appartengono a root. Da ricordare che i primi GID sono assegnati a gruppi speciali. |
log, dove e perchè |
Molto spesso ci si ritrova a diagnosticare problemi, capire perchè una applicazione non parte o eseguire compiti di reverse engineering sul funzionamento di parti del sistema. |
Syslog |
In tutti i sistemi Unix il demone syslogd si occupa di gestire i diversi log di sistema tramite il file di configurazione /etc/syslog.conf. |
|
Configurazione base di syslog.conf |
|||||||||||
Qualunque messaggio eccetto mail |
*.info;mail.none /var/log/messages |
||||||||||
Messaggi riguardanti login o a particolari servizi |
authpriv.* /var/log/secure |
||||||||||
Qualunque messaggio riguardante le mail |
mail.* /var/log/mailog |
||||||||||
Log del crontab |
cron.* /var/log/cron |
||||||||||
|
|
||||||||||
|
|
|
Per loggare su un syslog server Linux i log di un Cisco si deve: |
La gestione e l'analisi dei log è un'attività sistemistica che richiede le sue attenzioni.
Su macchine ad alto traffico, o sotto attacco DOS o con particolari problemi ricorrenti, le dimensioni dei log possono crescere a dismisura in pochissimo tempo, fino a saturare il file system.
Per questo motivo è sempre consigliabile montare la directory /var in una partizione indipendente, che, anche se riempita, non blocca il funzionamento del sistema.
E' inoltre importante poterli gestire, ruotandoli ad intervalli fissi e compattando i log vecchi.
Può essere utile anche monitorare i log con opportune applicazioni che possano avvertire il sysadm quando si verificano determinate condizioni.
logrotate |
Logrotate è un'applicazione che semplifica l'amministrazione dei log, permette di comprimere, rimuovere ed inviare il log via mail oltre a eseguire una rotazione di file con vari criteri. |
Log analysys tools |
Esistono diversi strumenti per analizzare i log e verificare se contengono informazioni critiche o se sono stati in qualche modo modificati (traccia di una potenziale intrusione esterna). |
|
|
|
||||||||||
|
Il file wtmp non è visibile e modificabile con i comuni comandi shell |
|
|||||||||
PRATICA |
|
||||||||||
Sulla base delle informazioni ottenute nel modulo 8 si invitano i partecipanti a loggarsi sul proprio PC ed effettuare le seguenti operazioni:
|
VERIFICA |
Domande sul modulo 8 |
||||||
A questo punto del corso il partecipante dovrebbe essere in grado di rispondere alle seguenti domande:
|
|||||||
Definizioni |
|||||||
RPM, Red Hat Package Manager. Utility per installare, disinstallare, aggiornare, interrogare, verificare e costruire pacchetti software. |
Comandi |
|
rpm -i [opzioni] [pacchetti] |
Installazione pacchetti RPM |
rpm -U [opzioni] [pacchetti] |
Aggiornamento di pacchetti RPM |
rpm -e [opzioni] [pacchetti] |
Disinstallazione di pacchetti RPM |
rpm -q [opzioni] [pacchetti] |
Interrogazione di pacchetti RPM |
rpm -V [pacchetto] |
Verifica pacchetto RPM |
RPM Standard |
||||||||||||||||||||||||
Esiste una convenzione standard che identifica il nome di un package RPM, si consideri l'esempio:
|
||||||||||||||||||||||||
|
Attenzione molte volte per poter instalare, disinstallare o upgradare un pacchetto bisogna soddisfare molte dipendenze, per forzare l'azione evitando le dipendenze del pacchetto utilizzare l'opzione --forcedep |
|
Quando si forniscono opzioni al comando RPM, qualunque sia l'azione, tutte le opzioni identificate da una lettera sola possono essere inglobate in un unico blocco come nell'esempio sottostante |
|
Attenzione quando si vuole disinstallare un pacchetto bisogna, affiancato dal flag -e, utilizzare il nome del pacchetto e non il nome del file che è stato utilizzato per installare il pacchetto stesso. |
Che cos'è un tar.gz? |
Un file tar.gz è uno dei tanti modi pratici per archiviare dei sorgenti. |
L'importanza dei sorgenti |
Poter installare software e compilare lo stesso kernel tramite i sorgenti ha dei grandi vantaggi che l'installazione diretta di binari non offre. |
Comandi Principali per la compilazione dei sorgenti |
|
Poichè non esiste una vera e propria procedura standard per la compilazione dei sorgenti è importantissimo leggere la documentazione distribuita insieme ai sorgenti, comunque di seguito vengono riportati i comandi comunemente utilizzati |
|
configure [ opzioni ] |
Verifica le dipendenze e crea il Makefile |
make [ opzioni ] |
Attraverso il Makefile creato precedentemente compila i sorgenti e installa |
Tipicamente la procedura di installazione di un tar.gz si riassume in questi passi (leggere sempre i file INSTALL o README per le effettive istruzioni di installazione) :
tar -zxvf package.tar.gz
cd package/
./configure
make
make install
|
|
|
|||||||
|
In alcuni casi per poter lanciare il make install bisogna essere root |
|
||||||
PRATICA |
|
|||||||
Sulla base delle informazioni ottenute nel modulo 9 si invitano i partecipanti a collegarsi al proprio ed effettuare le seguenti operazioni:
|
VERIFICA |
Domande sul modulo 9 |
|||||
A questo punto del corso il partecipante dovrebbe essere in grado di rispondere alle seguenti domande:
|
||||||
Definizioni |
||||||
|
||||||
Ogni comando che si lancia, ogni servizio attivo sul sistema da origine a uno o più processi. |
Comandi di visualizzazione e analisi dei processi e delle risorse |
|||||||||||
|
|||||||||||
ps [opzioni] |
Comando per visualizzare i processi presenti sul sistema e alcune proprietà come il PID, lo stato, la memoria occupata, il CPU time attivato ecc. |
||||||||||
pstree |
Visualizza i processi del sistema con una struttura ad albero, evidenziando parent e child. |
||||||||||
top [opzioni] |
Ulteriore comando per determinare i principali processi e quante risorse del sistema occupano. Utile per avere una visione in costante aggiornamento dello stato del sistema. |
||||||||||
vmstat [intervallo] |
Comando per generare dei piccoli rapporti sull'occupazione delle risorse del sistema; è inoltre possibile specificare il tempo di intervallo fra i vari rapporti e il numero massimo degli stessi |
||||||||||
|
|
||||||||||
|
|
|
Quando si lancia il comando top, si ha la possibilità di modificare i parametri di visualizzazione dei processi e l'ordine con cui elencarli. |
Segnali |
|
Per gestire un processo è possibile inviargli diversi segnali con diverse funzioni. |
Comandi di gestione dei processi |
|
|
|
kill -[signal] pid |
Principalmente utilizzato per "uccidere" o meglio terminare (SIGKILL) un processo, ma può essere utilizzato per mandare qualsiasi segnale. |
killall [opzioni] nome |
Termina (di default) o invia il segnale specificato tutti i processi con il nome indicato. |
||||||||||
CTRL + z |
La combinazione di tasti CTRL+z interrompe momentaneamente il processo in esecuzione (dalla shell corrent). Per ripristinarlo si devono usare i comandi bg e fg. Il primo fa eseguire il comando in background ed il secondo fa eseguire il comando in foreground. |
||||||||||
nohup <command> |
Si può utilizzare prima di qualsiasi per evitare che il processo determinato dal comando non cada al segnale SIGHUP. E' utile quando si lavora su macchine remote e si devono eseguire comandi che possono durare a lungo. Evita l'interruzione del processo quando per problemi di rete o normale operatività ci si sconnette dalla sessione remota (via telnet o ssh). Lo standard error e tutti gli output che verrebbero stampati a schermo vengono scritti sul file nohup.out |
||||||||||
nice <priority> <command> |
E' un prefisso utilizzato per assegnare un certo livello di priorità al comando che si sta per eseguire. -20 vuol dire massima priorità, 19 è minima priorità. |
||||||||||
|
|
||||||||||
|
|
|
Con il comando Kill -l visualizza l'elenco dei segnali che potete mandare ad un processo. Ogni segnale è identificato anche da un numero univoco che può essere utilizzato al posto del nome del segnale da mandare al processo. Es |
L'opera di debugging di un processo non è generalmente argomento da corso di amministrazione base, anche perchè spesso riguardano problemi sul lato applicativo che vanno affrontati direttamente dallo sviluppatore.
In ogni caso, nella vita di ogni sysadm capita sistematicamente che dei servizi non partano o dei programmi non facciano quello che dovrebbero fare (non inchiodarsi, innanzitutto), oppure, più subdolamente, hanno comportamenti erratici o problemi di prestazioni o di sopportazione di alti carichi.
Alcuni strumenti sono comunemente a disposizione del sistemista per diagnosticare simili problemi:
logs |
I log sono sempre la prima cosa da guardare. Eventualmente analizzare syslog.conf o le istruzioni e le configurazioni del singolo programma per capire dove vengono loggati i suoi messaggi. |
||||||||||||
debugging |
Quasi sempre è possibile lanciare un programma con diversi livelli di debug, aumentando la verbosità del debug (di solito registrato sul file di log) si aumenta la possibilità di capire cosa non funziona. |
||||||||||||
strace comando |
Strace traccia le chiamate di sistema e i segnali del programma specificato mentre lo esegue. Ovviamente va utilizzato solo per fini diagnostici, rallentando particolarmente la velocità di esecuzione. Spesso non è nemmeno necessario capire l'output di strace, basta cercare righe dove si parla di errori e vengono indicati path o funzioni specifiche. |
||||||||||||
ldd comando |
Stampa l'elenco delle librerie condivise utilizzate dal comando specificato |
||||||||||||
lsof [opzioni] |
Elenca gli open file del sistema. Un open file può essere: un normale file, una directory, un file speciale a blocchi o caratteri, una librerira, una socket Internet, una socket Unix domain... |
||||||||||||
|
|
|
||||||||||||
|
|
|
|||||||||||
PRATICA |
|
||||||||||||
Sulla base delle informazioni ottenute fin'ora si è in grado di analizzare cosa succede sul proprio host:
|
VERIFICA |
Domande sul modulo 10 |
||||||
A questo punto del corso il partecipante dovrebbe essere in grado di rispondere alle seguenti domande:
|
|||||||
Lo Zen e l'arte dell'automazione del sistema |
|||||||
Unix è un sistema operativo nato nei primi anni 70, grazie all'opera di due monumenti dell'informatica quali Ken Thompson, Dennis Ritchie (l'inventore del C, per intenderci) e vari altri. |
|||||||
Esempio script shell |
|||||||
Ecco un esempio di semplice script shell per la compilazione di Openssh in una RedHat linux. |
|||||||
|
# script shell per compilazione di openssh [12-06-2001] |
Il simbolo # identifica un commento. |
|||||
|
#!/bin/sh |
Invocazione dell'interprete dello script in questo caso è sh |
|||||
|
OPT_CONFIGURE="--prefix=/usr --sysconfdir=/etc/ssh --with-openssl --with-pam --with-md5-passwords --with-tcp-wrappers" |
Assegnazione di valori ripetitivi a delle variabili, per avere semplificazioni sia in fase di stesura sia in fase di upgrade o modifica di parametri. |
|||||
|
function COMPILE () |
Inizializzazione della prima funzione di questo script. In questo caso particolare la funzione si chiama COMPILE e contiene tutti i comandi per poter compilare i sorgenti e backuppare i file di configurazione. |
|||||
|
function COPY () |
Inizializzazione della funzione COPY, creata per eseguire la copia di file necessari per il corretto funzionamento di Openssh. |
|||||
|
function IP () |
Inizializzazione della funzione IP, creata per aggiungere la corretta configurazione per abilitare i tcpwrappers |
|||||
|
echo "--------------------------------------------------" |
Visualizza a video un menu all'avvio dello script per rendere interattiva la scelta delle varie possibilità offerte dallo script. |
|||||
|
case "$a" in |
Il comando case ci permette di assegnare specifici comandi a seconda del valore che assume la variabile a |
|||||
|
inetd | INETD ) |
Se il valore di a è inetd o INETD esegue i comandi e le chiamate alle funzioni richimate fino al doppio punto e virgola ;; |
|||||
|
x | X ) |
Nel caso in cui a assuma il valoredi a è pari a x o X si esegue la compilazione dei sorgenti, si crea il file di configurazione per permettere ad xinetd di gestire il demone ssh e di seguito vengono richiamate le funzioni IP e COPY |
|||||
|
daemon | DAEMON ) |
Nel caso in cui il valore di a è pari a daemon o DAEMON si eseguono solo le funzioni di COMPILE E COPY |
|||||
|
up | UP ) |
Nel caso in cui il valore di a è pari a up o UP si esegue la funzione COMPILE. |
|||||
definizioni |
|||||||
|
|||||||
In quasi tutti i sistemi operativi è possibile schedulare o meglio programmare ad un certo orario l'avvio di un comando o programma senza essere collegati in qualche modo al sistema.
|
Cron e crontab |
||||||||||||||||
|
||||||||||||||||
Il demone crond viene eseguito all'avvio del sistema ( /etc/rc.d/init.d/crond ) e, ogni minuto, analizza il suo file di configurazione predefinito /etc/crontab per verificare se deve eseguire dei comandi. |
||||||||||||||||
|
||||||||||||||||
|
|
|
Se voglio lanciare lo script /root/controlla_post.sh ogni mezz'ora in orari lavorativi (dalle 8 alle 18.30), sabato e domenica esclusi, dovrò inserire in /etc/crontab una riga simile: |
A titolo di reference elenchiamo vari comandi generalmente presenti in tutte le distribuzioni Linux.
Alcuni sono stati già trattati, per tutti vale la regola aurea RTFM (Read The Fucking Manual).
Quella che segue può essere vista come una reference da approfondire con un pratico man.
Fonte: Linux Guida di riferimento - Apogeo Openpress - ISBN 88-7303-826-3
Comunicazione |
|
ftp |
File Transfer Protocol. |
login |
Accesso. |
rlogin |
Accesso a un sistema remoto. |
rsh |
Esegue una shell o un singolo comando su un sistema remoto. |
talk |
Permette di scambiare messaggi in maniera interattiva con altri terminali. |
telnet |
Connette ad un altro sistema. |
tftp |
Trivial File Transfer Protocol. |
uudecode |
Decodifica i file preparati con uuencode per l'invio per posta elettronica. |
uuencode |
Codifica i file contenenti caratteri binari per l'invio per posta elettronica. |
vacation |
Risponde automaticamente ai messaggi di posta elettronica. |
|
|
cmp |
Confronta due file, byte per byte. |
comm |
Confronta gli elementi di due file ordinati. |
diff |
Confronta sue file, linea per linea. |
diff3 |
Confronta tre file. |
|
|
cat |
Concatena i file o li visualizza. |
chfn |
Cambia le informazioni utente per finger, posta elettronica, ecc. |
cksum |
Calcola la checksum. |
chmod |
Modifica le modalità di accesso ai file. |
chsh |
Cambia la shell di login. |
cp |
Copia file. |
csplit |
Spezza i file in posizioni specifiche. |
dd |
Effettua la copia file da e verso dischi in formato raw. |
file |
Determina il tipo di un file. |
head |
Mostra le prime linee di un file. |
less |
Visualizza i file una schermata alla volta. |
ln |
Crea degli alias per i nomi dei file. |
ls |
Elenca file o directory. |
merge |
Unisce le modifiche di diversi file. |
mkdir |
Crea una directory. |
more |
Visualizza i file una schermata alla volta. |
mv |
Sposta o rinomina file o directory. |
newgrp |
Cambia il gruppo corrente. |
pwd |
Visualizza la directory corrente. |
rcp |
Copia file su un sistema remoto. |
rm |
Elimina file. |
rmdir |
Elimina directory. |
tail |
Mostra le ultime linee di un file. |
split |
Suddivide i file in modo uniforme. |
wc |
Conta righe, parole e caratteri. |
|
|
lpq |
Mostra lo stato dei lavori di stampa. |
lpr |
Invia alla stampante. |
lprm |
Elimina un lavoro di stampa. |
lpstat |
Ottiene lo stato della stampante. |
pr |
Formatta e impagina per la stampa. |
|
|
ar |
Crea aggiorna i file di libreria. |
as |
Genera il file oggetto. |
bison |
Genera tabelle di parsing. |
cpp |
Effettua il preprocessing del codice C. |
flex |
Analizzatore lessicale. |
g++ |
Compilatore C++ GNU. |
gcc |
Compilatore C GNU. |
ld |
Editor di link (link editor). |
m4 |
Elaboratore di macro. |
make |
Crea programmi. |
ranlib |
Rigenera la tabella dei simboli dell'archivio. |
rpcgen |
Traduce il codice RPC in codice C. |
yacc |
Genera tabelle di parsing. |
|
|
cvs |
Gestisce diverse versioni (revisioni) di file sorgente. |
etags |
Genera liste di simboli da utilizzare con l'editor Emacs. |
gctags |
Genera liste di simboli da utilizzare con vi. |
gdb |
Debugger GNU. |
gprof |
Visualizza dati di profiling di file oggetto. |
imake |
Genera makefile da utilizzare con make. |
make |
Serve per la manutenzione, l'aggiornamento e la rigenerazione di programmi e file correlati. |
nm |
Visualizza la tabella dei simboli di file oggetto. |
patch |
Applica patch al codice sorgente. |
rcs |
Gestisce diverse versioni (revisioni) di file sorgente. |
size |
Stampa le dimensioni di un file oggetto in byte. |
strace |
Traccia le chiamate e i segnali del sistema. |
strip |
Elimina simboli di un file oggetto. |
|
|
apropos |
Cerca argomenti nelle pagine di manuale. |
egrep |
Versione estesa di grep. |
fgrep |
Cerca stringhe di testo letterali nei file. |
find |
Cerca nomi di file nel sistema. |
grep |
Cerca pattern di testo nei file. |
strings |
Cerca pattern di testo nei file binari. |
whereis |
Comando di ricerca. |
|
|
echo |
Riproduce nell'output gli argomenti indicati sulla linea di comando. |
expr |
Esegue operazioni aritmetiche e confronti. |
printf |
Formatta e stampa gli argomenti sulla linea di comando. |
sleep |
Fa una pausa durante l'elaborazione. |
test |
Verifica una condizione. |
|
|
bzip2 |
Comprime i file per liberare spazio. |
cpio |
Crea e scompatta gli archivi di file. |
gunzip |
Espande i file compressi (.gz e.Z). |
gzip |
Comprime i file per liberare spazio. |
shar |
Crea un archivio di shell. |
tar |
Copia file su o ripristina file da un supporto di archiviazione. |
zcat |
Visualizza il contenuto di file compressi. |
|
|
at |
Esegue comandi in un secondo momento. |
atq |
Mostra i lavori messi in coda da at. |
atrm |
Rimuove i lavori messi in coda da at. |
chgrp |
Cambia il gruppo di un file. |
chown |
Cambia il proprietario di un file. |
crontab |
Automatizza i comandi. |
date |
Visualizza o imposta la data. |
df |
Mostra lo spazio libero su disco. |
du |
Mostra l'uso del disco. |
env |
Mostra le variabili d'ambiente. |
finger |
Visualizza informazioni sugli utenti. |
kill |
Termina un comando in esecuzione. |
printenv |
Mostra le variabili d'ambiente. |
ps |
Mostra i processi. |
stty |
Imposta o visualizza le impostazioni di terminale. |
who |
Mostra chi è connesso. |
|
|
col |
Elabora i caratteri di controllo. |
cut |
Seleziona le colonne da visualizzare. |
ex |
Un editor di linee che sta sotto vi. |
expand |
Converte i tab in spazi. |
fmt |
Produce linee di lunghezza più o meno uniforme. |
fold |
Interrompe le righe. |
gawk |
Elabora liee o record uno alla volta. |
ghostscript |
Visualizza file PostScript o PDF. |
groff |
Formatta l'input di troff. |
ispell |
Controlla l'ortografia interattivamente. |
join |
Unisce diverse colonne in un database. |
paste |
Unisce colonne o ne scambia l'ordine. |
rev |
Visualizza le linee in ordine diverso. |
sed |
Editor di testo non interattivo. |
sort |
Ordina o unisce file. |
tac |
Visualizza le linee in ordine inverso. |
tr |
Traduce (ridefinisce) caratteri) |
uniq |
Trova le linee ripetute o quelle uniche in un file. |
xargs |
Elabora molti argomenti in porzioni maneggevoli. |
vi |
Editor di testo visuale. |
|
|
banner |
Crea dei poster a partire da parole. |
bc |
Calcolatrice di precisione arbitraria. |
cal |
Visualizza il calendario. |
clear |
Pulisce lo schermo. |
man |
Fornisce informazioni su un comando. |
nice |
Riduce la priorità di un lavoro. |
nohup |
Mantiene in esecuzione un lavoro dopo la disconnessione. |
passwd |
Imposta la password di login. |
script |
Produce una trascrizione della sessione di login. |
su |
Permette di diventare superutente. |
tee |
Memorizza l'output in un file e contemporaneamente lo invia allo schermo |
which |
Visualizza il percorso comando. |
|
|
hwclock |
Gestisce l'orologio hardware. |
netdate |
Imposta l'orologio sincronizzandolo con quello dell'host. |
rdate |
Gestisce il server di data/ora. |
zdump |
Stampa l'elenco dei fusi orari. |
zic |
Crea i file di informazioni per la conversione di informazioni di tipo data/ora. |
|
|
apmd |
Daemon di Advanced Power Management. |
bootpd |
Daemon Internet Boot Protocol. |
fingerd |
Daemon Finger. |
ftpd |
Daemon File Transfer Protocol. |
gated |
Gestisce le tabelle di routing tra reti differenti. |
identd |
Identifica l'utente che sta eseguendo un processo TCP/IP. |
imapd |
Daemon del server di posta elettronica IMAP. |
inetd |
Daemon per i servizi Internet. |
kerneld |
Fornisce servizi di caricamento automatico di moduli del kernel. |
klogd |
Gestisce syslogd. |
lpd |
Daemon per la stampante. |
mountd |
Server per le richieste di mount su NFS. |
named |
Server per i nomi di dominio Internet. |
nfsd |
Daemon NFS. |
pop2d |
Server POP. |
pop3d |
Server POP. |
powerd |
Monitorizza una connessione UPS. |
pppd |
Gestisce le connessioni di rete con protocollo punto-punto (Point to Point Protocol, in breve PPP). |
rdistd |
Server per la distribuzione remota di programmi. |
rexecd |
Server per l'esecuzione remota di programmi. |
rlogind |
Server rlogin. |
routed |
Daemon di routing. |
rshd |
Server di shell remota. |
rwhod |
Server remoto per who (rwho). |
syslogd |
Daemon per il logging del sistema. |
talkd |
Daemon di talk. |
tcpd |
Daemon per la rete TCP. |
tftpd |
Daemon Trivial File Transfer Protocol. |
update |
Daemon per il flush dei buffer. |
ypbind |
Processo NIS binder. |
yppasswdd |
Server per la modifica di password NIS. |
ypserv |
Server dei processi NIS. |
|
|
agetty |
Avvia la sessione utente al terminale. |
arp |
Gestisce la cache ARP. |
cardctl |
Controlla le schede PCMCIA. |
cardmgr |
Daemon del gestore di schede PCMCIA. |
cfdisk |
Gestisce le partizioni del disco (interfaccia grafica). |
fdisk |
Gestisce le partizioni del disco. |
getty |
Avvia la sessione utente al terminale. |
kbdrate |
Gestisce la frequenza di ripetizione della tastiera. |
ramsize |
Stampa informazioni riguardanti un disco RAM. |
setserial |
Imposta informazioni per la porta seriale. |
slattach |
Utilizza linee seriali come interfacce di rete. |
|
|
arch |
Stampa l'architettura della macchina. |
dnsdomainname |
Stampa il nome di dominio DNS. |
domainname |
Stampa il nome di dominio NIS. |
free |
Stampa l'uso della memoria. |
host |
Stampa informazioni sull'host e sul fuso orario. |
hostname |
Stampa o imposta il nome dell'host. |
nslookup |
Interroga i server di dominio di Internet. |
uname |
Stampa informazioni sull'host. |
|
|
cpio |
Copia file di archivio. |
install |
Copia file in particolari locazioni offrendo l'accesso agli utenti ed imposta le autorizzazioni. |
rdist |
Distribuisce file su sistemi remoti. |
tar |
Copia file su o ripristina file da un supporto di archiviazione. |
|
|
fetchmail |
Legge posta elettronica da server remoti. |
formail |
Converte l'input in un formato compatibile con la posta elettronica. |
mailq |
Stampa un riepilogo della coda di posta. |
makemap |
Aggiorna le mappe del database per sendmail. |
rmail |
Gestisce posta elettronica uucp. |
sendmail |
Invia e riceve posta elettronica. |
|
|
debugfs |
Permette il debug di filesystem extfs |
dosfsck |
Verifica e corregge problemi su filesystem DOS or VFAT. |
dumpe2fs |
Stampa informazioni riguardanti il superblock e i gruppi di blocchi. |
e2fsck |
Verifica e corregge problemi su filesystem di tipo Second Extended Filesystem. |
fdformat |
Formatta il floppy disk. |
fsck |
Verifica e corregge problemi su filesystem. |
fsck.minix |
Verifica e corregge problemi su filesystem MINIX. |
fuser |
Elenca i processi che utilizzano un determinato filesystem. |
mke2fs |
Crea un nuovo filesystem di tipo Second Extended Filesystem. |
mkfs |
Crea un nuovo filesystem. |
mkfs.ext2 |
Altro nome per mke2fs. |
mkfs.minix |
Crea un nuovo filesystem MINIX. |
mklost+found |
Crea una directory lost+found. |
mkraid |
Imposta un dispositivo RAID. |
mkswap |
Permette di definire lo spazio di swap. |
mount |
Monta un filesystem. |
raidstart |
Attiva un dispositivo RAID. |
raidstop |
Disattiva un dispositivo RAID. |
rdev |
Descrive o modifica impostazioni per il filesystem root. |
rootflags |
Elenca o imposta i flag utilizzati per montare il filesystem root. |
showmount |
Elenca le directory esportate. |
swapdev |
Visualizza o imposta i flag utilizzati per montare il filesystem root. |
swapoff |
Smette di utilizzare un dispositivo per lo swapping. |
swapon |
Inizia ad utilizzare un dispositivo per lo swapping. |
sync |
Scrive i buffer di un filesystem sul disco. |
tune2fs |
Gestisce filesystem di tipo Second Extended Filesystem. |
umount |
smonta un filesystem. |
|
|
depmod |
Crea un elenco di dipendenze del modulo |
insmod |
Installa un nuovo modulo del kernel |
lsmod |
Elenca i moduli del kernel |
modprobe |
Carica un nuovo modulo assieme ai relativi moduli dipendendi |
rmmod |
Rimuove un modulo |
|
|
dip |
Stabilisce connessioni IPdi tipo dial-up |
gdc |
Amministra il daemon di routing gated |
ifconfig |
Gestisce le interfacce di rete |
ipchains |
Amministra i servizi di firewall (kernel 2.2.x) |
iptables |
Amministra i servizi di firewall (kernel 2.4.x) |
named |
Traduce i nomi di dominio in IP e viceversa |
netstat |
Visualizza lo stato di rete |
portmap |
Effettua il mapping dei daemon sulle porte |
rarp |
Gestisce la tabella di RARP |
route |
Gestisce la tabella di routing |
routed |
Mantiene aggiornate in modo dinamico le tabelle di routing |
rpcinfo |
Fornisce informazioni su RPC |
ruptime |
Mostra da quanto tempo un sistema remoto è attivo |
rwho |
Mostra chi è connesso a un sistema remoto |
systat |
Mostra lo stato dei sistemi remoti |
traceroute |
Traccia un percorso (route) di rete verso un host remoto |
|
|
domainname |
Imposta o visualizza il nome del dominio NIS corrente |
makedbm |
Rigenera Database NIS |
ypbind |
Si connette ad un server NIS |
ypcat |
Stampa i valori contenuti in un database NIS |
ypchfn |
Cambia le informazioni utente contenute in un database NIS per finger, posta elettronica ecc. |
ypchsh |
Modifica la shell di login di un utente in un database NIS |
ypinit |
Crea un nuovo database NIS |
ypmatch |
Stampa il valore di una o più chiavi NIS |
yppasswd |
Modifica la password di un utente in un database NIS |
yppasswdd |
Aggiorna un database NIS dopo l'esecuzione del comando yppasswd |
yppoll |
Determina la versione di un mapping NIS di un server NIS |
yppush |
Distribuisce un mapping NIS |
ypserv |
Daemon del server NIS |
ypset |
Punta ypbind a un server specifico |
ypwhich |
Visualizza il nome di un server NIS o di un map master |
ypxfr |
Trasferisce un database NIS da un server all'host locale |
|
|
lpc |
Controlla la stampante di linea |
tunelp |
Permette di calibrare i parametri della stampante |
|
|
chroot |
Modifica la directory di root |
badblocks |
Ricerca blocchi difettosi |
|
|
bootpd |
Daemon Internet Boot Protocol |
bootpgw |
Gateway Internet Boot Protocol |
bootptest |
Verifica il funzionamento di bootpd |
halt |
Arresta il sistema |
init |
Cambia il runlevel |
reboot |
Arresta il sistema e poi lo riavvia |
runlevel |
Stampa il runlevel del sistema |
shutdown |
Arresta il sistema in modo sicuro |
telinit |
Modifica il runlevel corrente |
uptime |
Visualizza il tempo di funzionamento (uptime) delle macchine locali |
|
|
fuser |
Identifica i processi che stanno utilizzando un file o un filesystem |
psupdate |
Aggiorna /boot/psupdate |
renice |
Modifica la priorità dei processi in esecuzione |
top |
Mostra i processi |
Utenti |
|
chpasswd |
Modifica più password |
groupadd |
Aggiunge un nuovo gruppo |
groupdel |
Elimina un gruppo |
groupmod |
Modifica gruppi |
grpck |
Verifica l'integrità del file system relativi ai gruppi |
grpconv |
Converte un file di gruppo in un file di gruppo shadow |
lastlog |
Genera un rapporto con l'ora dell'ultimo accesso dell'utente |
newusers |
Aggiunge un nuovo utente con un procedura batch |
pwck |
Verifica l'integrità dei file di sistema relativi alle password |
pwconv |
Converte un file di password in password shadow |
rusers |
Stampa informazioni relative ai computer remoti nello stile di who |
rwall |
Invia un messaggio agli utenti remoti |
useradd |
Aggiunge un nuovo utente |
userdel |
Elimina un utente e la sua home directory |
uermod |
Modifica le informazioni dell'utente |
w |
Elenca gli utenti connessi |
wall |
Scrive a tutti gli utenti |
whoami |
Mostra le modalità di collegamento dell'utente che immette il comando |
|
|
cron |
Pianifica comandi permettendo di avviarne l'esecuzione in date e ore stabilite |
dmesg |
Stampa messaggi di avvio una volta che il sistema è avviato |
ldconfig |
Aggiorna i collegamenti alle librerie ed effettua il caching |
logger |
Invia messaggi al logger di sistema |
logrotate |
Comprime i log di sistema e ne gestice la rotazione |
rstat |
Visualizza lo stato del sistema dell'host |
run-parts |
Esegue tutti gli script contenuti in una directory |
|
|
ftpd |
Server per il trasferimento di file |
gated |
Gestisce le tabelle di routing tra reti differenti |
host |
Stampa informazionisull'host e sul fuso orario |
ifconfig |
Configura i parametri per le interfacce di rete |
named |
Traduce i nomi di dominio in indirizzi ip e viceversa |
netstat |
Visualizza lo stato di rete |
nslookup |
Interroga i server di nomi di dominio |
ping |
Verifica se un host remoto è raggiungibile via rete |
pppd |
Crea connessioni seriali PPP |
rdate |
Invia una notifica al server di data/ora che la data è cambiata |
route |
Gestisce le tabelle di routing |
routed |
Mantiene aggiornate in maniera dinamica le tebelle di routing |
slattach |
Utilizza linee seriali come interfacce di rete |
telnetd |
Server per sessioni Telnet da host remoti |
tftpd |
Server per un insieme ristretto di trasferimenti di file |
|
|
domainname |
Imposta o visualizza il nome del dominio NIS corrente |
makedbm |
Rigenera il database NIS |
portmap |
Mapper di porte DARPA verso numeri di programmi RPC |
rpcinfo |
Fornisce di informazioni su RPC |
ypbind |
Si connette ad un server NIS |
ypcat |
Stampa i valori contenuti in un database NIS |
ypchfn |
Cambia le informazioni utente contenute in un database NIS per finger, posta elettronica ecc. |
ypchsh |
Modifica la shell di login di un utente in un database NIS |
ypinit |
Crea un nuovo database NIS |
ypmatch |
Stampa il valore di una o più chiavi NIS |
yppasswd |
Modifica la password di un utente in un database NIS |
yppasswdd |
Aggiorna un database NIS dopo l'esecuzione del comando yppasswd |
yppoll |
Determina la versione di un mapping NIS di un server NIS |
yppush |
Distribuisce un mapping NIS |
ypserv |
Daemon del server NIS |
ypset |
Punta ypbind a un server specifico |
ypwhich |
Visualizza il nome di un server NIS o di un map master |
ypxfr |
Trasferisce un database NIS da un server all'host locale |
Su distribuzioni RedHat l'utility più comoda per scegliere quali servizi avviare a seconda al boot è ntsysv.
Una alternativa più diffusa è chkconfig, permette sia la visualizzazione (--list) che la modifica dello stato dei singoli servizi a seconda del run-level.
Servizi più comuni |
Nome servizio |
Descrizione |
Da attivare? |
anacron |
Controlla il demone di pianificazione anacron |
Inutile su un server |
apmd |
Directory che contiene apmd.init per il controllo dell'alimentazione e del login |
Utile in un portatile |
arpwatch |
Traccia le coppie di indirizzi dei protocolli ethernet e Internet |
Utile in un router/firewall |
atd |
Controlla il demone at (pianificazione personale) |
Da evitare in un server |
autofs |
Controlla il demone per l'automounts di Filesystem |
Utile in una workstation |
crond |
Controlla il demone di pianificazione di sistema cron |
Sempre |
ctm |
SNMP Traffic monitor |
Utile per monitoring |
httpd |
Controlla il server Web Apache e i servizi HTTP |
Solo su server web |
identd |
Server Ident |
Solo in casi particolari |
inet |
Controlla il protocollo TCP/IP e altri servizi |
Sempre |
innd |
Server News |
Solo su server news |
keytable |
Controlla il caricamento della mappa di tastiera |
Sempre |
kudzu |
Controlla e verifica la presenza di nuovo hardware |
Utile per una workstation |
linuxconf |
Permette l'accesso via web all'interfaccia di linuxconf |
Da evitare in un server |
lpd |
Controlla i servizi dello spooling di stampa |
Utile per workstation |
mars-nwe |
Controlla i servizi di sistema compatibili Netware |
Da attivare solo se si utilizzano sistemi Netware |
named |
Controlla l'avvio e l'arresto del Domain Name Service |
Solo su server DNS |
netfs |
Controlla i Mount e Umount di tutti i Network Filesystem |
Solo se si vuole montare un Network Filesystem |
network |
Controlla l'avvio e l'arresto dei sistemi di rete |
Sempre |
nfs |
Controlla i servizi del Network File System |
Solo se si vuole shareare via NFS |
nfslock |
Controlla i servizi del Network File System |
Solo se si vuole shareare via NFS |
pcmcia |
Controlla i servizi delle schede per computer portatili |
Solo nei portatili |
portmap |
Controlla i servizi per la procedura di chiamata remota |
Indispensabile se si ha che fare con NFS |
postgresql |
Controlla il demone di PostgreSQL database |
Solo su un SQL Server |
random |
Controlla la generazione dei numeri casuali |
Sempre |
routed |
Controlla un RIP router daemon |
Solo su router/firewall |
rstatd |
Controlla il demone delle statistiche del kernel di rete rpc.statd. |
Da evitare |
rusersd |
Controlla i servizi di rete dell'rpc.rusersd. |
Da evitare |
rwhod |
Controlla il demone di rete rwhod per i servizi di rwho |
Da evitare |
sendmail |
Controlla i servizi di trasporto di posta |
Solo su server SMTP |
smb |
Controlla i demoni Samba smbd e nmbd |
Solo su un file server smb |
snmpd |
Controlla il demone del protocollo Simple Network Management |
Utile per monitoring |
syslog |
Avvia e arresta i servizi di logging di sistema |
Sempre |
xfs |
Avvia e arresta il server font X11 |
Necessario per l'uso di Xwindows |
*bind |
Controlla i servizi di binding NIS |
Solo in caso di utilizzo |
compilazione kernel |
||
La compilazione del kernel è un'operazione da considerarsi fondamentale per l'aspetto performance e sicurezza. |
comandi fondamentali |
|||||||
make menuconfig |
Richiama il menu grafico per selezionare le varie opzioni disponibili del kernel. E' possibile inoltre salvare le configurazioni per usi futuri |
||||||
make dep |
Verifica le varie dipendenze dei possibli moduli e delle opzioni scelte nel menuconfig |
||||||
make bzImage |
Compilazione dell'immagine del kernel che verrà caricata al boot |
||||||
make modules |
Compilazione dei moduli |
||||||
make modules_install |
Installazione dei moduli |
||||||
Se tutti i comandi lanciati non producono nessun tipo di errore la compilazione del kernel si può definire conclusa. |
|||||||
|
|
||||||
|
|
|
la directory /usr/src/linux è un collegamento simbolico a una directory vera contenente i sorgenti del kernel che viene utilizzato di default |
Il menuconfig ha un uso molto intuitivo con il tasto "space" si seleziona o si diseleziona un'opzione. Il comando enter per entrare nei sottomenu. |
Il tempo di compilazione del kernel varia molto a seconda della potenza del processore e della memora disponibile (oltre alle opzioni selezionate nel kernel) ; un host dell'ultima generazione può impiegare qualche minuto e un 386 qualche ora. |
In questa e nella prossima pagina vengono fornite ulteriori informazioni su cosa è raccomandabile fare su un sistema destinato ad essere messo su Internet in produzione. |
POST-INSTALL SYSTEM CUSTOMIZATION CHECK-LIST |
||
|
||
|
Questa pagina riassume ed elenca una serie di configurazioni e ottimizzazioni post-installazione che possono aumentare il livello di sicurezza del sistema. |
POST-INSTALL SECURITY CHECK-LIST |
||||||||||||||||||||||
|
Fonte: http://www.comunecampagnano.it/gnu/doc/corso_linux.doc
Sito web da visitare: http://www.comunecampagnano.it/
Autore del testo: non indicato nel documento di origine
Il testo è di proprietà dei rispettivi autori che ringraziamo per l'opportunità che ci danno di far conoscere gratuitamente i loro testi per finalità illustrative e didattiche. Se siete gli autori del testo e siete interessati a richiedere la rimozione del testo o l'inserimento di altre informazioni inviateci un e-mail dopo le opportune verifiche soddisferemo la vostra richiesta nel più breve tempo possibile.
I riassunti , gli appunti i testi contenuti nel nostro sito sono messi a disposizione gratuitamente con finalità illustrative didattiche, scientifiche, a carattere sociale, civile e culturale a tutti i possibili interessati secondo il concetto del fair use e con l' obiettivo del rispetto della direttiva europea 2001/29/CE e dell' art. 70 della legge 633/1941 sul diritto d'autore
Le informazioni di medicina e salute contenute nel sito sono di natura generale ed a scopo puramente divulgativo e per questo motivo non possono sostituire in alcun caso il consiglio di un medico (ovvero un soggetto abilitato legalmente alla professione).
"Ciò che sappiamo è una goccia, ciò che ignoriamo un oceano!" Isaac Newton. Essendo impossibile tenere a mente l'enorme quantità di informazioni, l'importante è sapere dove ritrovare l'informazione quando questa serve. U. Eco
www.riassuntini.com dove ritrovare l'informazione quando questa serve