Previous Next Contents

3. Primi passi

3.1 Il login

Nei capitoli precedenti abbiamo visto quale sia la filosofia di linux, quali sono i comandi principali e cosa succede al bootstrap. Quindi adesso sappiamo che agetty chiamata dal processo init (che legge le informazioni dal file /etc/inittab), inizializzerà tutti i terminali e li renderà pronti a lavorare.

Esattamente dopo il bootstrap, il nostro sistema visualizzerà qualcosa del genere:

Welcome to Linux 1.3.56.

darkstar login:

Che cosa significa? Cosa vuole?

In pratica sappiamo che linux è un sistema multiutente e multimacchina, in questo momento il sistema ci chiede di identificarci, in modo che lui sappia se abbiamo accesso a lavorare e che tipo di accesso abbiamo.

In un sistema Unix ci sono molti tipi di utenti, per semplificare un po' le cose, dividiamoli momentaneamente in superuser e utenti normali.

Il superuser è il gestore del sistema, colui che detta le regole e che si occupa dell'amministrazione del nostro OS, un utente normale invece è un utente che ha accesso al sistema ma con alcune restrizione dettate proprio dal superuser, restrizioni che possono essere di vario tipo, ovvero un utente normale può accedere solo a certe directory e a certe altre no, può eseguire solo certi comandi e certi no, può accedere in lettura a certe dir ma non in scrittura e viceversa, tutte queste regole sono dettate dal superuser.

Appare ovvio che almeno inizialmente (prima di ogni altra configurazione) il sistema riconoscerà come utente solo il superuser, poi sarà quest'ultimo a creare i permessi e gli accessi per gli altri utenti e regolare la vita del proprio sito (preferisco chiamarlo cosi perché in realtà qualunque utente linux ha potenzialmente sottomano la gestione di un sito o comunque di un server di rete), per cui alla domanda

Welcome to Linux 1.3.56.

darkstar login:

risponderemo ``root'' (senza le virgolette) che è il nome con cui tipicamente si indica il superuser.

3.2 Primi passi

A questo punto se tutto è andato bene saremo entrati nel nostro bravo, nuovo e fiammante sistema linux. Ma subito lo sconforto, digitiamo il nostro primo comando per vedere la directory in cui siamo, e ci accorgiamo ad esempio che la tastiera italiana non funziona e che quindi per digitare

ls -l

(che come abbiamo visto serve a vedere l'elenco in formato lungo delle directory) devo andare a cercare il tasto - nascosto dietro chissà quale tasto della tastiera italiana, una volta compiuta tale operazione rimarremo sconcertati dal risultato:

ls -l
total 2
lrwxrwxrwx   1 root     root            8 Jan  4 22:01 INSTALL -> /var/adm/
lrwxrwxrwx   1 root     root           14 Jan  4 22:01 linux -> /usr/src/linux/

Che roba è questa? Compaiono solo due dir INSTALL e linux, e le altre? Tutto il mio sistema è concentrato in queste due dir ? E perché non vedo il path di dove mi trovo?

Non vi scoraggiate, un passo alla volta e troveremo una facile spiegazione a tutto ciò.

3.3 La home dir

Cominciamo subito col dire che ci troviamo nella home dir del superuser.

Ricordate che abbiamo detto che linux adotta un file system gerarchico? Bene allora ciascun utente del sistema sarà dotato di una propria directory proprietaria in cui fare tutto ciò che gli riguarda. Questa directory proprietaria viene indicata con il termine home dir, dopo il login l'utente si troverà all'interno della propria home dir pronto per lavorare.

Attualmente quindi ci troveremo nella home dir del superuser che fisicamente sull'hardisk è situata in /root. dato che il superuser può fare di tutto, ci spostiamo nella directory gerarchicamente superiore, con il comando

cd /

facciamo un bel

ls -l

e la situazione che ci si presenta è più o meno questa:

total 58
drwxr-xr-x   2 root     bin          2048 Jan 10 16:30 bin/
drwxr-xr-x   2 root     root         1024 Jan  4 21:36 boot/
drwxr-xr-x   3 root     root        11264 Jan 15 14:37 dev/
drwxr-xr-x  12 root     root         2048 Jan 15 15:04 etc/
drwxr-xr-x   7 root     root         1024 Jan 15 12:42 home/
drwxr-xr-x   2 root     root         1024 Jan 10 17:14 lib/
drwxr-xr-x   2 root     root        12288 Jan  4 21:33 lost+found/
drwxr-xr-x   2 root     root         1024 Sep  4 20:32 mnt/
dr-xr-xr-x   3 root     root            0 Jan 15 14:37 proc/
drwxr-x--x   4 root     root         1024 Jan 15 15:03 root/
drwxr-xr-x   2 root     bin          2048 Jan  4 21:54 sbin/
drwxrwxrwt   2 root     root         2048 Jan 15 15:10 tmp/
drwxr-xr-x  17 root     root         1024 Jan  8 16:45 usr/
drwxr-xrwx  13 root     root         1024 Jan  8 16:45 var/

Bene, sarà il caso di spiegare brevemente che cosa contengono queste directory.

3.4 Il contenuto delle directory

/bin

Contiene i comandi essenziali per la gestione del sistema. L'accesso e' garantito sia al superuser che agli utenti normali, i comandi in essa contenuti sono tipicamente eseguibili da tutti. Non contiene sottodirectory.

/boot

Contiene alcuni file necessari al boot loader. Praticamente tutto il necessario per il bootstrap, eccetto i file di configurazione. Ovvero tutti i file che non devono essere editati a mano

/dev

Contiene i file speciali, a carattere o a blocco (vedi I capitolo) che indicano i dispositivi fisici del sistema. Contiene anche il comando MAKEDEV che serve a creare nuovi file per i dispositivi, ove ci fosse bisogno.

/etc

Contiene tutti i file di configurazione per il proprio sistema. Gran parte dei funzionamenti della macchina possono dipendere dai file contenuti in questa directory.

/home

Tipicamente contiene le home dir dei vari utenti del sistema. Esclusa ovviamente la home dir del superuser che invece è contenuta nella directory /root.

/lib

Contiene le shared libraries ovvero le librerie del sistema che vengono condivise da molte applicazioni.

/sbin

Tipicamente contiene comandi per la gestione del sistema, utilizzabili solo dall'amministratore e da nessun altro.

/mnt

Tipicamente è vuota, si usa per montare file system temporanei sul proprio hard disk.

/proc

Contiene informazioni sui processi in corso. In realtà si tratta di una directory virtuale che non occupa nessuno o pochissimo spazio fisico sull'hd. Tutti i file contenuti in questa directory sono creati dal kernel o da chiamate al kernel, è caldamente sconsigliabile smanettarci dentro, a meno che non si sa esattamente quello che si sta facendo.

/root

È la home dir dell'amministratore di sistema

/tmp

È una directory che contiene file temporanei creati dai processi che runnano nel sistema.

/usr

La directory /usr è la directory che contiene la maggior parte delle informazioni e dei programmi relativi al sistema operativo. Contiene moltissime sottodirectory, tra cui quelle relative alle librerie dei singoli programmi, la directory che contiene i programmi veri e propri del sistema, la directory contenente i file d'aiuto etc etc.

L'analisi della directory /usr richiederebbe molto tempo, pertanto si consiglia per maggiori informazioni, la lettura di fsstnd-1.2.txt dal primo cd della slackware di novembre.

/var

La directory /var contiene anch'essa un elevatissimo numero di informazioni. A differenza della /usr dove comparivano comandi di sistema e informazioni piu o meno fisse, nella /var compaiono per la maggior parti informazioni dinamiche, come i log di sistema o per esempio la base messaggi del point e cosi via, cosi come per la /usr, si consiglia la lettura di fsstnd-1.2.txt.

3.5 Utilità delle home dir

L'utilità delle home dir è varia e molteplice. Come gia detto linux è un sistema multiuser, per cui una prima forma di protezione dei dati è sicuramente quella di assegnare a ciascun utente una propria directory dove poter lavorare, directory che può essere accessibile solo all'utente che la possiede e se l'utente lo desidera anche dal gruppo di lavoro con cui magari in quel momento sta sviluppando un certo progetto e a nessun altro eccetto, naturalmente, il superuser che ha il controllo e la responsabilità diretta di tutto il sistema.

Non solo ma l'esistenza di una home dir propria di ciascun utente fa sì che i progetti, i programmi o i dati personali di un user non vengano confusi con quelli di chiunque altro.

Sull'hard disk possono esistere 10 file chiamati progetto.comeon, ma il fatto che ciascun file appartenga ad una home dir diversa, di per sè ne diversifica e il contenuto e il proprietario.

Inoltre la peculiarità del file system di linux che è quella di essere gerarchico viene in questo modo ulteriormente rispettata. Alcuni potrebbero interpretare questa delle directory strutturate gerarchicamente come una costrizione, in realtà non lo è affatto, anzi è un agevolazione.

Non è una costrizione perché in ogni caso il superuser può stabilire ad esempio che 5 utenti condividano la stessa home dir e può stabilire che questa home non sia situata nella directory /home/nomeutente ma in un qualunque altro posto, (per quanto questo possa sembrare strano alcune volte è utile) ed è un agevolazione perché per il programmatore è più facile sviluppare programmi in una situazione di file system gerarchico, è infatti indubbio che è più facile scrivere un programma usando una struttura del tipo

/-----------
           |
           |____home/
                    +----jaco/
                             +mioprogramma/
                                          +------/bin
                                          +------/lib
                                          +------/doc
                                          +------/etc
                                          +------/var
                                          +------/src

che scrivere un programma in una situazione in cui tutto è di tutti e non esiste una strutturazione dei dati.

3.6 Utilità di un sistema multiuser in un sistema non di rete

Molti a questo punto diranno: ``Io sono l'unico proprietario del mio sistema, sul mio computer ci lavoro solo io, dove sta l'utilita' di avere un sistema multiuser?''

È una domanda tutto sommato che potrebbe sembrare ben posta, in realtà la risposta è semplice ed univoca: nella filosofia di Unix che prevede che ciascuna cosa sia specializzata a fare una ed una sola cosa con il massimo grado di specializzazione possibile.

Anche in questo caso questa regola è valida, anche se siamo solo noi ad utilizzare il nostro sistema, è necessario creare utenti specializzati alla risoluzione di un certo problema.

Esisterà l'utente dedicato alla lettura della posta, quello dedicato alla programmazione e quello dedicato ai collegamenti ad internet, quello dedicato alla gestione dei database, e quello dedicato all'utenza dei wordprocessor e cosi via; si possono, anzi è intrinseco nella filosofia del sistema, dover creare utenti specializzati alla risoluzione di un problema.

Nel prossimo capitolo vedremo come fare.


Previous Next Contents