Diapositiva 1 - SisInf Lab

Transcript

Diapositiva 1 - SisInf Lab
Corso di Laurea Triennale in Ingegneria delle TLC e dell’Automazione
Corso di Sistemi Operativi
A. A. 2005 - 2006
Link e permessi
M. Ruta - G. Piscitelli
Sistemi Operativi
DEE - Politecnico di Bari
Link
• Un riferimento ad un file è detto link
• Ogni file può avere un numero qualsiasi di link
• UNIX ha due tipi di link:
– Hard link
– Soft link
• È possibile creare un link ad un file con il comando ln
2 di 32
Link
M. Ruta - G. Piscitelli
Sistemi Operativi
DEE - Politecnico di Bari
•
•
•
Il comando ln
ln [opzioni] fileesistente nuovofile
associa il nuovo nome (link) nuovofile al file esistente
(fileesistente), che non può essere una directory
ln [opzioni] fileesistenti… directorytarget
crea un link ai file ordinari (fileesistenti…) nella directory
(directorytarget). I link hanno gli stessi nomi del file
originale
Opzioni:
– -n: non crea il link se nuovofile esiste già
– -s: crea un link simbolico a fileesistente con il nome nuovofile
3 di 32
Link
M. Ruta - G. Piscitelli
Sistemi Operativi
DEE - Politecnico di Bari
Hard link
• Un hard link è un puntatore all’inode di un file.
– Alla creazione di un file corrisponde la definizione di una
directory entry (inode#, filename) nella directory contente il file.
– L’ inode# consente di accedere agli attributi del file (numero di
link, dimensione, proprietario, allocazione sul disco etc)
4 di 32
Link
M. Ruta - G. Piscitelli
Sistemi Operativi
Hard link: esempi
DEE - Politecnico di Bari
• Si supponga di creare un file capitolo3 nella propria working
directory, e che il sistema allochi un inode#53472
• Si supponga che la directory contenga a sua volta altri due file
capitolo1 e capitolo2
Struttura della working directory
capitolo1
5 di 32
capitolo2
Contenuto della working directory
capitolo3
Link
1076
.
2083
..
13059
Capitolo1
17488
Capitolo2
52473
Capitolo3
M. Ruta - G. Piscitelli
Sistemi Operativi
Hard link: esempi
DEE - Politecnico di Bari
• L’inode# nella directory
entry del file capitolo3 è
usato per indicizzare la
inode table in modo da
accedere all’inode del file.
L’inode contiene gli attributi
di capitolo3, tra cui la sua
allocazione sul disco
Legame tra directory entry, inode e contenuto del file
6 di 32
Link
M. Ruta - G. Piscitelli
Sistemi Operativi
Hard link: esempi
DEE - Politecnico di Bari
•
•
Con il comando ln, è possibile creare un link a capitolo3, nella stessa o in
un’altra directory
Il comando ln senza opzioni crea un hard link al file specificato
mostra gli attributi di tutti i file
della directory corrente,
compresi i loro inode#
$ ls –il
13059 -rwx------ 1 sarwar faculty 398 Mar 11 14.20 capitolo1
17488 -rwx------ 1 sarwar faculty 5983 May 21 18.20 capitolo2
52473 -rwx------ 1 sarwar faculty 9352 Jan 10 10.20 capitolo3
Crea un hard link a capitolo3
di nome capitolo3.hard
$ ln capitolo3 capitolo3.hard
Struttura della working directory
capitolo1
7 di 34
capitolo2
capitolo3
Capitolo3.hard
Contenuto della working directory
1076
.
2083
..
13059
Capitolo1
17488
Capitolo2
52473
Capitolo3
52473
Capitolo3.hard
Completiamo
i discorsi...
Il sistema crea
una nuova
directory entry
per capitolo3
nella directory
corrente.
M. Ruta - G. Piscitelli
Sistemi Operativi
DEE - Politecnico di Bari
Hard link: esempi
•I due riferimenti al
medesimo file sono
equivalenti in quanto
entrambi puntano allo
stesso file su disco
•Non si è in grado di
distinguere quale dei due
è stato creato per primo
8 di 32
Link
M. Ruta - G. Piscitelli
Sistemi Operativi
DEE - Politecnico di Bari
$ ls –il
13059 -rwx------ 1 sarwar
17488 -rwx------ 1 sarwar
52473 -rwx------ 2 sarwar
52473 -rwx------ 2 sarwar
Hard link: esempi
faculty 398 Mar 11 14.20 capitolo1
faculty 5983 May 21 18.20 capitolo2
faculty 9352 Jan 10 10.20 capitolo3
faculty 9352 Jan 10 10.20 capitolo3.hard
•Due nomi diversi corrispondono allo stesso file
su disco i.e. hanno lo stesso inode# e quindi gli
stessi attributi
•Entrambi i file hanno un link count di 2
•La dimensione del file è uguale
9 di 32
Link
M. Ruta - G. Piscitelli
Sistemi Operativi
DEE - Politecnico di Bari
Hard link: esempi
• Ogni volta che si crea un hard link ad un file, il link count per il file si
incrementa di 1
– Lo stesso file esiste con nomi diversi
• Quando si cancella un file che ha molteplici hard link, il sistema
decrementa il link count (nell’inode del file) di 1
– Se il link count è 0, il sistema rimuove la directory entry per quel file,
libera l’inode del file, dealloca i blocchi di memoria di massa
precedentemente allocati per contenere il file.
– Se il link count non è 0, il sistema rimuove solo la directory entry del file
cancellato. Il contenuto del file e altre directory entry per quel file (hard
link) rimangono inalterati.
$ rm capitolo3
13059 -rwx------ 1 sarwar faculty 398 Mar 11 14.20 capitolo1
17488 -rwx------ 1 sarwar faculty 5983 May 21 18.20 capitolo2
52473 -rwx------ 1 sarwar faculty 9352 Jan 10 10.20 capitolo3.hard
10 di 32
Link
•Il file capitolo3 è
accessibile attraverso
capitolo3.hard
•Il link count è stato
decrementato
M. Ruta - G. Piscitelli
Sistemi Operativi
DEE - Politecnico di Bari
Hard link: esempi
• Il comando ln può essere usato per creare un link ad un
file in un’altra directory
$ ls –il ~/memos/memo6
83476 –rwx------ 1 sarwar faculty 1673 May 29 11.22 /users/faculty/sarwar/memos/memo6
Attributi dei file nella home directory
dell’utente sarwar
$ ln ~/memos/memo6 memo6.hard
11 di 32
Crea un hard link di nome
memo6.hard nella directory
corrente ad un file della home
directory dell’utente
Link
M. Ruta - G. Piscitelli
Sistemi Operativi
DEE - Politecnico di Bari
Hard link: esempi
ÖHard link tra
~/memos/memo6 e
memo6.hard della directory
corrente
ÖDue directory diverse hanno
un link ad uno stesso file
$ ls –il ~/memos/memo6
83476 –rwx------ 2 sarwar faculty 1673 May 29 11.22 /users/faculty/sarwar/memos/memo6
$ ls –il memo6.hard
83476 –rwx------ 2 sarwar faculty 1673 May 29 11.22 memo6.hard
12 di 34
Completiamo i discorsi...
M. Ruta - G. Piscitelli
Sistemi Operativi
DEE - Politecnico di Bari
Soft/symbolic link
• È possibile creare un soft link con il comando ln e
opzione –s
• Possono riferirsi sia a file che a directory
• Sono dei file di tipo speciale che contengono
semplicemente un path name.
– Nell’analizzare un pathname per individuare un file/directory,
ogni volta che il sistema incontra un file di tipo soft link,
sostituisce il suo contenuto al pathname che lo individua
• Quando il comando rm riceve come argomento un soft
link, cancella quest ultimo e non il file a cui esso si
riferisce
13 di 32
Link
M. Ruta - G. Piscitelli
Sistemi Operativi
Soft link: esempi
DEE - Politecnico di Bari
$ ls –il
13059 -rwx------ 1 sarwar faculty 398 Mar 11 14.20 capitolo1
17488 -rwx------ 1 sarwar faculty 5983 May 21 18.20 capitolo2
52473 -rwx------ 1 sarwar faculty 9352 Jan 10 10.20 capitolo3
Crea un soft link, di nome
capitolo3.soft, al file capitolo3
nella working directory
$ ln –s capitolo3 capitolo3.soft
Struttura della working directory
capitolo1
14 di 34
capitolo2
capitolo3
Capitolo3.soft
mostra gli attributi di tutti i file
della directory corrente,
compresi i loro inode#
Contenuto della working directory
1076
.
2083
..
13059
Capitolo1
17488
Capitolo2
52473
Capitolo3
52479
Capitolo3.soft
Completiamo i discorsi...
M. Ruta - G. Piscitelli
Sistemi Operativi
DEE - Politecnico di Bari
Soft link: esempi
•I file capitolo3 e capitolo3.soft sono due file distinti,
con inode# distinti.
15
34 file
•Il di
link
contiene il pathname del file di cui è link
M. Ruta - G. Piscitelli
Sistemi Operativi
DEE - Politecnico di Bari
$ ls –il
13059 -rwx------ 1 sarwar
17488 -rwx------ 1 sarwar
52473 -rwx------ 1 sarwar
52479 lrwxrwxrwx 1 sarwar
Soft link: esempi
faculty 398 Mar 11 14.20 capitolo1
faculty 5983 May 21 18.20 capitolo2
faculty 9352 Jan 10 10.20 capitolo3
faculty 8
Jan 10 10.20 capitolo3.soft -> capitolo3
•Il file originale (capitolo3) e il link file (capitolo3.soft) hanno
inode# distinti. Pertanto, sono file differenti
•Il file originale è un file ordinario (-) il link file è di tipo link (l)
•Il link count per è 1 per entrambi i file
•La dimensione del file è differente
•Il nome del link file è seguito da →capitolo3, i.e. il pathname
del file di cui capitolo3.soft è soft link
16 di 32
Link
M. Ruta - G. Piscitelli
Sistemi Operativi
DEE - Politecnico di Bari
Permessi di accesso a file e directory
• Ad un file possono essere attribuiti i seguenti permessi:
– Lettura (read)
– Scrittura (write)
– Esecuzione (execute)
• Appena un file è creato, esso viene collegato all’utente
che lo ha creato e al gruppo cui fa parte in quel
momento l’utente
• I permessi sono definiti per:
– Utente proprietario del file
– Gruppo (cui appartiene il proprietario del file)
– altri
17 di 32
Permessi e protezioni sui file
M. Ruta - G. Piscitelli
Sistemi Operativi
DEE - Politecnico di Bari
18 di 32
Visualizzare i permessi
Permessi e protezioni sui file
M. Ruta - G. Piscitelli
Sistemi Operativi
Visualizzare i permessi
DEE - Politecnico di Bari
• I permessi sono visualizzati nei primi dieci caratteri, suddivisi in
quattro insiemi
–
–
–
–
l: tipo di file
u: permessi concessi al proprietario del file
g: permessi concessi agli utenti membri del gruppo
o: permessi agli altri utenti, non compresi nei precedenti insiemi
• Per ciascuno è possibile specificare se il permesso è di lettura,
scrittura, esecuzione.
• Es. per il file file2
19 di 32
l
u
g
o
-
rw-
r--
r--
Permessi e protezioni sui file
M. Ruta - G. Piscitelli
Sistemi Operativi
DEE - Politecnico di Bari
Significato dei Permessi
• Per i file ordinari
– r: leggere il contenuto
– w: modificare il contenuto
– x: eseguire il file (ha senso
per file binari o script)
• Per i file speciali
– r: leggere dal device (input)
– w: scrivere sul device
(output)
– x: non significativo
20 di 32
• Per le directory
– r: leggere il contenuto della
directory
– w: modificare la directory, i.e.
aggiungere, rinominare,
rimuovere file
– x: accesso (scansione) della
directory (per leggere,
modificare, eseguire un file in
essa contenuto)
Permessi e protezioni sui file
M. Ruta - G. Piscitelli
Sistemi Operativi
DEE - Politecnico di Bari
ACL …
• Ad ogni file (e directory) è associata una stringa di 10
caratteri, detta lista di controllo agli accessi o Access
Control List (ACL), contenente i diritti di accesso al file
21 di 32
Permessi e protezioni sui file
M. Ruta - G. Piscitelli
Sistemi Operativi
ACL
DEE - Politecnico di Bari
• Un file (directory), al momento della creazione, è per
default reso accessibile in lettura e scrittura all’utente
proprietario, generalmente ne è vietato qualunque
accesso a tutti gli altri utenti, compresi quelli del gruppo
di appartenenza
– La sua ACL sarà:
• - rw- --- --- (file)
• d rwx --- --- (directory)
• L’utente proprietario può cambiare la ACL in qualunque
momento mediante il comando chmod
22 di 32
Permessi e protezioni sui file
M. Ruta - G. Piscitelli
Sistemi Operativi
DEE - Politecnico di Bari
Cambiare i permessi
• Al momento della creazione di un file, esso appartiene
all’utente che lo ha creato e assume il gruppo di
quest’ultimo
• Il superuser può modificare queste informazioni con i
comandi:
– chown: cambia il possessore
– chgrp: cambia il gruppo
• Un utente può modificare i permessi dei file che gli
appartengono con il comando:
– chmod: cambia permessi di accesso
23 di 32
Permessi e protezioni sui file
M. Ruta - G. Piscitelli
Sistemi Operativi
DEE - Politecnico di Bari
Comando chown e chgrp
chown newowner file…
• change owner: cambia l’utente proprietario di un file
• L’utente identificato da newuser diventa il nuovo proprietario del file
• Il comando può essere eseguito solo dal superuser)
chgrp newgroup file…
• change group: cambia l’owner group di un file
• Il gruppo identificato da newgroup diventa il nuovo gruppo
• Il comando può essere eseguito solo dal superuser
24 di 32
Permessi e protezioni sui file
M. Ruta - G. Piscitelli
Sistemi Operativi
DEE - Politecnico di Bari
Il comando CHMOD
chmod permessi filename…
• change mode: permette di cambiare i permessi di
accesso (lettura, scrittura, esecuzione) di un file.
• Il comando può essere eseguito solo dall’utente
proprietario (o dal superuser)
• I “permessi” possono essere espressi in forma ottale o
simbolica
25 di 32
Permessi e protezioni sui file
M. Ruta - G. Piscitelli
Sistemi Operativi
Permessi: forma simbolica
DEE - Politecnico di Bari
• I permessi sono formati da una combinazione
sequenziale di codici utente e codici di permesso:
Codici utente
Descrizione
u
Proprietario
g
Gruppo
o
Altri
a
Tutti (u,g,o)
26 di 32
Codici di
permesso
Descrizione
r
Lettura
w
Scrittura
x
Esecuzione
Operatori
Descrizione
+
Aggiunge permessi
-
Rimuove permessi
Permessi e protezioni sui file
M. Ruta - G. Piscitelli
Sistemi Operativi
DEE - Politecnico di Bari
Permessi: forma simbolica
• Per modificare i permessi di uno o più file, l’argomento
del comando chmod (oltre al file) deve essere:
– Codice utente
– Operatore
– Codice di permesso
$ chmod g+w citazione
$
Assegna il permesso di scrittura
sul file “citazione” agli
appartenenti al gruppo
$ chmod ugo+rw citazione
$ chmod a+rw citazione
$ chmod +rw citazione
Forme equivalenti per: assegnare
contemporaneamente il permesso di
scrittura e lettura sul file “citazione” a
qualsiasi utente
$ chmod o-rw citazione
Toglie i permessi di lettura e scrittura
del file “citazione” a chi non è
proprietario né fa parte del gruppo
27 di 32
Permessi e protezioni sui file
M. Ruta - G. Piscitelli
Sistemi Operativi
DEE - Politecnico di Bari
Permessi: forma ottale
• I permessi devono specificare l’intera definizione degli
accessi per i file considerati
• La forma ottale è costituita da tre cifre comprese tra 0 e
7, un per ogni tipo di permesso ammissibile.
• Ogni cifra è interpretata come una somma delle prime 3
potenze del 2.
• Ogni cifra in forma ottale corrisponde a tre bit dell’ACL
– I permessi di accesso variano da 000 a 777
28 di 32
Permessi e protezioni sui file
M. Ruta - G. Piscitelli
Sistemi Operativi
Permessi: forma ottale
DEE - Politecnico di Bari
r
w
x
Cifra in forma ottale
significato
0
0
0
0
Nessun permesso
0
0
1
1 (20)
Esecuzione solo
0
1
0
2 (21)
Scrittura solo
0
1
1
3 (21+20)
Scrittura ed esecuzione
1
0
0
4 (22)
Lettura solo
1
0
1
5 (22+20)
Lettura ed esecuzione
1
1
0
6 (22+21)
Lettura e scrittura
1
1
1
7 (22+21+20)
Lettura scrittura esecuzione
$ chmod 640 citazione
$
29 di 32
Assegna il permesso di lettura e
scrittura per il proprietario, di sola
lettura per il gruppo, nessun
permesso agli altri
Permessi e protezioni sui file
M. Ruta - G. Piscitelli
Sistemi Operativi
DEE - Politecnico di Bari
30 di 32
CHMOD: esempi
Completiamo i discorsi...
M. Ruta - G. Piscitelli
Sistemi Operativi
DEE - Politecnico di Bari
31 di 32
CHMOD: esempi
Completiamo i discorsi...
M. Ruta - G. Piscitelli
Sistemi Operativi
DEE - Politecnico di Bari
32 di 32
CHMOD: esempi
Permessi e protezioni sui file
M. Ruta - G. Piscitelli