Le caratteristiche dei sistemi

Ca ra tter is tich e dei s is tem i G N U/ L in ux
●
Struttura di un sistema GNU/Linux
● Il filesystem
● La shell
1
Ca ra tter is tich e dei s is tem i G N U/ L in ux
GNU/Linux è un sistema operativo, cioè un insieme di
programmi che collaborano fra di loro rendendo
utilizzabile un calcolatore, infatti senza esso un
computer sarebbe inutilizzabile per un comune essere
umano!!! Lo chiamiamo GNU/Linux proprio perché è
l'unione di due progetti, il progetto GNU e il progetto
Linux.
●
2
Ca ra tter is tich e dei s is tem i G N U/ L in ux
Linux effettivamente è solo un kernel, cioè il cuore di
un sistema operativo. Un S.O. è formato a strati, lo
strato più basso è il kernel, esso ha il compito di
“guidare” l'hardware sottostante e di regolare i vari
compiti da eseguire.
3
Ca ra tter is tich e dei s is tem i G N U/ L in ux
4
Ca ra tter is tich e dei s is tem i G N U/ L in ux
Il kernel linux nasce negli anni '90, il progetto fu
lanciato da Linus Torvalds, un giovane studente
finlandese. La leggenda vuole che egli, dopo aver
avuto una discussione con il suo professore di S.O. su
quale fosse il modo migliore di implementare un
kernel, decise di creare un suo kernel, e di rilasciarlo
sotto licenza GPL, mossa che poi si rivelò vincente. In
rete è ancora possibile trovare il post che Torvalds
scrisse alla comunità open source.
5
Ca ra tter is tich e dei s is tem i G N U/ L in ux
Linux, in principio, era un kernel strettamente
monolitico, cioè tutto quello che serve per operare su
una determinata macchina ( driver ecc.. ) è caricato
direttamente tutto in memoria. Oggi Linux è un kernel
ibrido-modulare, cioè è possibile caricare i vari moduli
in runtime, ogni modulo andrà a far parte del kernel.
6
Ca ra tter is tich e dei s is tem i G N U/ L in ux
Altra caratteristica dei sistemi GNU/Linux è la
multiutenza, ciò significa che più utenti possono
operare contemporaneamente su una stessa
macchina. Questa caratteristica è stata ereditata dal
sistema Unix. Ed è ovviamente anche multitasking,
quindi più programmi possono essere eseguiti in
contemporanea.
7
Ca ra tter is tich e dei s is tem i G N U/ L in ux
Ora parliamo del filesystem, esso è la parte del S.O.
che consente di gestire i file presenti sui dispositivi di
memorizzazione, in maniera trasparente, cioè chi
utilizza il calcolatore non ha bisogno di conoscere come
e dove i dati vengano fisicamente salvati. I principali
filesystem linux oggi sono ext2, ext3 journaling.
Ognuno di essi ha le proprie caratteristiche ma il modo
di presentare l'organizzazione logica dei file è la stessa.
8
Ca ra tter is tich e dei s is tem i G N U/ L in ux
L'organizzazione logica di un filesystem è quella che
l'utente finale “vede”. Questi filesystem presentano le
varie directory e i vari file organizzati secondo una
struttura ad albero, quindi come qualcosa del genere.
9
Ca ra tter is tich e dei s is tem i G N U/ L in ux
R
A
B
D
C
E
R è chiamata radice
A, B, C sono figli della radice
infine A, F, G sono foglie
dell'albero ( non hanno figli )
F
G
10
Ca ra tter is tich e dei s is tem i G N U/ L in ux
La radice ( root ) è rappresentata con il simbolo / le
cartelle principali del sistema sono: bin, etc, usr, home,
mnt, media, boot, var, root, sbin. I path name avranno
quindi una forma del tipo /home/mextil/prova.c, dove la
prima / indica la root le successive determinano una
divisione fra i nomi delle directory e dei file.
11
Ca ra tter is tich e dei s is tem i G N U/ L in ux
/
usr
bin
etc
Quindi ammettendo di voler
raggiungere il file ls il path
associato sarà: /bin/ls
ls
12
Ca ra tter is tich e dei s is tem i G N U/ L in ux
Abbiamo elencato prima le cartelle principali, vediamo
ora cosa contiene ognuna di esse:
bin: applicazioni utente
sbin: applicazioni di sistema
etc: file di configurazione, servizi etc..
usr: programmi utente, manuali ecc..
media, mnt: filesystem “esterni”
root: home utente amministratore
home: cartelle home degli utenti
13
Ca ra tter is tich e dei s is tem i G N U/ L in ux
Beh siamo arrivati a parlare degli utenti. Prima
abbiamo accennato che i sistemi Unix like, quindi
anche linux sono sistemi multiutente,quindi, è possibile
registrare su una macchina più utenti. I dati di ogni
utente vengono salvati in un file speciale chiamato
passwd esso, solitamente, è situato nella cartelle /etc
(/etc/passwd), è un semplice file di testo dove ogni riga
rappresenta un record, strutturato nel seguente modo
nome_utente:password:uid:gid:dati_vari:home:shell
14
Ca ra tter is tich e dei s is tem i G N U/ L in ux
Il file shadow invece mette in relazione ogni utente con la
propria password cifrata ( /etc/password ).
15
Ca ra tter is tich e dei s is tem i G N U/ L in ux
Ma cosa sono uid e gid? I sistemi unix like riconoscono
gli utenti in basa ad un numero denominato user
identificator ( uid ), ogni utente appartiene ad un
gruppo che a sua volta viene identificato con un
numero denominato group identificator ( gid ). Ma a
cosa servono praticamente questi numeri?
16
Ca ra tter is tich e dei s is tem i G N U/ L in ux
Qui introduciamo, per quanto riguarda il filesystem il
concetto di permesso su file. Esso determina, per ogni
file, le operazioni che l'utente ha a disposizione che
possono essere scrittura, lettura, esecuzione. Su ogni
file ritroveremo quindi qualcosa del genere:
rwxrwxrwx
La prima terna di permessi specifica i permessi per il
proprietario del file, la seconda i permessi per il gruppo
di appartenenza del proprietario la terza per gli altri
17
Ca ra tter is tich e dei s is tem i G N U/ L in ux
Quindi se guardando le proprietà di un file troviamo i
seguenti permessi
rwxr----x
cosa può fare il proprietario, cosa possono fare gli
utenti appartenenti al gruppo del proprietario e cosa
possono fare gli altri utenti?
18
Ca ra tter is tich e dei s is tem i G N U/ L in ux
I permessi possono essere specificati anche in ottale. I
permessi sono salvati dal sistema come sequenza di
nove bit ad esempio 111100000. Una sequenza del
genere va letta a gruppi di tre bit, e in ogni terna ogni
singolo bit specifica se un permesso è attivo o meno,
nell'esempio l'utente proprietario ha i permessi di rwx
mentre il gruppo solo di r gli altri nessuno.
rwxr----Possiamo tradurre in una sequenza di tre ottali le tre
sequenze ad esempio
740
19
Ca ra tter is tich e dei s is tem i G N U/ L in ux
Nei sistemi Unix like l'amministratore di sistema,
chiamato root, è l'unico utente che può effettuare
qualsiasi operazione su qualsiasi file, inoltre ha a
disposizione diversi comandi di amministrazione che
non possono essere eseguiti dai normali uteni.
20
Ca ra tter is tich e dei s is tem i G N U/ L in ux
Parliamo ora della shell ( interprete dei comandi ), in
un sistema operativo consente ad un utente
l'esecuzione dei comandi. Nei sistemi GNU/Linux sono
presenti diverse shell, le più importanti sono sh, bash e
cshell.
21
Ca ra tter is tich e dei s is tem i G N U/ L in ux
La bash ( Bourne Again SHell ) è un interprete dei
comandi presente in tutti i sistemi Unix Like. E' una
copia modificata della shell standard sh, creata da
Stephen Bourne. Come tutte le shell *unix la bash
permette l'esecuzione di funzioni o di applicazioni,
mette quindi in comunicazione l'utente con il sistema
operativo. Altre shell *unix sono l'sh,csh, tcsh ecc...
22
Ca ra tter is tich e dei s is tem i G N U/ L in ux
Al suo avvio la bash carica dalla home directory i file
.bashrc e .bash_profile essi specificano alcune
caratteristiche personalizzabili dall'utente.
23
Ca ra tter is tich e dei s is tem i G N U/ L in ux
utente@host:~/$ _
la parte antecedenti il $ è detta promt e indica il nome
utente, l'host su cui sta operando e la directory
corrente. Nella parte che segue il simbolo di $ si
inseriscono i comandi.
24
Ca ra tter is tich e dei s is tem i G N U/ L in ux
Quando scriviamo il nome di un comando o di un
applicazione la bash controlla se esso è un comando
built-in (il codice del comando è integrato nel codice
della shell) dopodiché controlla che il comando sia
presente in una delle cartelle di dafault /bin /sbin
/usr/bin, se presente in tale cartelle lancia il file
altrimenti lancia un errore. Se si vuole lanciare un
applicazione che non è presente in una di queste
cartelle occorre specificare il path completo.
utente@host:~/$ /home/utente/mioprog
25
Ca ra tter is tich e dei s is tem i G N U/ L in ux
I path possono essere anche abbreviati utilizzando
caratteri come . .. e ~. Il primo si riferisce alla
directory, quindi se scriviamo ./prova ci stiamo
riferendo al file prova presente nella cartella corrente.
Il secondo ( .. ), indica la cartella padre quindi
digitando ../altracartella/prova ci riferiamo alla
sottocartella altracartella posizionata nella cartella
padre alla posizione attuale. Il simbolo ~ indica invece
l'home directory dell'utente che sta utilizzando la shell,
quindi se siamo mextil ~ indica /home/mextil
26
Ca ra tter is tich e dei s is tem i G N U/ L in ux
Il comando cd permette all'utente di cambiare la
directory corrente. E' un comando built-in quindi il suo
codice è integrato nella bash. infatti se cerchiamo il file
cd nelle cartelle /bin, /sbin o /usr/bin non avremo
risultati.
utente@host:~/$ cd prova
utente@host:~/prova$
27
Ca ra tter is tich e dei s is tem i G N U/ L in ux
Il comando ls visualizza il contenuto di una directory,
lanciato senza argomenti visualizza il contenuto della
directory corrente. Si possono anche utilizzare svariate
opzioni ad esempio l'opzione a che visualizza anche i
file nascosti e l che visualizza il tutto come un elenco
visualizzando anche i permessi sui file. Le opzioni
vanno antecedute dal simbolo utente@host:~/$ ls -al
28
Ca ra tter is tich e dei s is tem i G N U/ L in ux
Per leggere un file possiamo usare il comando less ( less
nomefile) o cat ( cat nomefile ). La differenza è minima con cat
possiamo leggere di tutto less riconosce se i file sono immagini
video ecc..
utente@host:~/$ cat prova
utente@host:~/$ less prova
29
Ca ra tter is tich e dei s is tem i G N U/ L in ux
chmod è il comando che permette di cambiare i
permessi su di un file. Ovviamente tale operazione è
permessa solo al proprietario del file e all'utente root. Il
suo utilizzo è semplice, lo si può usare specificando i
permessi in ottale o specificando i permessi da
aggiungere o rimuovere a tutti anteceduti da un + o un
– ad esempio
utente@host:~/$ chmod +x prova
da a tutti il permesso d'esecuzione sul file prova
utente@host:~/$ chmod -x prova
revoca tale permesso
30
Ca ra tter is tich e dei s is tem i G N U/ L in ux
Altrimenti se vogliamo specificare i permessi più
dettagliatamente usiamo la notazione ottale.
utente@host:~/$ chmod 740 prova
Da all'utente proprietario i permessi di rwx al gruppo di
r e agli altri nessuno.
31
Ca ra tter is tich e dei s is tem i G N U/ L in ux
chown permette di modificare il proprietario del file. La
sua sintassi è:
utente@host:~/$ chown nuovoproprietario:nuovogruppo file
Anche questo comando è riservato al proprietario del
file o a root.
32
Ca ra tter is tich e dei s is tem i G N U/ L in ux
Il comando sudo ( super user do ) permette di eseguire
applicazioni con permessi di root, conoscendo solo la
nostra paswword e non quella di root. Ovviamente non
a tutti è permesso l'uso di questo programma, root può
scegliere chi sostituisce chi tramite il file /etc/sudoers.
33
Ca ra tter is tich e dei s is tem i G N U/ L in ux
Per utilizzare sudo basta scrivere sudo seguito dal
comando che vogliamo lanciare.
utente@host:~/$ sudo comando
password:
Un opzione utili può essere i che permette di lanciare
una shell root.
utente@host:~/$ sudo -i
password:
root@host:~$
34
Ca ra tter is tich e dei s is tem i G N U/ L in ux
Il comando su ( substitute user ) permette di accedere
alla shell come root, per usare questo comando
bisogna conoscere la password di root. Per lanciare il
comando basta scrivere su.
utente@host:~/$ su
password:
root@host:~:
35
Ca ra tter is tich e dei s is tem i G N U/ L in ux
useradd aggiunge un nuovo utente, solo root può
eseguire questo comando. Per lanciarlo si deve scrivere
utente@host:~/$ useradd nome_utente -l nome_login
36
Ca ra tter is tich e dei s is tem i G N U/ L in ux
Alcune opzioni utili sono:
-d home directory
-e data scadenza
-g gruppo iniziale
-p password
-s shell
-u uid
-l logni
37
Ca ra tter is tich e dei s is tem i G N U/ L in ux
userdel elimina un utente, anche questo comando può eseguirlo
solo root.
utente@host:~/$ userdel nome_utente
L'unica opzione utilizzabile è -r che indica al comando di
eliminare tutti i file presenti nella home directory dell'utente da
cancellare.
utente@host:~/$ userdel -r nome_utente
38
Ca ra tter is tich e dei s is tem i G N U/ L in ux
usermod modifica i dati di un utente, va usato con le opzioni che
sono le stesse di useradd.
utente@host:~/$ usermod utente -s sh
L'esempio cambia la shell di default dell'utente.
39
Ca ra tter is tich e dei s is tem i G N U/ L in ux
Beh a questo punto che dire in queste poche slides sembra si
capisca che un sistema Linux è più sotto il nostro controllo, fa
quello che gli diciamo di fare in poche parole. Infine per
concludere vi lascio con questo comando
utente@host:~/$ shutdown -h now
40